裸機編譯安裝Paddle示例【Python2】【Python3】

說明

機器P40*8

操作系統centos 6.x,系統內核版本3.10.0_3-0-0-26,glibc 版本2.12

驅動版本418.39,cuda版本9.2

需要有root權限(安裝nccl2)和下載編譯依賴

另外glibc版本過低,並不滿足nccl2官方要求。

官方推薦升級操作系統版本到centos 7 ,或者使用docker

 

安裝gcc 4.8.5

wget ftp://ftp.gnu.org/gnu/gcc/gcc-4.8.5/gcc-4.8.5.tar.gz
tar xvf gcc-4.8.5.tar.gz
cd gcc-4.8.5
#下載編譯依賴,如果下載失敗則手動下載
./contrib/download_prerequisites
mkdir build
cd build
../configure --prefix=/home/huxiaoguang/bin/gcc-4.8.5 --disable-multilib
make -j 8
make install

 

安裝anaconda3

wget https://mirrors.tuna.tsinghua.edu.cn/anaconda/archive/Anaconda3-5.3.1-Linux-x86_64.sh
sh Anaconda3-5.3.1-Linux-x86_64.sh
#自動設置環境變量到.bashrc
#重新登錄使環境變量生效
which python
python -V
conda create -n paddle-1.6
conda env list
conda activate paddle-1.6
#安裝protobuf
pip install protobuf

安裝cmake

wget https://cmake.org/files/v3.5/cmake-3.5.2.tar.gz
tar xvzf cmake-3.5.2.tar.gz
cd cmake-3.5.2
./bootstrap --prefix=/home/huxiaoguang/bin/cmake-3.5.2
make -j 8
make install

安裝git

wget https://mirrors.edge.kernel.org/pub/software/scm/git/git-2.23.0.tar.gz
tar xvf git-2.23.0.tar.gz
cd git-2.23.0
# centos自帶的curl, ssl庫版本過低,需要使用anaconda3的庫版本
export LD_LIBRARY_PATH=/home/huxiaoguang/anaconda3/lib:$LD_LIBRARY_PATH
./configure --prefix=/home/huxiaoguang/bin/git-2.23.0
make
make install
echo "export PATH=/home/huxiaoguang/bin/git-2.23.0/bin:\$PATH" >> ~/.bash_profile
source ~/.bash_profile
which git
git --version

以下步驟不一定需要,通常anaconda的lib版本可滿足git的使用需求。

測試git clone命令,如提示 SSL connect error,則有可能是nss版本過低造成,需要升級nss庫。

因爲Paddle編譯時需要通過git下載依賴的代碼庫,所以需要保持git命令能正常工作。

wget https://ftp.mozilla.org/pub/security/nss/releases/NSS_3_37_1_RTM/src/nss-3.37.1-with-nspr-4.19.tar.gz
tar xvzf nss-3.37.1-with-nspr-4.19.tar.gz
cd nss-3.37.1
export BUILD_OPT=1
export USE_64=1
make nss_build_all
cd ../dist
cp -r Linux3.10_x86_64_cc_glibc_PTH_64_OPT.OBJ /home/huxiaoguang/bin/nss-3.37

安裝cudnn&nccl2

# 解壓後放到特定目錄
wget https://developer.nvidia.com/compute/machine-learning/cudnn/secure/7.6.4.38/Production/9.2_20190923/cudnn-9.2-linux-x64-v7.6.4.38.tgz

wget https://developer.nvidia.com/compute/machine-learning/nccl/secure/v2.4/prod/nccl-repo-rhel7-2.4.8-ga-cuda9.2-1-1.x86_64.rpm
# 查詢安裝目錄
rpm -qpl nccl-repo-rhel7-2.4.8-ga-cuda9.2-1-1.x86_64.rpm
# 無法修改安裝目錄,必須使用root安裝
sudo rpm -ivh nccl-repo-rhel7-2.4.8-ga-cuda9.2-1-1.x86_64.rpm
sudo rpm -qpl /var/nccl-repo-2.4.8-ga-cuda9.2/libnccl-2.4.8-1+cuda9.2.x86_64.rpm
#/usr/lib64/libnccl.so.2
#/usr/lib64/libnccl.so.2.4.8
#/usr/share/doc/libnccl-2.4.8
#/usr/share/doc/libnccl-2.4.8/LICENSE.txt
sudo rpm -ivh /var/nccl-repo-2.4.8-ga-cuda9.2/libnccl-2.4.8-1+cuda9.2.x86_64.rpm 

sudo rpm -qpl /var/nccl-repo-2.4.8-ga-cuda9.2/libnccl-devel-2.4.8-1+cuda9.2.x86_64.rpm
#/usr/include/nccl.h
#/usr/lib64/libnccl.so
#/usr/share/doc/libnccl-devel-2.4.8
#/usr/share/doc/libnccl-devel-2.4.8/LICENSE.txt
sudo rpm -ivh /var/nccl-repo-2.4.8-ga-cuda9.2/libnccl-devel-2.4.8-1+cuda9.2.x86_64.rpm

 

編譯Paddle

git clone https://github.com/PaddlePaddle/Paddle.git
cd paddle
git checkout v1.6.0
mkdir build
cd build
cmake .. -DPY_VERSION=3.7 -DPADDLE_VERSION=1.6.0 -DWITH_GPU=ON -DWITH_TESTING=OFF -DCMAKE_BUILD_TYPE=Release -DCUDNN_ROOT=/home/huxiaoguang/bin/cudnn-v7.6.4/cuda
# 網絡問題可能會造成編譯依賴下載失敗,可以適當調小make時的併發數
make -j 6
# 安裝whl包
cd python/dist
pip install *.whl
# 驗證是否成功
cd ~
python
>>> import paddle
>>> print(paddle.__version__)
# 1.6.0

 
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章