一、CMake相关
1.1 Policy CMP0146 is not set: The FindCUDA module is removed
CMake Warning (dev) at CMakeLists.txt:8 (find_package):
Policy CMP0146 is not set: The FindCUDA module is removed. Run "cmake
--help-policy CMP0146" for policy details. Use the cmake_policy command to
set the policy and suppress this warning.
This warning is for project developers. Use -Wno-dev to suppress it.
如上CMakeLists.txt的警告,不影响正常编译结束,但是可以让这个警告去掉,让编译输出更干净。主要是因为cmake政策的更新导致的,可以仍使用旧版本的政策。
解决方案:
在CMakeLists.txt的 find_package(CUDA) 前面加上如下内容:
if(POLICY CMP0146)
cmake_policy(SET CMP0146 OLD)
endif()
1.2 Windows CMake编译错误:No CUDA toolset found解决方法
出现这个问题一般是因为安装CUDA时没有安装对应的Visual Studio Integration缺失,如下图所示,对应的选项没有勾选。
那重新安装CUDA,记得在“自定义”中勾选上面选项就可以了。
但也有的机器,一旦在安装CUDA时勾选了这个选项便无法安装。
那么如何解决这个问题呢?
首先将CUDA的安装包当作一个压缩包,用winRAR之类的工具打开:
然后找到上图红框中对应文件夹:CUDAVisualStudioIntegration\extras\visual_studio_integration\MSBuildExtensions,
在这个路径下共有4个文件,把它们拷到你Windows机器上安装Visual Studio的对应路径下,例如:C:\Program Files (x86)\Microsoft Visual Studio\2019\Enterprise\MSBuild\Microsoft\VC\v160\BuildCustomizations。
注意这个路径要根据你Windows机器的实际情况确定。
最后再重新用CMake进行编译就可以了。
二、visual studio相关
2.1 visual studio版本选择
CUDA与Visual Studio(VS)是两个不同的软件,前者是一种并行计算平台和编程技术,后者是一个集成开发环境,两者在编程语言和应用场景上有所不同。但在使用CUDA进行GPU编程时,通常需要在VS中进行开发和调试。以下是对CUDA版本与Visual Studio对应关系的详细分析:
一、兼容性概述
对于不同版本的CUDA和VS,存在一些兼容性问题,因此需要注意它们之间的对应关系。在VS中安装CUDA工具包后,需要确保在项目属性中正确配置CUDA的路径和版本号,以确保开发项目能够正确地链接和编译。此外,操作系统版本、GPU驱动程序等其他因素也可能会影响CUDA与VS的兼容性。
二、具体版本对应关系
- CUDA 12.x系列:虽然CUDA 12.x与Visual Studio 2019和2022兼容,但建议尽量使用最新版本的Visual Studio和CUDA Toolkit,以获得最佳的开发体验和性能支持。同时,也需要注意操作系统版本的要求,确保您的操作系统能够支持所安装的CUDA和Visual Studio版本。
- CUDA 11.x系列:最好与Visual Studio 2019较新版本配合使用,包括VS 2019 version 16.4、16.5、16.7和16.8等。
- CUDA 11.0:与VS 2017 Update 5兼容。
- CUDA 10.2:与VS 2017 Update 3兼容。
- CUDA 10.1:可以与Visual Studio 2019集成,但需要注意安装过程中勾选与VS相关的组件,如CUDA Visual Studio Integration,并确保安装的是VS 2019的支持CUDA的版本,如Enterprise、Professional或Community版。
三、查看CUDA版本的方法
可以通过命令行或者图形界面来查看系统中安装的CUDA版本。在命令行中,使用“nvcc --version”命令可以显示系统中安装的CUDA版本号以及NVIDIA的编译器版本信息。此外,也可以通过查看CUDA安装目录下的版本号文件来确认CUDA版本。
四、注意事项
- 在选择CUDA版本时,需要考虑与其他软件和硬件的兼容性,确保所选择的CUDA版本能够与其他组件良好地配合。
- CUDA版本和GPU驱动版本之间有一定的关联性,不同的CUDA版本对应着不同的GPU驱动版本要求。因此,在安装CUDA时需要注意CUDA版本与GPU驱动版本的兼容性,建议安装与CUDA版本对应的GPU驱动版本以确保系统的稳定性和性能表现。
- 升级CUDA版本可能带来更好的性能和功能支持,但也可能导致不兼容性或稳定性问题;降级CUDA版本则可能解决某些bug或兼容性问题,但也会失去新版本带来的优势。因此,在升级或降级CUDA版本时需要权衡各种因素。
综上所述,CUDA版本与Visual Studio之间的对应关系对于确保开发项目的顺利进行至关重要。在选择和配置时,务必仔细查阅相关文档和手册以降低出错的风险。