张小白教你在WSL环境源码安装mindspore 1.5.1 GPU版本
注:其实本文是 【MindSPore第六期两日集群营】MindSpore MOE作业做错了的副产品。当时作业要求使用
./build.sh -t on进行源码编译,但是张小白阴错阳差地使用了bash build.sh -e gpu方式编译。结果导致编译成功的whl包实际上作业也用不了。
所以,塞翁失马焉知非福!
一、准备WSL的GPU环境
按照下面这篇文档操作即可:
张小白再带你玩一次Win11+WSL+CUDA11.1+cuDNN8.0.5+MindSpore 1.3.0(GPU版)
二、阅读官网安装指南
根据 官网 编译要求指引
然后再仔细阅读下面的编译依赖要求、编译方式、验证方式。
三、准备编译相关的依赖
1、一些系统依赖包:
(1)openssl
sudo apt-get install openssl libssl-dev
(2)bison
sudo apt-get install bison
(3)helpman
sudo apt-get install help2man
(4)texinfo
sudo apt-get install texinfo
(5)make
(6)build-essential
sudo apt-get update
sudo apt-get install -y build-essential
(7)gfortran
sudo apt-get install gfortran
2、cmake 3.18.3
wget https://cmake.org/files/v3.18/cmake-3.18.3.tar.gz
tar -zxvf cmake*.gz
cd cmake-3.18.3
./configure
make
sudo make install
cmake -version
3、gcc 7.3.0
原来张小白以为使用wsl自带的gcc 7.5.0可以用,但是编译的过程中,系统提示了最好使用gcc 7.3.0,所以张小白还是重新编译了gcc 7.3.0
gcc 7.3.0的编译方法可以参见以下文档:
张小白教你如何在Ubuntu 18.04上源码安装MindSpore V1.0
(搜索 “Part Two:源码安装gcc 7.3.0”)
具体过程是 mpc-1.1.0+gmp-5.0.1+mpfr-3.1.0+gcc-7.3.0 一路照着文档安装即可。
安装完毕后,将原来/usr/bin下的gcc和g++软链接 指向编译好的/usr/local/bin的gcc和g++即可。
(1)gmp 5.0.1
wget ftp://ftp.gnu.org/gnu/gmp/gmp-5.0.1.tar.bz2
bzip2 -d gmp-5.0.1.tar.bz2
tar xvf gmp-5.0.1.tar
cd gmp-5.0.1
./configure --prefix=/usr/local/gmp-5.0.1
make
sudo make install
(2)mpfr 3.1.0
wget http://ftp.gnu.org/gnu/mpfr/mpfr-3.1.0.tar.xz
xz -d mpfr-3.1.0.tar.xz
tar xvf mpfr-3.1.0.tar
cd mpfr-3.1.0
./configure --prefix=/usr/local/mpfr-3.1.0 --with-gmp=/usr/local/gmp-5.0.1
make -j8
sudo make install
(3)mpc 1.1.0
wget http://www.multiprecision.org/downloads/mpc-1.1.0.tar.gz
gzip -d mpc*.gz
tar xvf mpc*.tar
cd mpc-1.1.0
./configure --prefix=/usr/local/mpc-1.1.0 --with-gmp=/usr/local/gmp-5.0.1 --with-mpfr=/usr/local/mpfr-3.1.0
make -j8
sudo make install
sudo vi /etc/ld.so.conf
加入以下三行内容:
sudo ldconfig
(4)gcc 7.3.0
wget http://ftp.gnu.org/gnu/gcc/gcc-7.3.0/gcc-7.3.0.tar.gz
tar -zxvf gcc-7.3.0.tar.gz
cd gcc-7.3.0
./configure --with-gmp=/usr/local/gmp-5.0.1 --with-mpc=/usr/local/mpc-1.1.0 --with-mpfr=/usr/local/mpfr-3.1.0 --disable-multilib
make -j8
sudo make install
gcc 7.3.0安装在 /usr/local/bin目录下
替换掉系统的gcc 7.5.0
验证:
4、gmp 6.1.2
wget https://gmplib.org/download/gmp/gmp-6.1.2.tar.xz
xz -d gmp-6.1.2.tar.xz
tar xvf gmp-6.1.2.tar
cd gmp-6.1.2
./configure --prefix=/usr/local/gmp-6.1.2
make
sudo make install
经验表明,还得补装一个libgmp-dev才可以:
sudo apt-get install libgmp-dev
5、Python 3.7.5
用conda来准备python 3.7.5环境
现有python版本为Python 3.8.8
按Y继续:
conda activate mindspore-build
python -V
6、patch 2.5.4
wget http://ftp.gnu.org/gnu/patch/patch-2.5.4.tar.gz
tar zxvf patch-2.5.4.tar.gz
cd patch-2.5.4
./configure
make
sudo make install
patch -version
7、autoconf、libtool和automake
(1)autoconf 2.69
sudo apt-get install autoconf
(2)automake 1.15.1
sudo apt-get install automake
(3)libtool 2.4.6
sudo apt-get install libtool
(4)autopoint 0.19.8.1
autopoint是在安装过程中需要补充的依赖。
sudo apt-get install autopoint
8、flex 2.5.35
git clone https://github.com/westes/flex.git
cd flex
autogen.sh
./configure
make -j8
apt-get install flex
装完缺省的flex,再make -j8
sudo make install
flex -V
9、wheel 0.35.1
解压后看README.rst文件,似乎只要pip安装就行了。那么暂时不用安装:
10、CUDA 11.1和配套的cuDNN
参考 https://bbs.huaweicloud.cn/blogs/308832 的方式,conda安装:
conda install -c conda-forge cudatoolkit=11.1 cudnn=8.0.5
好像有版本冲突。
先只安装cuda 11.1
conda install -c conda-forge cudatoolkit=11.1
按Y继续:
11、NUMA 2.0.11
apt-get install libnuma-dev
四、源码编译MindSpore 1.5.1 GPU版本
1、下载MindSpore源码包
git clone https://gitee.com/mindspore/mindspore.git -b r1.5
2、源码编译MindSpore 1.5 GPU版本
bash build.sh -e gpu
。。。
在编译的过程中,由于国内github连接不通畅原因,会导致一些下载失败或者长时间等待的问题,有好心的同学准备了不太好下载的第三方依赖包:
在随后的编译过程中一般使用以下的方法就可以比较“快捷”的完成编译:
当遇到 下载 https://github..... 卡住的时候,果断ctrl-c中断编译过程,先找一下相关的包在不在里面:
如果在,如上图。再查找一下这个文件名放在本机的什么地方,然后将豆包的文件拷贝到本机的相应的编译目录下即可。
如果不在,则可以通过两种方式下载,一个是直接在本地wget(但这样既然大多数情况会很慢),另一个就是在浏览器下载,然后再将文件拷贝到同样的编译目录下:
如下面这个文件:
通过一系列神操作下载后:
拷贝过去即可:
耐心等待编译完毕:
编译结束后,会在output文件夹生成whl包:
3、安装MindSpore 1.5 GPU版本
pip install ./mindspore_gpu-1.5.1-cp37-cp37m-linux_x86_64.whl -i https://pypi.tuna.tsinghua.edu.cn/simple
4、验证MindSpore 1.5 GPU版本
惯例使用两种方式验证:
好了,这样子MindSpore GPU 1.5版本就编译和安装完毕了。
(全文完,谢谢阅读)
- 点赞
- 收藏
- 关注作者
评论(0)