1

我正在将作为单独文件编写的 PTX 转换为内联 PTX。在单独的 PTX 文件中,我将 ISA 和目标定义如下:

.version 1.2
.target sm_13

在编译器生成的 PTX 文件中,内联 PTX 后,编译器指定了 ISA 和 target,如下所示:

.version 3.0
.target sm_20
.address_size 64

.address_size 64对我来说是有问题的,因为这意味着我必须将我在内联 PTX 中执行的指针算法从 32 位更新为 64 位。

鉴于 32 位可以寻址 4GB,比我的卡更多的内存,是否可以让编译器指定 32 位地址大小,这样我就不必更新指针算法?

考虑到新的统一寻址系统,sm_20 是否支持 32 位地址?

4

1 回答 1

2

NVCC 编译器的 64 位版本默认生成 64 位 PTX。如果您尝试将 -m32 作为命令行选项传递给 nvcc,它将生成 32 位指针。NVCC 文档中介绍了该选项:

http://docs.nvidia.com/cuda/cuda-compiler-driver-nvcc/index.html#options-for-guiding-compiler-driver

于 2013-01-22T10:54:06.670 回答