目录
前言
最近在学习PaddlePaddle在各个显卡驱动版本的安装和使用,所以同时也学习如何在Ubuntu安装和卸载CUDA和CUDNN,在学习过程中,顺便记录学习过程。在供大家学习的同时,也在加强自己的记忆。
卸载CUDA
为什么一开始我就要卸载CUDA呢,这是因为笔者是使用百度深度学习的GPU服务器的,原本就安装了CUDA,不过那不是笔者想要的CUDA版本,笔者需要CUDA 9.0 和 CUDNN 7.0,所以要先卸载原来的CUDA。注意以下的命令都是在root用户下操作的。
卸载CUDA很简单,一条命令就可以了:
apt autoremove cuda
卸载之后,还有一些残留的文件夹,之前安装的是CUDA 8.0。可以一并删除:
cd /usr/local/
rm -rf cuda-8.0/
这样就算卸载完了CUDA。
安装CUDA
安装的CUDA和CUDNN版本:
- CUDA 9.0
- CUDNN 7.0
接下来的安装步骤都是在root用户下操作的。
下载和安装CUDA
我们可以在官网:https://developer.nvidia.com/cuda-toolkit-archive,下载对应版本的CUDA。页面如下:
选择需要的版本,点击进去。笔者选择的是CUDA Toolkit 9.0,进入到下一个页面开始选择相关信息:
注意笔者选择的是网络版本的,这样可以让服务器自己下载安装。最后点击下载:
我们下载到了cuda-repo-ubuntu1604_9.0.176-1_amd64.deb
这个文件,然后把它上传的服务器中,使用命令是rz
,如果读者还没有安装该命令,可以使用以下命令安装:
apt install lrzsz
上传完成之后,开始安装,执行以下命令:
dpkg -i cuda-repo-ubuntu1604_9.0.176-1_amd64.deb
接着执行以下命令:
apt-key adv --fetch-keys http://developer.download.nvidia.com/compute/cuda/repos/ubuntu1604/x86_64/7fa2af80.pub
最后再执行以下命令就可以安装完成了,如果再安装过程中出现下载错误,可以多尝试几次:
apt-get update
apt-get install cuda
注意:如果上面方式不能安装你指定的版本,可以使用以下的安装命令:
apt-get install cuda-9-0
安装完成之后,可以配置他们的环境变量,在~/.bashrc
的最后加上以下配置信息:
export CUDA_HOME=/usr/local/cuda-9.0
export LD_LIBRARY_PATH=${CUDA_HOME}/lib64
export PATH=${CUDA_HOME}/bin:${PATH}
最后使用命令ldconfig
使它生效。
可以使用以下命令查看安装的版本信息:
cat /usr/local/cuda/version.txt
下载和安装CUDNN
进入到CUDNN的下载官网:https://developer.nvidia.com/cudnn,然点击Download开始选择下载版本,当然在下载之前还有登录,如何没有账号还有申请一个,选择版本界面如下:
如果这里没有想要的版本,还要点击Archived cuDNN Releases
选择其他的版本。笔者选择如下:
下载之后是一个压缩包,如下:
cudnn-9.0-linux-ppc64le-v7.tgz
然后对它进行解压,命令如下:
tar -zxvf cudnn-9.0-linux-ppc64le-v7.tgz
解压之后可以得到以下文件:
cuda/targets/ppc64le-linux/include/cudnn.h
cuda/targets/ppc64le-linux/NVIDIA_SLA_cuDNN_Support.txt
cuda/targets/ppc64le-linux/lib/libcudnn.so
cuda/targets/ppc64le-linux/lib/libcudnn.so.7
cuda/targets/ppc64le-linux/lib/libcudnn.so.7.0.5
cuda/targets/ppc64le-linux/lib/libcudnn_static.a
然后拷贝这些文件到CUDA下:
cp cuda/targets/ppc64le-linux/lib/* /usr/local/cuda-9.0/lib64/
cp cuda/targets/ppc64le-linux/include/* /usr/local/cuda-9.0/include/
拷贝完成之后,可以使用以下命令查看CUDNN的版本信息:
cat /usr/local/cuda/include/cudnn.h | grep CUDNN_MAJOR -A 2
测试安装结果
到这里就已经完成了CUDA和CUDNN的安装了。可以安装对应的PaddlePaddle的GPU版本测试是否可以正常使用了。安装如下:
pip install paddlepaddle-gpu==0.12.0.post97
然后使用以下的程序测试安装情况:
import paddle.dataset.uci_housing as uci_housing
import paddle.fluid as fluid
with fluid.scope_guard(fluid.core.Scope()):
# initialize executor with cpu
exe = fluid.Executor(place=fluid.CUDAPlace(0))
# load inference model
[inference_program, feed_target_names,fetch_targets] = \
fluid.io.load_inference_model(uci_housing.fluid_model(), exe)
# run inference
result = exe.run(inference_program,
feed={feed_target_names[0]: uci_housing.predict_reader()},
fetch_list=fetch_targets)
# print predicted price is $12,273.97
print 'Predicted price: ${:,.2f}'.format(result[0][0][0] * 1000)
如果正常输出一下以下信息,证明已经安装成了:
Predicted price: $12,273.97