我已经read about virtual architecture and code generation for nvcc了,但我还有一些问题。
我有一个cuda编译的可执行文件,其cuobjdump输出是

Fatbin elf code:
================
arch = sm_20
code version = [1,7]
producer = cuda
host = linux
compile_size = 64bit

Fatbin ptx code:
================
arch = sm_20
code version = [5,0]
producer = cuda
host = linux
compile_size = 64bit
compressed

我有两个问题:
什么意思?文档并没有这么说。
这样的可执行文件在带有开普勒(Kepler)设备的系统上是否兼容?我认为这应该是因为可执行文件中有PTX代码,而且虚拟架构是code version,也就是说,它要求从Fermi卡开始提供一组非常小的功能(仍然不确定sm_30意味着什么)

最佳答案

代码版本是什么意思?文档并没有这么说。
它表示正在打印的fatbin元素的版本——elf版本1.7和PTX版本5.0(PTX版本请参见here
这样的可执行文件在带有sm_30(开普勒)设备的系统上是否兼容?
对。PTX(版本5.0)的存在意味着代码可以由驱动程序JIT编译到汇编程序,以便在计算能力3.0设备上运行(同样是文档here

关于linux - 了解cuobjdump输出,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/57851566/

10-13 05:39