简短结论:CentOS 上的 GCC 本身不支持 CUDA,但可以通过 NVIDIA 的 CUDA 工具链(nvcc + 特定 GCC 版本)来使用 CUDA。
下面分点说明:
.cu 文件nvcc 编译器 来编译设备端(GPU)代码在 CentOS 上通常做法是:
流程示意:
.cu 文件
↓ nvcc
GPU 代码 → PTX / SASS
CPU 代码 → 调用 GCC 编译
CUDA 对 GCC 版本有严格限制:
| CUDA 版本 | 支持的 GCC 版本(示例) |
|---|---|
| CUDA 10 | GCC ≤ 8 |
| CUDA 11 | GCC ≤ 9 / 10 |
| CUDA 12 | GCC ≤ 12 |
CentOS 常见问题:
如果 GCC 版本过高,会出现:
unsupported GNU version
解决方法:
nvcc 指定兼容 GCCdevtoolset(如 devtoolset-9)# 安装 CUDA Toolkit 后
nvcc -V
# 编译
nvcc hello.cu -o hello
✅ CentOS 可以用 CUDA
❌ GCC 不能直接支持 CUDA
✅ 需要 CUDA Toolkit + nvcc + 兼容的 GCC
如果你是:
可以把环境信息发我,我可以给你精确的版本搭配和安装方案。