如何在Windows上使用带有CUDA的其他c++编译器
How do I use other c++ compilers with CUDA on Windows?
我正在尝试用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。
- 在执行其他功能的同时播放动画(LED矩阵和Arduino/ESP8266)
- 将数组作为参数传递给函数安全吗?作为第三方职能部门,可以探索他们想要的之外的其他元素
- 编译时未启用intel oneApi CUDA支持
- 在cuda线程之间共享大量常量数据
- 有没有什么方法可以使用一个函数中定义的常量变量,也可以由c++中同一程序中的其他函数使用
- 为什么即使使用-cudart-static进行编译,库用户仍然需要链接到cuda运行时
- GL_SHADERSTORAGE_BUFFER位置是否与其他着色器位置冲突
- 为什么我不能在 C++ 中的特定函数重载中调用同一函数的任何其他重载?
- 在其他文件中创建类时在 c++ 项目中不起作用
- Cuda C++:设备上的Malloc类,并用来自主机的数据填充它
- cv::cuda::setTo()是否有其他选择
- 如何在 CUDA 中的块中返回其他线程
- 功能指针(到其他内核)作为CUDA中的内核Arg
- 从其他 CUDA 流读取更新的内存
- 如何将其他 .o、.so、.a 文件链接到当前的 cuda 编译
- 使用其他c++编译器编译CUDA代码
- Cuda 7.5和Visual Studio 2013:一些例子工作,但其他返回cudaErrorDevicesUnav
- 从包含相同头文件的其他.cpp文件调用CUDA函数
- 只有glClear(.)颜色显示,没有其他渲染(CUDA/OpenGL互操作)
- 如何在Windows上使用带有CUDA的其他c++编译器