From 8048992042721ae92b7a02112f1c634579d6cb71 Mon Sep 17 00:00:00 2001 From: tianshuo78520a <707759223@qq.com> Date: Mon, 26 Aug 2019 14:29:06 +0800 Subject: [PATCH] add cuda10 support in fast_install.sh and add dynamic get version for release (#19106) add cuda10 support in fast_install.sh and add dynamic get version for release, then remove useless ave check for MacOS install check --- paddle/scripts/fast_install.sh | 113 ++++++++++----------------------- 1 file changed, 34 insertions(+), 79 deletions(-) diff --git a/paddle/scripts/fast_install.sh b/paddle/scripts/fast_install.sh index 140a0c9b903..b629a251cc5 100644 --- a/paddle/scripts/fast_install.sh +++ b/paddle/scripts/fast_install.sh @@ -33,8 +33,7 @@ function yellow(){ } path='http://paddlepaddle.org/download?url=' -#release_version=`curl -s https://pypi.org/project/paddlepaddle/|grep -E "/project/paddlepaddle/"|grep "release"|awk -F '/' '{print $(NF-1)}'|head -1` -release_version=1.5.1 +release_version=`pip show paddlepaddle|grep Version|awk '{print $NF}'` python_list=( "27" "35" @@ -144,6 +143,10 @@ function checkLinuxCUDA(){ CUDA=`cat /usr/local/cuda9/version.txt | grep 'CUDA Version'|awk -F '[ .]' '{print $3}'` tmp_cuda9=$CUDA fi + if [ -f "/usr/local/cuda10/version.txt" ];then + CUDA=`cat /usr/local/cuda10/version.txt | grep 'CUDA Version'|awk -F '[ .]' '{print $3}'` + tmp_cuda10=$CUDA + fi fi if [ "$tmp_cuda" != "" ];then @@ -155,6 +158,9 @@ function checkLinuxCUDA(){ if [ "$tmp_cuda9" != "" ];then echo "检测结果:找到CUDA $tmp_cuda9" fi + if [ "$tmp_cuda10" != "" ];then + echo "检测结果:找到CUDA $tmp_cuda10" + fi if [ "$CUDA" == "" ];then echo "检测结果:没有在常规路径下找到cuda/version.txt文件" @@ -184,11 +190,11 @@ function checkLinuxCUDA(){ fi fi - if [ "$CUDA" == "8" ] || [ "$CUDA" == "9" ];then + if [ "$CUDA" == "8" ] || [ "$CUDA" == "9" ] || [ "$CUDA" == "10" ];then echo "您的CUDA版本是${CUDA}" break else - echo "目前支持CUDA8/9,暂不支持您的CUDA${CUDA},将为您安装CPU版本的PaddlePaddle" + echo "目前支持CUDA8/9/10,暂不支持您的CUDA${CUDA},将为您安装CPU版本的PaddlePaddle" echo use_cpu fi @@ -202,13 +208,7 @@ function checkLinuxCUDA(){ function checkLinuxMathLibrary(){ while true do - if [ "$AVX" == "" ];then - echo "正在检测您环境中是否存在AVX指令集..." - echo - echo "检测结果:您电脑上没有AVX指令集,目前针对无AVX指令集的环境,我们仅提供支持mkl数学库的PaddlePaddle,将为您安装此版本的PaddlePaddle" - math='mkl' - break - elif [ "$GPU" == "gpu" ];then + if [ "$GPU" == "gpu" ];then math='mkl' echo "检测到您的机器上配备GPU,推荐您使用mkl数学库" break @@ -245,7 +245,7 @@ function checkLinuxPaddleVersion(){ 2. 稳定版(推荐):如您无特殊开发需求,建议使用此版本,目前最新的版本号为 ${release_version} => 请输入数字1或2。如输入其他字符或直接回车,将会默认选择【 2. 稳定版 】 。请在这里输入并回车:" paddle_version if [ "$paddle_version" == "" ];then - paddle_version="release-${release_version}" + paddle_version="2" echo "您选择了数字【2】,为您安装release-${release_version}" break fi @@ -366,7 +366,13 @@ function checkLinuxPython(){ exit 0 fi + if [ "$python_version" == "27" ];then + python_version_all=`$python_path -V 2>&1|awk -F '[ .]' '{print $4}'` + if [[ $python_version_all -le 15 ]];then + echo "Python2版本小于2.7.15,请更新Python2版本或使用Python3" + exit 0 + fi uncode=`python -c "import pip._internal;print(pip._internal.pep425tags.get_supported())"|grep "cp27mu"` if [[ "$uncode" == "" ]];then uncode= @@ -384,42 +390,23 @@ function checkLinuxPython(){ done } -function checkLinuxAVX(){ - while true - do - if [[ "$AVX" != "" ]];then - AVX="avx" - break - else - if [ "$CUDA" == "8" -a "$CUDNN" == "7" ] || [ "$GPU" == "cpu" ];then - AVX="noavx" - break - else - echo "Step 6. 检测是否有avx" - echo - echo "检测结果:未能找到avx,我们仅提供CPU版本或配置为CUDA8 cuDNN7的GPU版本的安装包" - break - fi - fi - done -} function PipLinuxInstall(){ - wheel_cpu_release="http://paddle-wheel.bj.bcebos.com/${release_version}-${GPU}-${AVX}-${math}/paddlepaddle-${release_version}-cp${python_version}-cp${python_version}m${uncode}-linux_x86_64.whl" - wheel_gpu_release="http://paddle-wheel.bj.bcebos.com/${release_version}-gpu-cuda${CUDA}-cudnn${CUDNN}-${AVX}-${math}/paddlepaddle_gpu-${release_version}.post${CUDA}${CUDNN}-cp${python_version}-cp${python_version}m${uncode}-linux_x86_64.whl" - wheel_gpu_release_noavx="http://paddle-wheel.bj.bcebos.com/${release_version}-gpu-cuda${CUDA}-cudnn${CUDNN}-${AVX}-${math}/paddlepaddle_gpu-${release_version}-cp${python_version}-cp${python_version}m${uncode}-linux_x86_64.whl" - wheel_cpu_develop="http://paddle-wheel.bj.bcebos.com/latest-cpu-${AVX}-${math}/paddlepaddle-latest-cp${python_version}-cp${python_version}m${uncode}-linux_x86_64.whl" - wheel_gpu_develop="http://paddle-wheel.bj.bcebos.com/latest-gpu-cuda${CUDA}-cudnn${CUDNN}-${AVX}-${math}/paddlepaddle_gpu-latest-cp${python_version}-cp${python_version}m${uncode}-linux_x86_64.whl" + wheel_cpu_release="http://paddle-wheel.bj.bcebos.com/${release_version}-${GPU}-${math}/paddlepaddle-${release_version}-cp${python_version}-cp${python_version}m${uncode}-linux_x86_64.whl" + wheel_gpu_release="http://paddle-wheel.bj.bcebos.com/${release_version}-gpu-cuda${CUDA}-cudnn${CUDNN}-${math}/paddlepaddle_gpu-${release_version}.post${CUDA}${CUDNN}-cp${python_version}-cp${python_version}m${uncode}-linux_x86_64.whl" + wheel_cpu_develop="http://paddle-wheel.bj.bcebos.com/latest-cpu-${math}/paddlepaddle-latest-cp${python_version}-cp${python_version}m${uncode}-linux_x86_64.whl" + wheel_gpu_develop="http://paddle-wheel.bj.bcebos.com/latest-gpu-cuda${CUDA}-cudnn${CUDNN}-${math}/paddlepaddle_gpu-latest-cp${python_version}-cp${python_version}m${uncode}-linux_x86_64.whl" + if [[ "$paddle_version" == "2" ]];then if [[ "$GPU" == "gpu" ]];then - if [[ ${AVX} == "avx" ]];then - rm -rf `echo $wheel_gpu_release|awk -F '/' '{print $NF}'` + rm -rf `echo $wheel_cpu_release|awk -F '/' '{print $NF}'` wget -q $wheel_gpu_release if [ "$?" == "0" ];then $python_path -m pip install ${use_virtualenv} -i https://mirrors.aliyun.com/pypi/simple --trusted-host=mirrors.aliyun.com $wheel_gpu_release if [ "$?" == 0 ];then echo 安装成功 + exit 0 else echo 安装失败 exit 1 @@ -428,22 +415,6 @@ function PipLinuxInstall(){ echo paddlepaddle whl包下载失败 exit 1 fi - else - rm -rf `echo $wheel_gpu_release_novax|awk -F '/' '{print $NF}'` - wget -q $wheel_gpu_release_novax - if [ "$?" == "0" ];then - $python_path -m pip install ${use_virtualenv} -i https://mirrors.aliyun.com/pypi/simple --trusted-host=mirrors.aliyun.com $wheel_gpu_release_noavx - if [ "$?" == 0 ];then - echo 安装成功 - else - echo 安装失败 - exit 1 - fi - else - echo paddlepaddle whl包下载失败 - exit 1 - fi - fi else rm -rf `echo $wheel_cpu_release|awk -F '/' '{print $NF}'` wget -q $wheel_cpu_release @@ -451,6 +422,7 @@ function PipLinuxInstall(){ $python_path -m pip install ${use_virtualenv} -i https://mirrors.aliyun.com/pypi/simple --trusted-host=mirrors.aliyun.com $wheel_cpu_release if [ "$?" == 0 ];then echo 安装成功 + exit 0 else echo 安装失败 exit 1 @@ -460,14 +432,15 @@ function PipLinuxInstall(){ exit 1 fi fi - else - if [[ "$GPU" == "gpu" ]];then + fi + if [[ "$GPU" == "gpu" ]];then rm -rf `echo $wheel_gpu_develop|awk -F '/' '{print $NF}'` wget -q $wheel_gpu_develop if [ "$?" == "0" ];then $python_path -m pip install ${use_virtualenv} -i https://mirrors.aliyun.com/pypi/simple --trusted-host=mirrors.aliyun.com $wheel_gpu_develop if [ "$?" == 0 ];then echo 安装成功 + exit 0 else echo 安装失败 exit 1 @@ -476,13 +449,14 @@ function PipLinuxInstall(){ echo paddlepaddle whl包下载失败 exit 1 fi - else + else rm -rf `echo $wheel_cpu_develop|awk -F '/' '{print $NF}'` wget -q $wheel_cpu_develop if [ "$?" == "0" ];then $python_path -m pip install ${use_virtualenv} -i https://mirrors.aliyun.com/pypi/simple --trusted-host=mirrors.aliyun.com $wheel_cpu_develop if [ "$?" == 0 ];then echo 安装成功 + exit 0 else echo 安装失败 exit 1 @@ -492,14 +466,12 @@ function PipLinuxInstall(){ exit 1 fi fi - fi } function checkLinuxGPU(){ read -n1 -p "即将检测您的机器是否含GPU,请按回车键继续..." echo - AVX=`cat /proc/cpuinfo |grep avx|tail -1|grep avx` which nvidia-smi >/dev/null 2>&1 if [ "$?" != "0" ];then GPU='cpu' @@ -730,8 +702,6 @@ gpu_list=( echo checkLinuxPython echo - checkLinuxAVX - echo echo "Step 6.是否使用Python的虚拟环境" use_virtualenv="--user" checkPythonVirtualenv @@ -757,6 +727,9 @@ function checkMacPython2(){ if [[ $? == "0" ]];then if [ "$python_version" == "" ] || ( [ "$python_root" == "/usr/bin/python" ] && ( [ "$python_version" \< "$python_min" ] || ( [ "$python_version" \> "$python_min" ] && [ ${#python_version} -lt ${#python_min} ] ) ) );then clearMacPythonEnv + elif [[ "$python_version" < "2.7.15" ]];then + echo -e " => 在您的环境中找到 \033[32m[ $python_version ]\033[0m,此版本小于2.7.15不建议使用,请选择其他版本." + exit else check_python=`echo $python_version | grep "Python 2"` if [[ -n "$check_python" ]];then @@ -974,20 +947,6 @@ function checkMacPythonVersion(){ done } -function checkMacAVX(){ - read -n1 -p "Step 4. 检测您的Mac是否支持AVX指令集,请按回车键继续..." - if [[ $AVX != "" ]];then - AVX="avx" - echo "" - green " 检测结果:支持" - echo "" - return 0 - else - red " 检测结果:不支持。非常抱歉,PaddlePaddle在Mac系统暂不提供no_avx类型的安装包,您可以选择在Linux系统中安装no_avx版的PaddlePaddle, 请按回车键退出..." - echo - return 1 - fi -} function checkMacGPU(){ read -n1 -p "Step 5. 选择CPU/GPU版本,请按回车键继续..." @@ -1003,7 +962,6 @@ function checkMacGPU(){ function macos() { path='http://paddlepaddle.org/download?url=' - AVX=`sysctl -a | grep cpu | grep AVX1.0 | tail -1 | grep AVX` while true do @@ -1012,8 +970,6 @@ function macos() { checkMacPythonVersion - checkMacAVX - checkMacGPU @@ -1021,7 +977,6 @@ function macos() { echo yellow "即将为您下载并安装PaddlePaddle,请按回车键继续..." read -n1 -p "" - echo if [[ $paddle_version == "2" ]];then $python_root -m pip install paddlepaddle if [[ $? == "0" ]];then -- GitLab