【问题标题】:Setting 32 bit address size in inline PTX在内联 PTX 中设置 32 位地址大小
【发布时间】:2012-04-15 01:27:53
【问题描述】:

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

【问题讨论】:

  • 我很确定指针在计算 2.x 和更新的设备上是不可协商的 64 位。

标签: cuda inline-assembly nvcc ptxas


【解决方案1】:

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

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

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2014-01-04
    • 1970-01-01
    • 1970-01-01
    • 2014-03-14
    • 1970-01-01
    • 1970-01-01
    • 2021-07-09
    • 2020-08-18
    相关资源
    最近更新 更多