NVCC

-arth, --gpu-arthitecture   定义用于编译的虚拟架构

        描述编译CUDA输入文件的NVIDIA虚拟GPU架构类别。排除速写的情况,该选项描述的架构必须是虚拟架构(例如,compute_50)。通常,单独的该选项并不会触发产生的PTX在真实的架构上进行汇编,它的目的是控制预处理和输入到PTX的编译。

        在简单NVCC编译的情况下,支持速写:如果 -code未定义,则其值与-arth相同。在这种情况下,-arth可以是真实架构(例如,sm_50),NVCC使用描述的真实架构和它最接近的虚拟架构作为架构值。如下:

-arth=sm_50等价于-arth=compute_50 -code=compute-50, sm_50

-code, --gpu-code         定义用于汇编的真实架构

        描述汇编和优化PTX的NVIDIA GPU名。NVCC为每一个描述的代码架构在可执行的结构插入一个代码图。它是每一个真实架构的真实二值加载图像,PTX是虚拟架构的。运行期间,如果当前GPU没有二值加载图像,那么运行时系统动态编译插入的PTX代码。arth 和code可以是真实的和虚拟的,但是code架构必须兼容arth架构。当code选项使用时,arth必须是一个虚拟的PTX架构。

-gencode, --generate-code   联合上述选项

        该选项提供了--gpu-arthitecture=arth -gpu-code=code, ...选项联合的概括,关于代码生成,描述nvcc行为。使用上述选项生成不同真实架构的代码和相同虚拟架构的PTX。-gpu-code允许为不同虚拟架构生成多个PTX。实际上,上述选项等价于--generate-code arch=arch,code=code,... 对于不同虚拟架构该选项必须重复。

猜你喜欢

转载自blog.csdn.net/weareu/article/details/84866913
今日推荐