【MindSpore易点通·漫游世界】在WSL的Ubuntu 22.04上一键安装MindSpore GPU 1.7.0踩坑记
近期张小白的周边发生了如下大事:
(1)2022年4月,ubuntu推出22.04版本。
(2)MindSpore推出自动安装脚本
(3)张小白写过 【MindSpore易点通·漫游世界】在WSL的Ubuntu 20.04上一键安装MindSpore GPU 1.6.1
(4)MindSpore推出 1.7.0版本。
所以,张小白打算使用WSL的ubuntu 22.04自动安装MindSpore GPU 1.7.0版本。
先安装WSL ubuntu 22.04版本,其实这个安装过程跟安装 WSL的ubuntu 20.04版本类似。
(1)使用Microsoft Store安装 ubuntu 22.04 LTS:
点击“打开”,这次的方式好像略有变化,因为多了很多配置界面:
选择语言:
输入用户名和密码:zhanghui/zhanghui
点击Finish:
这个执行可以先执行前面提示要运行的语句:
sudo apt update
sudo apt upgrade
(2)使用move-wsl将ubuntu 22.04移动到E盘:
使用管理员打开 PowerShell:
下载move-wsl工具:
git clone https://github.com/pxlrbt/move-wsl.git
停止wsl运行:
wsl --shutdown
确认ubuntu的窗口已被关闭。
cd move-wsl
执行:.\move-wsl.ps1
如遇到以下执行报错:
可输入 set-ExecutionPolicy RemoteSigned 解决:
将ubuntu 22.04移动到E盘:
(3)打开MindSpore官网:MindSpore官网
按如下方式选择:
查看下面的自动安装说明:
打开WSL的ubuntu 22.04
nvidia-smi
nvidia版本为 472.91,满足要求。
获取安装脚本:
wget https://gitee.com/mindspore/mindspore/raw/r1.7/scripts/install/ubuntu-gpu-pip.sh
PYTHON_VERSION=3.9 CUDA_VERSION=11.1 MINDSPORE_VERSION=1.7.0 bash -i ./ubuntu-gpu-pip.sh
经过咨询 马老师,需下载maste分支的脚本:
wget https://gitee.com/mindspore/mindspore/raw/master/scripts/install/ubuntu-gpu-pip.sh
重新执行:
PYTHON_VERSION=3.9 CUDA_VERSION=11.1 MINDSPORE_VERSION=1.7.0 bash -i ./ubuntu-gpu-pip.sh
看来只有魔改shell了,将ubuntu-gpu-pip.sh中的gcc-7改为gcc-9
再重新执行:PYTHON_VERSION=3.9 CUDA_VERSION=11.1 MINDSPORE_VERSION=1.7.0 bash -i ./ubuntu-gpu-pip.sh
。。。
。。。
。。。
这里已经开始装cuda11.1了
要耐心等待下。。
下载完毕,开始安装了。。。。
检查gcc出错。。。
vi /var/log/cuda-installer.log
不是让它装gcc-9吗?怎么变成了gcc 11.2的版本?
只好手工改下:
cd /usr/bin
sudo mv gcc gcc11
sudo ln -s gcc-9 gcc
cd
gcc --version
再重新执行:PYTHON_VERSION=3.9 CUDA_VERSION=11.1 MINDSPORE_VERSION=1.7.0 bash -i ./ubuntu-gpu-pip.sh
它居然要重新下载cuda的安装盘。赶紧去把shell中的wget语句注释掉。。。再重新执行:PYTHON_VERSION=3.9 CUDA_VERSION=11.1 MINDSPORE_VERSION=1.7.0 bash -i ./ubuntu-gpu-pip.sh
它应该在静默安装CUDA和cuDNN。。
这个pub找不到,去 Index of /compute/cuda/repos/ubuntu2204/x86_64 看看:
确实名字不对,应该叫:3bf863cc.pub
修改shell:
再重新执行:PYTHON_VERSION=3.9 CUDA_VERSION=11.1 MINDSPORE_VERSION=1.7.0 bash -i ./ubuntu-gpu-pip.sh
。。。
这应该是可以了吧。按回车继续:
再按回车继续:
好像没那么简单。。。
查看nvidia的仓库:Index of /compute/machine-learning/repos
好像nvidia的ml仓库都木有做适配ubuntu 2204的版本。
如果注释掉machine-learning这一行会发生什么事情呢?
再重新执行:PYTHON_VERSION=3.9 CUDA_VERSION=11.1 MINDSPORE_VERSION=1.7.0 bash -i ./ubuntu-gpu-pip.sh
哦,原来是无法安装cuDNN8.
那我们只好到官网手工下载cuDNN8的zip包了。
第一个链接好像就是 cuDNN 8.4.0 for CUDA 11.x
看看能不能下载下来:
将其拷贝到WSL的ubuntu 22.04的服务器中:
cp /mnt/c/users/xishu/Downloads/cudnn-linux-x86_64-8.4.0.27_cuda11.6-archive.tar.xz .
解压:
xz -d cudnn-linux-x86_64-8.4.0.27_cuda11.6-archive.tar.xz
tar xvf cudnn-linux-x86_64-8.4.0.27_cuda11.6-archive.tar
将CuDNN解压后的include和lib64下的文件分别拷贝到 /usr/local/cuda/的 include和lib64目录下去:
cd /usr/local/cuda/
sudo cp ~/cudnn-linux-x86_64-8.4.0.27_cuda11.6-archive/include/* ./include/
sudo cp ~/cudnn-linux-x86_64-8.4.0.27_cuda11.6-archive/lib/* ./lib64/
再跑一键脚本之前,先注释掉安装cudnn的那行:
再重新执行:PYTHON_VERSION=3.9 CUDA_VERSION=11.1 MINDSPORE_VERSION=1.7.0 bash -i ./ubuntu-gpu-pip.sh
好像终于到了安装MindSpore的whl包这一步了。。
耐心等待安装结束:
这里还会有点慢:
但是最终还是能出来全是2的运算结果,说明MindSpore GPU版还是安装成功的。
总结一下在ubuntu 22.04上一键安装脚本出现的几个问题:
1.官网的教程命令对应的脚本不支持wsl,需要下载master分支的脚本
2.ubuntu 22.04无法直接安装gcc-7,需改为gcc-9.
3.即便改完gcc-9,代码不知怎的,还把gcc-11给装起来了,所以要去/usr/bin下将gcc指向gcc-9
4.如果脚本运行出错,重新运行会反复下载cuda toolkit的3G大小的安装包,脚本可以先判断下文件是否存在(且满足大小要求,如果满足则可以不下载了直接跑后面的命令。
5.ubuntu 2204的cuda的apt公钥文件名称跟 18.04不一样。需要修改为 3bf863cc.pub
6.由于nvidia官网尚未把cudnn放入ubuntu 2204的machine learning代码仓,所以无法直接通过增加apt源的方式安装cudnn,目前暂时只能手工安(JIE)装(YA)。
其它吗,,,一切顺利。。。LOL
(全文完,谢谢阅读)
- 点赞
- 收藏
- 关注作者
评论(0)