WSL2环境下安装cuML(RAPIDS)失败:CUDA设备无法识别求助
解决WSL2中CUDF初始化CUDA设备失败的问题
以下是针对CUDA_ERROR_NO_DEVICE (100)错误的具体排查和修复步骤:
1. 配置WSL2的CUDA环境变量
WSL2需要确保核心GPU驱动路径和conda环境的CUDA库路径被正确加载:
- 先激活rapids环境:
conda activate rapids - 执行
echo $LD_LIBRARY_PATH,确认输出包含/usr/lib/wsl/lib(WSL共享Windows GPU驱动的关键路径)和conda环境的CUDA库路径(如~/miniconda3/envs/rapids/lib) - 若路径缺失,手动添加:
把这条命令写入export LD_LIBRARY_PATH=/usr/lib/wsl/lib:$CONDA_PREFIX/lib:$LD_LIBRARY_PATH~/.bashrc或~/.zshrc,确保每次启动WSL自动生效。
2. 检查GPU设备访问权限
WSL2的GPU设备权限异常会导致无法识别:
- 执行
ls -la /dev/nvidia*,确认设备文件的所属组为video且当前用户有读写权限 - 若权限不足,执行:
退出WSL并重新登录后生效。sudo usermod -aG video $USER
3. 验证conda环境的CUDA兼容性
确保conda环境的CUDA工具包与系统驱动兼容:
- 激活rapids环境后,执行
nvcc --version,确认输出的CUDA版本为11.8 - 若
nvcc无法找到,添加conda环境的CUDA二进制路径到系统变量:
同样可以写入shell配置文件持久生效。export PATH=$CONDA_PREFIX/bin:$PATH
4. 修复numba的CUDA识别问题
错误来自numba的CUDA初始化,直接排查并修复:
在Python环境中执行测试代码:
from numba import cuda print(cuda.gpus)
若输出为空,执行以下操作:
- 卸载并重装numba:
conda remove numba && conda install numba -c conda-forge - 确保numba版本与CUDA 11.8及RAPIDS 23.04适配(重装可解决潜在的文件损坏问题)
5. 重启WSL2和VSCode
环境变量或驱动加载异常时,重启可解决大部分问题:
- 在Windows命令提示符执行:
wsl --shutdown,再重新启动WSL - 关闭所有VSCode窗口,重新打开并连接到WSL环境,确认Jupyter Notebook使用的是正确的rapids conda环境
内容的提问来源于stack exchange,提问作者Stephan De Spiegeleire
相关产品推荐
相关产品推荐

