未验证 提交 31326950 编写于 作者: P pangyoki 提交者: GitHub

[Docker] support cuda11.2 and using gcc5.4 in cuda10.1 (#32531)

* support cuda11.2 and using gcc5.4 in cuda10.1

* fix manylinux py36 bug

* support cuda11.2

* fix python36 pip version problem in ubuntu

* save cuda11.0
上级 3b81f2b8
...@@ -205,7 +205,7 @@ RUN pip3.6 --no-cache-dir install -r /root/requirements.txt && \ ...@@ -205,7 +205,7 @@ RUN pip3.6 --no-cache-dir install -r /root/requirements.txt && \
# To fix https://github.com/PaddlePaddle/Paddle/issues/1954, we use # To fix https://github.com/PaddlePaddle/Paddle/issues/1954, we use
# the solution in https://urllib3.readthedocs.io/en/latest/user-guide.html#ssl-py2 # the solution in https://urllib3.readthedocs.io/en/latest/user-guide.html#ssl-py2
RUN apt-get install -y libssl-dev libffi-dev && apt-get clean -y && \ RUN apt-get install -y libssl-dev libffi-dev && apt-get clean -y && \
pip3.6 install --upgrade pip && \ pip3.6 install --upgrade pip==20.3.3 && \
pip3.7 install --upgrade pip && \ pip3.7 install --upgrade pip && \
pip3.8 install --upgrade pip && \ pip3.8 install --upgrade pip && \
pip3.9 install --upgrade pip && \ pip3.9 install --upgrade pip && \
......
...@@ -11,7 +11,7 @@ ARG WITH_AVX ...@@ -11,7 +11,7 @@ ARG WITH_AVX
ENV WITH_GPU=${WITH_GPU:-ON} ENV WITH_GPU=${WITH_GPU:-ON}
ENV WITH_AVX=${WITH_AVX:-ON} ENV WITH_AVX=${WITH_AVX:-ON}
ENV DEBIAN_FRONTEND=noninteractive ENV DEBIAN_FRONTEND=noninteractive
ENV LD_LIBRARY_PATH=/usr/local/cuda-11.0/targets/x86_64-linux/lib:$LD_LIBRARY_PATH ENV LD_LIBRARY_PATH=/usr/local/cuda-11.2/targets/x86_64-linux/lib:$LD_LIBRARY_PATH
ENV HOME /root ENV HOME /root
# Add bash enhancements # Add bash enhancements
......
...@@ -93,8 +93,8 @@ function do_cpython_build { ...@@ -93,8 +93,8 @@ function do_cpython_build {
rm -rf Python-$py_ver rm -rf Python-$py_ver
# Some python's install as bin/python3. Make them available as # Some python's install as bin/python3. Make them available as
# bin/python. # bin/python.
if [ -e ${prefix}/bin/python3 ]; then if [ -e ${prefix}/bin/python3.6 ]; then
ln -s python3 ${prefix}/bin/python ln -s python3.6 ${prefix}/bin/python
fi fi
if [ -e ${prefix}/bin/python3.7 ]; then if [ -e ${prefix}/bin/python3.7 ]; then
ln -s python3.7 ${prefix}/bin/python ln -s python3.7 ${prefix}/bin/python
...@@ -106,7 +106,13 @@ function do_cpython_build { ...@@ -106,7 +106,13 @@ function do_cpython_build {
ln -s python3.9 ${prefix}/bin/python ln -s python3.9 ${prefix}/bin/python
fi fi
# NOTE Make libpython shared library visible to python calls below # NOTE Make libpython shared library visible to python calls below
LD_LIBRARY_PATH="/usr/local/ssl/lib:${prefix}/lib" ${prefix}/bin/python get-pip.py if [ -e ${prefix}/bin/python3.6 ]; then
LD_LIBRARY_PATH="/usr/local/ssl/lib:${prefix}/lib" ${prefix}/bin/python ez_setup.py
LD_LIBRARY_PATH="/usr/local/ssl/lib:${prefix}/lib" ${prefix}/bin/python -m easy_install pip
LD_LIBRARY_PATH="/usr/local/ssl/lib:${prefix}/lib" ${prefix}/bin/python -m pip install --upgrade pip==20.3.3
else
LD_LIBRARY_PATH="/usr/local/ssl/lib:${prefix}/lib" ${prefix}/bin/python get-pip.py
fi
LD_LIBRARY_PATH="/usr/local/ssl/lib:${prefix}/lib" ${prefix}/bin/pip install wheel==0.32.2 LD_LIBRARY_PATH="/usr/local/ssl/lib:${prefix}/lib" ${prefix}/bin/pip install wheel==0.32.2
cd / cd /
ls ${MY_DIR} ls ${MY_DIR}
...@@ -137,6 +143,8 @@ function build_cpythons { ...@@ -137,6 +143,8 @@ function build_cpythons {
GET_PIP_URL="https://bootstrap.pypa.io/2.7/get-pip.py" GET_PIP_URL="https://bootstrap.pypa.io/2.7/get-pip.py"
elif [ ${py_ver} == "3.5.1" ] ;then elif [ ${py_ver} == "3.5.1" ] ;then
GET_PIP_URL="https://bootstrap.pypa.io/3.5/get-pip.py" GET_PIP_URL="https://bootstrap.pypa.io/3.5/get-pip.py"
elif [ ${py_ver} == "3.6.0" ] ;then
GET_PIP_URL="https://bootstrap.pypa.io/ez_setup.py"
fi fi
check_var $GET_PIP_URL check_var $GET_PIP_URL
...@@ -144,6 +152,7 @@ function build_cpythons { ...@@ -144,6 +152,7 @@ function build_cpythons {
build_cpython $py_ver build_cpython $py_ver
done done
rm get-pip.py rm get-pip.py
rm ez_setup.py
} }
......
...@@ -17,7 +17,7 @@ ...@@ -17,7 +17,7 @@
VERSION=$(nvcc --version | grep release | grep -oEi "release ([0-9]+)\.([0-9])"| sed "s/release //") VERSION=$(nvcc --version | grep release | grep -oEi "release ([0-9]+)\.([0-9])"| sed "s/release //")
if [ "$VERSION" == "10.0" ]; then if [ "$VERSION" == "10.0" ]; then
DEB="nccl-repo-ubuntu1604-2.4.7-ga-cuda10.0_1-1_amd64.deb" DEB="nccl-repo-ubuntu1604-2.4.7-ga-cuda10.0_1-1_amd64.deb"
elif [ "$VERSION" == "10.2" ] || [ "$VERSION" == "10.1" ] || [ "$VERSION" == "11.0" ]; then elif [ "$VERSION" == "10.2" ] || [ "$VERSION" == "10.1" ] || [ "$VERSION" == "11.0" ] || [ "$VERSION" == "11.2" ]; then
if [ -f "/etc/redhat-release" ];then if [ -f "/etc/redhat-release" ];then
rm -f /usr/local/lib/libnccl.so rm -f /usr/local/lib/libnccl.so
wget --no-check-certificate -q https://nccl2-deb.cdn.bcebos.com/libnccl-2.7.8-1+cuda10.2.x86_64.rpm wget --no-check-certificate -q https://nccl2-deb.cdn.bcebos.com/libnccl-2.7.8-1+cuda10.2.x86_64.rpm
......
...@@ -21,6 +21,11 @@ if [[ "$VERSION" == "10.1" ]];then ...@@ -21,6 +21,11 @@ if [[ "$VERSION" == "10.1" ]];then
tar -zxf TensorRT6-cuda10.1-cudnn7.tar.gz -C /usr/local tar -zxf TensorRT6-cuda10.1-cudnn7.tar.gz -C /usr/local
cp -rf /usr/local/TensorRT6-cuda10.1-cudnn7/include/* /usr/include/ && cp -rf /usr/local/TensorRT6-cuda10.1-cudnn7/lib/* /usr/lib/ cp -rf /usr/local/TensorRT6-cuda10.1-cudnn7/include/* /usr/include/ && cp -rf /usr/local/TensorRT6-cuda10.1-cudnn7/lib/* /usr/lib/
rm TensorRT6-cuda10.1-cudnn7.tar.gz rm TensorRT6-cuda10.1-cudnn7.tar.gz
elif [[ "$VERSION" == "11.2" ]];then
wget -q https://paddle-ci.gz.bcebos.com/TRT/TensorRT7-cuda11.1-cudnn8.1.tar.gz --no-check-certificate
tar -zxf TensorRT7-cuda11.1-cudnn8.1.tar.gz -C /usr/local
cp -rf /usr/local/TensorRT-7.2.3.4/include/* /usr/include/ && cp -rf /usr/local/TensorRT-7.2.3.4/lib/* /usr/lib/
rm TensorRT7-cuda11.1-cudnn8.1.tar.gz
elif [[ "$VERSION" == "11.0" ]];then elif [[ "$VERSION" == "11.0" ]];then
wget -q https://paddle-ci.cdn.bcebos.com/TRT/TensorRT-7.1.3.4.Ubuntu-16.04.x86_64-gnu.cuda-11.0.cudnn8.0.tar.gz --no-check-certificate wget -q https://paddle-ci.cdn.bcebos.com/TRT/TensorRT-7.1.3.4.Ubuntu-16.04.x86_64-gnu.cuda-11.0.cudnn8.0.tar.gz --no-check-certificate
tar -zxf TensorRT-7.1.3.4.Ubuntu-16.04.x86_64-gnu.cuda-11.0.cudnn8.0.tar.gz -C /usr/local tar -zxf TensorRT-7.1.3.4.Ubuntu-16.04.x86_64-gnu.cuda-11.0.cudnn8.0.tar.gz -C /usr/local
......
...@@ -20,36 +20,41 @@ REPO="${REPO:-paddledocker}" ...@@ -20,36 +20,41 @@ REPO="${REPO:-paddledocker}"
function make_cuda9cudnn7(){ function make_cuda9cudnn7(){
sed 's/<baseimg>/9.0-cudnn7-devel-centos7/g' Dockerfile.centos >Dockerfile.tmp sed 's/<baseimg>/9.0-cudnn7-devel-centos7/g' Dockerfile.centos >Dockerfile.tmp
sed -i "s#RUN bash build_scripts/build.sh#RUN bash build_scripts/install_gcc.sh gcc54 \nRUN mv /usr/bin/gcc /usr/bin/gcc.bak \&\& ln -s /usr/local/gcc-5.4/bin/gcc /usr/bin/gcc \nENV PATH=/usr/local/gcc-5.4/bin:\$PATH \nRUN bash build_scripts/build.sh#g" Dockerfile.tmp sed -i "s#RUN bash build_scripts/build.sh#RUN bash build_scripts/install_gcc.sh gcc54 \nRUN mv /usr/bin/cc /usr/bin/cc.bak \&\& ln -s /usr/local/gcc-5.4/bin/gcc /usr/bin/cc \nENV PATH=/usr/local/gcc-5.4/bin:\$PATH \nRUN bash build_scripts/build.sh#g" Dockerfile.tmp
} }
function make_cuda10cudnn7() { function make_cuda10cudnn7() {
sed 's/<baseimg>/10.0-cudnn7-devel-centos7/g' Dockerfile.centos >Dockerfile.tmp sed 's/<baseimg>/10.0-cudnn7-devel-centos7/g' Dockerfile.centos >Dockerfile.tmp
sed -i "s#RUN bash build_scripts/build.sh#RUN bash build_scripts/install_gcc.sh gcc54 \nRUN mv /usr/bin/gcc /usr/bin/gcc.bak \&\& ln -s /usr/local/gcc-5.4/bin/gcc /usr/bin/gcc \nENV PATH=/usr/local/gcc-5.4/bin:\$PATH \nRUN bash build_scripts/build.sh#g" Dockerfile.tmp sed -i "s#RUN bash build_scripts/build.sh#RUN bash build_scripts/install_gcc.sh gcc54 \nRUN mv /usr/bin/cc /usr/bin/cc.bak \&\& ln -s /usr/local/gcc-5.4/bin/gcc /usr/bin/cc \nENV PATH=/usr/local/gcc-5.4/bin:\$PATH \nRUN bash build_scripts/build.sh#g" Dockerfile.tmp
} }
function make_cuda101cudnn7() { function make_cuda101cudnn7() {
sed 's/<baseimg>/10.1-cudnn7-devel-centos7/g' Dockerfile.centos >Dockerfile.tmp sed 's/<baseimg>/10.1-cudnn7-devel-centos7/g' Dockerfile.centos >Dockerfile.tmp
sed -i "s#RUN bash build_scripts/build.sh#RUN bash build_scripts/install_gcc.sh gcc82 \nRUN mv /usr/bin/gcc /usr/bin/gcc.bak \&\& ln -s /usr/local/gcc-8.2/bin/gcc /usr/bin/gcc \nENV PATH=/usr/local/gcc-8.2/bin:\$PATH \nRUN bash build_scripts/build.sh#g" Dockerfile.tmp sed -i "s#RUN bash build_scripts/build.sh#RUN bash build_scripts/install_gcc.sh gcc54 \nRUN mv /usr/bin/cc /usr/bin/cc.bak \&\& ln -s /usr/local/gcc-5.4/bin/gcc /usr/bin/cc \nENV PATH=/usr/local/gcc-5.4/bin:\$PATH \nRUN bash build_scripts/build.sh#g" Dockerfile.tmp
} }
function make_cuda102cudnn7() { function make_cuda102cudnn7() {
sed 's/<baseimg>/10.2-cudnn7-devel-centos7/g' Dockerfile.centos >Dockerfile.tmp sed 's/<baseimg>/10.2-cudnn7-devel-centos7/g' Dockerfile.centos >Dockerfile.tmp
sed -i "s#RUN bash build_scripts/build.sh#RUN bash build_scripts/install_gcc.sh gcc82 \nRUN mv /usr/bin/gcc /usr/bin/gcc.bak \&\& ln -s /usr/local/gcc-8.2/bin/gcc /usr/bin/gcc \nENV PATH=/usr/local/gcc-8.2/bin:\$PATH \nRUN bash build_scripts/build.sh#g" Dockerfile.tmp sed -i "s#RUN bash build_scripts/build.sh#RUN bash build_scripts/install_gcc.sh gcc82 \nRUN mv /usr/bin/cc /usr/bin/cc.bak \&\& ln -s /usr/local/gcc-8.2/bin/gcc /usr/bin/cc \nENV PATH=/usr/local/gcc-8.2/bin:\$PATH \nRUN bash build_scripts/build.sh#g" Dockerfile.tmp
} }
function make_cuda102cudnn8() { function make_cuda102cudnn8() {
sed 's/<baseimg>/10.2-cudnn8-devel-centos7/g' Dockerfile.centos >Dockerfile.tmp sed 's/<baseimg>/10.2-cudnn8-devel-centos7/g' Dockerfile.centos >Dockerfile.tmp
sed -i "s#RUN bash build_scripts/build.sh#RUN bash build_scripts/install_gcc.sh gcc82 \nRUN mv /usr/bin/gcc /usr/bin/gcc.bak \&\& ln -s /usr/local/gcc-8.2/bin/gcc /usr/bin/gcc \nENV PATH=/usr/local/gcc-8.2/bin:\$PATH \nRUN bash build_scripts/build.sh#g" Dockerfile.tmp sed -i "s#RUN bash build_scripts/build.sh#RUN bash build_scripts/install_gcc.sh gcc82 \nRUN mv /usr/bin/cc /usr/bin/cc.bak \&\& ln -s /usr/local/gcc-8.2/bin/gcc /usr/bin/cc \nENV PATH=/usr/local/gcc-8.2/bin:\$PATH \nRUN bash build_scripts/build.sh#g" Dockerfile.tmp
} }
function make_cuda11cudnn8() { function make_cuda11cudnn8() {
sed 's/<baseimg>/11.0-cudnn8-devel-centos7/g' Dockerfile.centos >Dockerfile.tmp sed 's/<baseimg>/11.0-cudnn8-devel-centos7/g' Dockerfile.centos >Dockerfile.tmp
sed -i "s#RUN bash build_scripts/build.sh#RUN bash build_scripts/install_gcc.sh gcc82 \nRUN mv /usr/bin/gcc /usr/bin/gcc.bak \&\& ln -s /usr/local/gcc-8.2/bin/gcc /usr/bin/gcc \nENV PATH=/usr/local/gcc-8.2/bin:\$PATH \nRUN bash build_scripts/build.sh#g" Dockerfile.tmp sed -i "s#RUN bash build_scripts/build.sh#RUN bash build_scripts/install_gcc.sh gcc82 \nRUN mv /usr/bin/cc /usr/bin/cc.bak \&\& ln -s /usr/local/gcc-8.2/bin/gcc /usr/bin/cc \nENV PATH=/usr/local/gcc-8.2/bin:\$PATH \nRUN bash build_scripts/build.sh#g" Dockerfile.tmp
}
function make_cuda112cudnn8() {
sed 's/<baseimg>/11.2.1-cudnn8-devel-centos7/g' Dockerfile.centos >Dockerfile.tmp
sed -i "s#RUN bash build_scripts/build.sh#RUN bash build_scripts/install_gcc.sh gcc82 \nRUN mv /usr/bin/cc /usr/bin/cc.bak \&\& ln -s /usr/local/gcc-8.2/bin/gcc /usr/bin/cc \nENV PATH=/usr/local/gcc-8.2/bin:\$PATH \nRUN bash build_scripts/build.sh#g" Dockerfile.tmp
} }
function main() { function main() {
...@@ -73,6 +78,9 @@ function main() { ...@@ -73,6 +78,9 @@ function main() {
cuda11cudnn8) cuda11cudnn8)
make_cuda11cudnn8 make_cuda11cudnn8
;; ;;
cuda112cudnn8)
make_cuda112cudnn8
;;
*) *)
echo "Make dockerfile error, Without this paramet." echo "Make dockerfile error, Without this paramet."
exit 1 exit 1
......
...@@ -40,6 +40,8 @@ function ref_whl(){ ...@@ -40,6 +40,8 @@ function ref_whl(){
if [[ ${ref_CUDA_MAJOR} == "11.0" ]];then if [[ ${ref_CUDA_MAJOR} == "11.0" ]];then
ref_version=.post110 ref_version=.post110
elif [[ ${ref_CUDA_MAJOR} == "11.2" ]];then
ref_version=.post112
elif [[ ${ref_CUDA_MAJOR} == "10" ]];then elif [[ ${ref_CUDA_MAJOR} == "10" ]];then
ref_version=.post100 ref_version=.post100
elif [[ ${ref_CUDA_MAJOR} == "10.1" ]];then elif [[ ${ref_CUDA_MAJOR} == "10.1" ]];then
......
...@@ -40,6 +40,8 @@ function ref_whl(){ ...@@ -40,6 +40,8 @@ function ref_whl(){
if [[ ${ref_CUDA_MAJOR} == "11.0" ]];then if [[ ${ref_CUDA_MAJOR} == "11.0" ]];then
ref_version=.post110 ref_version=.post110
elif [[ ${ref_CUDA_MAJOR} == "11.2" ]];then
ref_version=.post112
elif [[ ${ref_CUDA_MAJOR} == "10" ]];then elif [[ ${ref_CUDA_MAJOR} == "10" ]];then
ref_version=.post100 ref_version=.post100
elif [[ ${ref_CUDA_MAJOR} == "10.1" ]];then elif [[ ${ref_CUDA_MAJOR} == "10.1" ]];then
......
Markdown is supported
0% .
You are about to add 0 people to the discussion. Proceed with caution.
先完成此消息的编辑!
想要评论请 注册