Deepspeed环境对torch, CUDA和CUDNN比较敏感, 如果不匹配会遇到很多奇怪问题, 下边分享一个经过验证的环境
操作系统: Centos7
python: 3.9.16
pytorch: 2.1.2
cuda: 12.2
cudnn: 8.9.2
cuda和cudnn分享到了百度网盘:
链接: https://pan.baidu.com/s/1TbwfNNUKd1l0AMsM-XGiVA 提取码: aw5e
# 1. 安装 cuda
sudo sh cuda_12.2.2_535.104.05_linux.run
# 2. 安装 cudnn
tar -xf cudnn-linux-x86_64-8.9.2.26_cuda12-archive.tar.xz
cd cudnn-linux-x86_64-8.9.2.26_cuda12-archive
cp include/cudnn.h /usr/local/cuda-12.2/include
cp lib/libcudnn* /usr/local/cuda-12.2/lib64
chmod a+r /usr/local/cuda-12.2/include/cudnn.h /usr/local/cuda-12.2/lib64/libcudnn*
# 3. 配置环境变量
vim ~/.bashrc
在最后添加如下内容
export CUDA_HOME=/usr/local/cuda-12.2
export PATH=/usr/local/cuda-12.2/bin${PATH:+:${PATH}}
export LD_LIBRARY_PATH=/usr/local/cuda-12.2/lib64${LD_LIBRARY_PATH:+:${LD_LIBRARY_PATH}}
一些总结:
1. 使用conda安装的cuda和cudnn虽然可以跑一般的训练, 但是使用deepspeed框架时还是会报一些奇怪的错误, 比如:Error building extension 'cpu_adam',
AttributeError:'DeepSpeedCPUAdam' object has no attribute 'ds_opt_adam',
尝试了更换gcc版本不好使, 最后只能下载cuda和cudnn手动安装, 安装后实测可用
2. python3.9.16 搭配 torch2.0.0, cuda11.7 不好使, 手动安装cuda也不行