在内联PTX中设置32位地址大小

时间:2012-03-31 18:38:12

标签: cuda inline-assembly nvcc ptxas

我正在处理将作为单独文件写入的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位地址?

1 个答案:

答案 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