如何在Windows上使用带有CUDA的其他c++编译器

How do I use other c++ compilers with CUDA on Windows?

本文关键字:CUDA 其他 编译器 c++ Windows      更新时间:2023-10-16

我正在尝试用CUDA构建一个简单的应用程序,我已经连续尝试了几个小时,但我无法使它在windows上工作。nvcc绝对拒绝在没有Visual Studio编译器的情况下进行编译,因为它不支持我需要的东西。我尝试使用带有clang的nvcc进行构建,但它只是要求我使用Visual Studio的编译器。我也尝试过直接使用clang,因为它现在支持CUDA,但我收到了这个错误:

clang++.exe: error: Unsupported CUDA gpu architecture: compute_52

这对我来说毫无意义,因为我有CUDA工具包7.5版,我的显卡是GTX 970(其中两个)。我已经在谷歌上广泛搜索了这一点,无论在哪里我都会遇到一个错误,那就是他们的CUDA工具包是<7.5.我现在正处于流泪的边缘,试图让VLA这样简单的东西来处理这个CUDA应用程序,但我就是无法实现…

CUDA windows工具链需要Visual Studio C++编译器。您不能在该平台上使用任何其他内容。如果VS编译器不支持CUDA主机代码中所需的语言功能,那么您别无选择,只能更改平台或您的期望。

您仍然可以使用另一个编译器编译非CUDA主机代码,然后使用NVCC和VS工具链链接该代码。

尝试使用clang cl,--cubin=clang-cl.exe

在windows中操作Linux虚拟机或WSL2可能是值得的。根据CUDA文件。

为了编译新的CUDA应用程序,Linux x86的CUDA工具包是需要。CUDA Toolkit对WSL的支持仍处于预览阶段诸如profiler之类的开发工具还不可用。然而,CUDAWSL2环境完全支持应用程序开发,因为因此,用户应该能够编译新的CUDALinux应用程序使用最新的x86 Linux CUDA工具包。

https://docs.nvidia.com/cuda/wsl-user-guide/index.html#:~:text=然而%2C%20CUDA%20application%20development%20is,在%20WSL%202内变为%20available%20。