我之前的显卡是 RTX 3060, 对应的Cmake文件是
set_target_properties(${PROJECT_NAME} PROPERTIES
CUDA_ARCHITECTURES “35”
)
我现在的显卡是 RTX 5000Ada , 对应的Cmake文件应该怎么写? CUDA_ARCHITECTURES 写多少?
关于 NVIDIA RTX 5000 Ada 显卡的 CUDA_ARCHITECTURES
设置,以下是关键信息和解决方案:
1. 显卡架构与计算能力版本
- RTX 5000 Ada 基于 Ada Lovelace 架构,计算能力(Compute Capability)为 8.9(即
sm_89
)。 - 对应的
CUDA_ARCHITECTURES
应设置为89
。
2. 修正之前的配置错误
您之前为 RTX 3060 设置的 CUDA_ARCHITECTURES "35"
是 错误的:
- RTX 3060 属于 Ampere 架构,计算能力为 8.6,正确值应为
86
。 35
对应的是旧版 Kepler 架构(如 GTX 780),会导致性能损失或编译错误。
3. CMake 配置示例
更新您的 CMakeLists.txt
,为 RTX 5000 Ada 指定正确的架构:
# 设置 CUDA 目标架构为 Ada Lovelace (sm_89)
set_target_properties(${PROJECT_NAME} PROPERTIES
CUDA_ARCHITECTURES "89"
)
4. 验证 CUDA 工具包和驱动兼容性
- CUDA 工具包版本:Ada Lovelace 需要 CUDA 11.8 或更高版本(建议使用 CUDA 12.x)。
- 显卡驱动版本:需支持 Ada 架构(例如 ≥525.85.05)。
5. 如何查询显卡的计算能力
- 方法 1:运行 NVIDIA 官方工具
deviceQuery
(位于CUDA_Samples/1_Utilities/deviceQuery
),输出示例如下:CUDA Capability Major/Minor version number: 8.9
- 方法 2:访问 NVIDIA 计算能力表,搜索显卡型号。
6. 完整 CMake 配置参考
cmake_minimum_required(VERSION 3.18)
project(my_project LANGUAGES CXX CUDA)
# 指定 CUDA 架构为 Ada Lovelace (89)
set(CMAKE_CUDA_ARCHITECTURES "89")
# 添加可执行文件
add_executable(my_app main.cu)
# 链接 CUDA 运行时库
target_link_libraries(my_app CUDA::cudart)
7. 常见问题
-
错误:
nvcc fatal : Unsupported gpu architecture 'compute_89'
原因:CUDA Toolkit 版本过低(需 ≥11.8)。
解决:升级 CUDA Toolkit 至 12.x:
CUDA Toolkit 下载页面 -
错误:
No kernel image is available for execution on the device
原因:编译时未指定正确的架构。
解决:确认CUDA_ARCHITECTURES
设置为89
。
总结
- RTX 5000 Ada:
CUDA_ARCHITECTURES = 89
- RTX 3060(修正配置):
CUDA_ARCHITECTURES = 86
请务必检查 CUDA 工具包和驱动版本,确保兼容 Ada 架构。