我正在处理将作为单独文件写入的PTX转换为内联PTX的过程。在单独的PTX文件中,我按如下方式定义了ISA和目标:
.version 1.2
.target sm_13
在编译器生成的PTX文件中,在内联PTX之后,编译器指定了ISA和目标,如下所示:
.version 3.0
.target sm_20
.address_size 64
.address_size 64
对我来说是有问题的,因为这意味着我必须将我在内联PTX中执行的指针算法从32位更新为64位。
鉴于32位可以处理4GB,比我的卡有更多内存,是否可以使编译器指定32位地址大小,这样我就不必更新指针算法?
在新的统一寻址系统下,sm_20是否支持32位地址?
答案 0 :(得分:2)
64位版本的NVCC编译器默认生成64位PTX。如果您尝试将-m32作为命令行选项传递给nvcc,它将生成32位指针。该选项包含在NVCC文档中:
http://docs.nvidia.com/cuda/cuda-compiler-driver-nvcc/index.html#options-for-guiding-compiler-driver