CMAKE_CUDA_ARCHITECTURES针对Jetson Xavier或者Orin的设置

本文介绍了针对不同Jetson设备(如TX1,TX2,AGXXavier,NXOrin等)配置CMAKE_CUDA_ARCHITECTURES的建议,包括对应版本和参考了NVIDIADeveloper论坛上的问题讨论。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

不同jetson设备对应不同的CMAKE_CUDA_ARCHITECTURES的设置,如下:

# TX1, Nano                         ------ 53

# TX2                                   ------ 62

# AGX Xavier, NX Xavier     ------ 72

# AGX Orin, NX Orin            ------ 87

其他设备:

# K series                            ------- 30

# M series                           -------- 50

参考:Issue using Onnxruntime with CUDAExecutionProvider on Orin - #4 by AastaLLL - Jetson AGX Orin - NVIDIA Developer Forums

CUDA GPU | NVIDIA Developer

### 关于正确设置 `CMAKE_CUDA_ARCHITECTURES` 为 90 的方法 当尝试将 `CMAKE_CUDA_ARCHITECTURES` 设置为 90 时,需注意此值代表目标 GPU 架构的计算能力 (Compute Capability),具体数值应匹配硬件支持的能力范围。如果指定不兼容的架构版本,则会触发错误提示,例如 `CMAKE_CUDA_ARCHITECTURES must be valid if set`[^1]。 对于特定架构如 90,可以通过命令行参数传递给 CMake 配置工具完成设定: ```bash cmake .. -DCMAKE_CUDA_ARCHITECTURES=90 -DCMAKE_CUDA_COMPILER="/path/to/nvcc" ``` 其中 `/path/to/nvcc` 应替换为你本地安装路径下的 NVCC 编译器位置。此外,若采用默认编译选项可能引发冲突,比如先前已定义其他架构(如 'native'),则需要清理旧有配置或重新调整构建环境以避免矛盾问题发生[^2]。 特别需要注意的是,在某些特殊设备上像 NVIDIA Jetson 系列产品(例如 Xavier NXOrin),由于其内部结构差异较大,单纯依赖标准方式未必可行。此时建议参照官方论坛讨论实例进行针对性调试处理[^3]。 最后强调一点,实际操作前务必核实所使用的 GPU 是否真正具备对应 compute capability 版本的支持情况;否则即便成功完成了上述步骤也可能无法正常运行程序。 ### 示例代码片段展示如何通过脚本来自动化这一过程 下面提供一段简单的 Python 脚本用于生成适合不同平台需求的 cmake 命令字符串: ```python def generate_cmake_command(cuda_architecture, cuda_compiler_path): return f"cmake .. -DCMAKE_CUDA_ARCHITECTURES={cuda_architecture} -DCMAKE_CUDA_COMPILER=\"{cuda_compiler_path}\"" if __name__ == "__main__": arch = "90" compiler = "/usr/local/cuda-12.0/bin/nvcc" cmd = generate_cmake_command(arch, compiler) print(cmd) ```
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值