3. 环境搭建:安装CUDA、conda环境、RAPIDS套件,验证GPU可用性
环境搭建这件事,说白了就是把你的普通机器变成一台能跑 GPU 加速的机器。我记得第一次配 RAPIDS 时,光驱动就折腾了一下午——后来发现只是忘了把独显设为默认渲染设备。这一章我把整个流程拆成几步,按顺序走下来基本不会踩坑。
3.1 硬件与系统准备
先看看你手头有什么。RAPIDS 依赖 NVIDIA GPU,支持的计算能力(Compute Capability)必须 ≥ 5.0(Maxwell 架构以上)。我常用的卡是 Tesla T4 和 RTX 3090,熟悉得很。
系统方面,Ubuntu 20.04/22.04 或 CentOS 7/8 都行。Windows 的话建议用 WSL2 装 Ubuntu 子系统,别直接在 Windows 里折腾 CUDA,那是我踩过的坑。
- GPU 计算能力:查表
nvidia-smi --query-gpu=compute_cap --format=csv - 驱动版本:RAPIDS 23.12 需要 ≥ 525.60.13
- 内存建议:至少 16GB 系统内存 + 8GB 显存
lspci | grep -i nvidia 确认卡被系统识别。如果啥都没输出,先别装软件,去 BIOS 里看看是不是把独显关了。
3.2 安装 CUDA Toolkit
RAPIDS 的各个版本和 CUDA 版本有对应关系。我用的是 CUDA 11.8 + RAPIDS 23.12,稳定性经过大量验证。下载地址在 NVIDIA 官网,选 runfile 或者 deb 包都行。我习惯用 runfile,因为可以指定安装目录。
# 添加 NVIDIA 官方仓库(Ubuntu 示例)
wget https://developer.download.nvidia.com/compute/cuda/repos/ubuntu2004/x86_64/cuda-keyring_1.0-1_all.deb
sudo dpkg -i cuda-keyring_1.0-1_all.deb
sudo apt-get update
# 安装 CUDA Toolkit 11.8
sudo apt-get install cuda-toolkit-11-8
# 配置环境变量(写入 ~/.bashrc)
export PATH=/usr/local/cuda-11.8/bin:$PATH
export LD_LIBRARY_PATH=/usr/local/cuda-11.8/lib64:$LD_LIBRARY_PATH
装完后验证一下:
nvcc --version
nvidia-smi
nvcc --version 输出的是 CUDA 编译器版本,nvidia-smi 显示驱动和 GPU 状态。如果 nvcc 没找到,大概率是环境变量没生效,重新 source 一下或者重启终端就行。
3.3 安装 Miniconda 并创建隔离环境
我习惯用 Miniconda 而不是 Anaconda,因为后者太臃肿。下载 Linux 版本的安装脚本:
wget https://repo.anaconda.com/miniconda/Miniconda3-latest-Linux-x86_64.sh
bash Miniconda3-latest-Linux-x86_64.sh -b -p $HOME/miniconda3
eval "$($HOME/miniconda3/bin/conda shell.bash hook)"
创建一个新的环境,就叫 rapids:
conda create -n rapids python=3.10
conda activate rapids
这里我特意选了 Python 3.10,因为 RAPIDS 23.12 官方支持的就是 3.10。用更新的 3.11 也不是不行,但有些包的二进制可能没跟上,编译安装特别慢。
3.4 安装 RAPIDS 套件
RAPIDS 的核心组件包括 cuDF(数据框)、cuML(机器学习)、cuGraph(图分析)和 cuSpatial(空间计算)。我们做降维课程只需要 cuDF 和 cuML。
官方推荐通过 conda 安装,一条命令搞定:
conda install -c rapidsai -c conda-forge -c nvidia \
rapids=23.12 python=3.10 cudatoolkit=11.8
安装时间取决于你的网络,我这边大概 5-10 分钟。如果中途断掉,重新运行命令会自动续传。
如果想精简,也可以只装核心包:
conda install -c rapidsai -c conda-forge -c nvidia \
cudf=23.12 cuml=23.12 cudatoolkit=11.8
3.5 验证 GPU 可用性
环境装好了,得跑个测试确认一切正常。写一个简单的 Python 脚本:
import cudf
import cuml
# 检查 cuDF 是否能创建设备数据框
df = cudf.DataFrame({'a': [1, 2, 3], 'b': [4, 5, 6]})
print("cuDF DataFrame:\n", df)
# 检查 cuML 是否能进行 PCA 降维
from cuml import PCA
model = PCA(n_components=2)
result = model.fit_transform(df.to_numpy())
print("PCA result shape:", result.shape)
如果没报错,恭喜你,环境搭好了。输出应该类似:
cuDF DataFrame:
a b
0 1 4
1 2 5
2 3 6
PCA result shape: (3, 2)
如果报错说 No visible GPU,可能是权限问题——我记得 Docker 容器里偶尔会遇到,加个 --gpus all 参数就行。
3.6 环境搭建全流程图
下面这张图帮你理清整个过程:
3.7 避坑清单(我踩过的那种)
| 问题 | 症状 | 解决办法 |
|---|---|---|
| GPU 算力不足 | cuML 报错 No kernel image | 换支持 CUDA 11+ 的卡,或升级驱动 |
| conda 安装慢 | 一直在 Solving environment | 加 --channel 顺序:rapidsai 放第一位 |
| Python 版本不匹配 | 某些包找不到 | 严格使用 conda 指定的版本(3.10) |
| 虚拟机上跑 | 看不到 GPU | 在虚拟机设置里勾选“启用3D加速”并分配显存 |
嗯,大概就这些。环境搭好后,你可以创建一个测试文件 test_rapids.py 随时检查。我个人习惯把整个流程写成 setup.sh 脚本,下次重装系统时直接跑一遍,不用再记那么多命令。