我的实验室刚刚收到一台 Tesla C2070,该卡安装在运行 Windows Server 64 位的机器上。我应该写一些cuda模拟。 我需要安装 64 位版本的 SDK 和 CUDA 工具包吗? 我问的原因是因为我想使用 Visual C++ Express 进行编译,而且它们似乎确实是面向 32 位的。或者是否有另一个编译器可以完全让我摆脱这个限制?
谢谢。
编辑 1 感谢您的回答。 到目前为止我可以编译 32 位 cuda/openCL 代码。 安装 SDK 后,将目标更改为 64 并链接到 64b 库,但它仍然无法工作。
C:\Program Files (x86)\MSBuild\Microsoft.Cpp\v4.0\BuildCustomizations\CUDA 4.2.targets(361,9): error MSB3721: The command ""C:\Program Files\NVIDIA GPU Computing Toolkit\CUDA\v4.2\bin\nvcc.exe" -gencode=arch=compute_10,code=\"sm_10,compute_10\" --use-local-env --cl-version -ccbin "C:\Program Files (x86)\Microsoft Visual Studio 10.0\VC\bin\x86_amd64" -I"C:\Program Files\NVIDIA GPU Computing Toolkit\CUDA\v4.2\include" -G --keep-dir "x64\Debug" -maxrregcount=0 --machine 64 --compile -g -Xcompiler "/EHsc /nologo /Od /Zi /MDd " -o "x64\Debug\test.cu.obj" "c:\Users\A\Documents\Visual Studio 2010\Projects\cudaTest2\cudaTest2\test.cu"" exited with code -1.
最后,在谈论 gpgpu 模拟时是否有必要编译为 64 位应用程序?我的意思是,在主机上运行的代码几乎什么都没有,而在 gpu 上运行的代码很好,它是由 nvcc 编译的,所以我选择什么并不重要,32 还是 64...我错了吗(可能)?
最佳答案
您应该下载适用于 64 位操作系统的 64 位 SDK,因为有适用于 32 位和 64 位版本的库。对于 Visual C++ 32 位应用程序,您应该使用 32 位库,它将可以工作。
以我为例:我有 64 位 Windows7 操作系统,为此我使用了 64 位 CUDA SDK,并在 Visual Studio 2008 中开发我的 32 位 C++ 应用程序,我使用了随 SDK 导出的 32 位 cuda 库。
关于windows - 我在 64 位机器上需要 64 位 SDK吗,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/12242212/