2

我在 64 位 Windows 上安装了 Visual Studio 2008。尝试通过添加--ptxas-options="-v"CUDA->Command Line->Additional Options 来构建 CUDA 程序。我仍然没有看到这个答案中的 ptxas 信息。

这是CUDA->命令行部分的“所有选项”部分中的数据:

"C:\Program Files\NVIDIA GPU Computing Toolkit\CUDA\v4.2\bin\nvcc.exe"  -ccbin "c:\Program Files (x86)\Microsoft Visual Studio 9.0\VC\bin" -I"C:\Program Files\NVIDIA GPU Computing Toolkit\CUDA\v4.2\include" -I"C:\Documents and Settings\All Users\Application Data\NVIDIA Corporation\NVIDIA GPU Computing SDK 4.2\C\common\inc" -O0 -arch compute_10 -code compute_10 --host-compilation C++ -c -m 64 -o "x64\Release\CUDA_Dissertation.obj" -odir "x64\Release" -ext none -int real  --ptxas-options="-v" "c:\Documents and Settings\shubham\My Documents\Visual Studio 2008\Projects\MTP\CUDA_Dissertation\CUDA_Dissertation.vcproj"

是否有其他标志正在抑制 ptxas 标志?还是我的构建配置(发布 x64)与它有关?或其他一些启用/禁用的选项。我尝试使用几乎相同的命令从命令提示符编译它:

"C:\Program Files\NVIDIA GPU Computing Toolkit\CUDA\v4.2\bin\nvcc.exe"  -ccbin "c:\Program Files (x86)\Microsoft Visual Studio 9.0\VC\bin" -I"C:\Program Files\NVIDIA GPU Computing Toolkit\CUDA\v4.2\include" -I"C:\Documents and Settings\All Users\Application Data\NVIDIA Corporation\NVIDIA GPU Computing SDK 4.2\C\common\inc" -O0 -arch compute_10 -code compute_10 --host-compilation C++ -c -m 64 -o "x64\Release\CUDA_Dissertation.obj" -odir "x64\Release" -ext none -int real  --ptxas-options="-v" main.cu

这与 Visual Studios (警告和东西)具有相同的输出,但没有 ptxas 信息。

4

2 回答 2

1

您没有看到任何详细输出的原因--ptxas-options=-v是 ptxas 没有编译任何东西。

在您的 nvcc 调用中:

"C:\Program Files\NVIDIA GPU Computing Toolkit\CUDA\v4.2\bin\nvcc.exe"

...

-arch compute_10 -code compute_10

...

您将您的-code选项指定为-code compute_10,它只包括 PTX 架构而不是真正的 sm_*架构。这意味着没有 PTX 代码被编译成二进制代码ptxas;PTX 代码按原样包含在输出中,稍后将进行 JIT 编译。

要查看 ptxas 信息,请尝试将您的-code选项更改为-code compute_10,sm_10

因此,在您的情况下,您的 nvcc 调用将是:

"C:\Program Files\NVIDIA GPU Computing Toolkit\CUDA\v4.2\bin\nvcc.exe" -ccbin      "c:\Program Files (x86)\Microsoft Visual Studio 9.0\VC\bin" -I"C:\Program Files\NVIDIA GPU Computing Toolkit\CUDA\v4.2\include" -I"C:\Documents and Settings\All Users\Application Data\NVIDIA Corporation\NVIDIA GPU Computing SDK 4.2\C\common\inc" -O0 -arch compute_10 -code compute_10,sm_10 --host-compilation C++ -c -m 64 -o "x64\Release\CUDA_Dissertation.obj" -odir "x64\Release" -ext none -int real --ptxas-options="-v" "c:\Documents and Settings\shubham\My Documents\Visual Studio 2008\Projects\MTP\CUDA_Dissertation\CUDA_Dissertation.vcproj"

这有帮助吗?

于 2013-07-21T17:09:51.407 回答
1

我刚刚看到这样的错误,使用工具包 4.0 可以提供正确的输出,而使用 5.0 则没有。我将该命令行选项从全局项目设置移至 .cu 文件的属性,它开始工作。视觉工作室 2005。

于 2013-07-04T13:46:38.387 回答