麒麟 Linux(CentOS)安装 CUDA 11.8 、3DGS超详细教程(适用于 3DGS / PyTorch / COLMAP)
·
一、环境说明
本文适用于:
- 麒麟 Linux Advanced Server V10
- CentOS / RHEL 系系统
- x86_64 架构
- NVIDIA 显卡(RTX3090 等)
- CUDA11.8
- PyTorch + 3DGS + COLMAP 环境
本人环境:
| 项目 | 版本 |
|---|---|
| 系统 | Kylin Linux Advanced Server V10 |
| 架构 | x86_64 |
| GPU | RTX3090 |
| CUDA | 11.8 |
| Python | 3.8 |
| Torch | 2.3.0+cu118 |
二、检查显卡驱动
首先确认 NVIDIA 驱动是否正常。
执行:
nvidia-smi
正常会显示类似:
+-----------------------------------------------------------------------------+
| NVIDIA-SMI 580.xx.xx Driver Version: 580.xx.xx CUDA Version: 13.0 |
+-----------------------------------------------------------------------------+
三、卸载旧 CUDA(重要)
1. 删除环境变量
编辑:
vim ~/.bashrc
删除旧 CUDA:
export PATH=/usr/local/cuda-12.4/bin:$PATH
export LD_LIBRARY_PATH=/usr/local/cuda-12.4/lib64:$LD_LIBRARY_PATH
保存退出:
Esc
:wq
刷新:
source ~/.bashrc
2. 删除旧 CUDA 文件
查看:
ls /usr/local/ | grep cuda
删除:
rm -rf /usr/local/cuda*
检查 rpm 包,执行:
rpm -qa | grep cuda
如果还有 CUDA rpm,可以继续删:
rpm -e 包名
但很多 runfile 安装其实不会出现在 rpm。
理想状态应该是:
| 项目 | 状态 |
|---|---|
| nvidia-smi | 能用 |
| nvcc | 找不到 |
| /usr/local/cuda* | 没有 |
| ~/.bashrc | 无 cuda12.4 |
3. 检查是否删除成功
执行:
nvcc -V
如果提示:
bash: nvcc: 未找到命令
说明旧 CUDA 已删除。
四、下载 CUDA11.8
进入目录:
mkdir -p /root/project
cd /root/project
下载 CUDA11.8:
wget https://developer.download.nvidia.com/compute/cuda/11.8.0/local_installers/cuda_11.8.0_520.61.05_linux.run
如果没有 wget:
yum install -y wget
五、赋予执行权限
chmod +x cuda_11.8.0_520.61.05_linux.run
六、解决 CUDA 解压失败问题
若不报错,使用下面指令安装使用
sudo sh cuda_11.8.0_520.61.05_linux.run
但很多麒麟系统会出现:
Extraction failed.
Ensure there is enough space in /tmp
解决方法:
1. 创建临时目录
mkdir -p /root/tmp
chmod 777 /root/tmp
2. 使用 TMPDIR 安装
TMPDIR=/root/tmp sh cuda_11.8.0_520.61.05_linux.run
七、安装 CUDA11.8
进入安装界面后:
1. 接受协议
看到:
Do you accept the above EULA?
输入:
accept
2. 安装选项
推荐选择:
[ ] Driver
[X] CUDA Toolkit 11.8
[ ] CUDA Demo Suite 11.8
[ ] CUDA Documentation 11.8
重点:
取消 Driver
因为系统已经有 NVIDIA 驱动。
安装完成后会显示:
Toolkit: Installed in /usr/local/cuda-11.8/
说明安装成功。
八、配置环境变量
编辑:
vim ~/.bashrc
删除旧的环境变量,比如:
export PATH=/usr/local/cuda-12.4/bin:$PATH
export LD_LIBRARY_PATH=/usr/local/cuda-12.4/lib64:$LD_LIBRARY_PATH
添加:
export CUDA_HOME=/usr/local/cuda-11.8
export PATH=$CUDA_HOME/bin:$PATH
export LD_LIBRARY_PATH=$CUDA_HOME/lib64:$LD_LIBRARY_PATH
保存退出:
Esc
:wq
刷新环境变量:
source ~/.bashrc
九、验证 CUDA
1. 查看 nvcc
nvcc -V
正常输出:
Cuda compilation tools, release 11.8
再看:
echo $CUDA_HOME
应该显示:
/usr/local/cuda-11.8
检查软链接
执行:
ls -l /usr/local/cuda
如果没有 /usr/local/cuda,可以手动创建:
ln -s /usr/local/cuda-11.8 /usr/local/cuda
2. 查看路径
which nvcc
正常输出:
/usr/local/cuda-11.8/bin/nvcc
3. 查看驱动
nvidia-smi
正常显示 GPU 即可。
十、安装 Conda 环境
创建环境:
conda create -n gs python=3.8 -y
激活:
conda activate gs
十一、安装 PyTorch cu118
推荐版本:
pip install torch==2.3.0 torchvision==0.18.0 torchaudio==2.3.0 --index-url https://download.pytorch.org/whl/cu118
十二、验证 Torch GPU
执行:
python -c "import torch; print(torch.__version__); print(torch.version.cuda); print(torch.cuda.is_available()); print(torch.cuda.get_device_name(0)); print(torch.cuda.get_device_capability(0))"
正常输出:
2.3.0+cu118
11.8
True
NVIDIA GeForce RTX 3090
(8, 6)
十三、安装 3DGS 子模块
创建并进入:
cd /root/project/gaussian
在当前文件夹解压gaussian-splatting-full.tar.gz(麒麟linux系统部署3dgs源码见另一篇文章),得到gaussian-splatting,进入:
cd /root/project/gaussian/gaussian-splatting
安装 ninja:
pip install ninja
1. 安装 simple-knn
清理缓存
rm -rf submodules/simple-knn/build
rm -rf ~/.cache/torch_extensions
编译环境变量
export CUDA_HOME=/usr/local/cuda-11.8
export PATH=$CUDA_HOME/bin:$PATH
export LD_LIBRARY_PATH=$CUDA_HOME/lib64:$LD_LIBRARY_PATH
export TORCH_CUDA_ARCH_LIST="8.6"
麒麟 Linux crypt.h 问题解决
很多麒麟系统会报:
fatal error: crypt.h: No such file or directory
解决:
yum install -y libxcrypt-devel
查看:
ls -l /usr/include/crypt.h
如果存在:
/usr/include/crypt.h
执行:
cp /usr/include/crypt.h /root/miniconda3/envs/gs/include/python3.8/
这是麒麟 Linux 最有效的解决方式。
编译 simple-knn
pip install -v --no-build-isolation submodules/simple-knn
2. 安装 diff-gaussian-rasterization
rm -rf submodules/diff-gaussian-rasterization/build
rm -rf ~/.cache/torch_extensions
pip install -v --no-build-isolation submodules/diff-gaussian-rasterization
十四、运行 3DGS
特征提取(麒麟linux编译colmap见另一篇文章):
python convert.py -s ./data/project1
训练:
python train.py -s data/project1 -m output/project1
十五、常见问题汇总
1. nvcc 找不到
执行:
source ~/.bashrc
检查:
which nvcc
2. libcudart.so.12 找不到
原因:
之前按 CUDA12 编译过扩展
解决:
重新编译:
pip uninstall diff-gaussian-rasterization simple-knn -y
重新安装。
3. Error compiling objects for extension
一般是:
- GCC 问题
- crypt.h 缺失
- CUDA_HOME 错误
- torch CUDA 版本不匹配
4. 查看 GCC 版本
gcc --version
g++ --version
推荐:
GCC 7~11
十六、推荐版本组合
| 软件 | 推荐版本 |
|---|---|
| CUDA | 11.8 |
| Torch | 2.3.0+cu118 |
| Python | 3.8 |
| GCC | 7~11 |
| GPU | RTX3090 |
更多推荐




所有评论(0)