Ubuntu18配置Pytorch环境
网上大部分的教程都是按照driver->cuda->cudnn->pytorch
这一顺序进行环境配置的。
这篇文章从最终目标出发,从pytorch逆向分析环境依赖。
环境说明
ubuntu18.04 + nvidia 1080显卡,显卡驱动在软件和更新里面通过附件驱动安装。
分析流程
配置环境主要是每个环境的依赖要搞明白,一般是向下兼容的,下面说一下自己的思路。
打开pytorch官网,选择一个自己想要的版本
我这里选择了倒数第二个支持GPU的版本,这里告诉我们需要CUDA10.2。
安装cuda
打开cuda官网,找到自己需要的10.2版本。
选择runfile离线安装(不选择deb离线安装是因为deb安装会产生一堆文件在/var路径下,本洁癖还不知敢不敢删除)
观察下载文件的名字,以10.2的cuda为例子
标出来的就是10.2版本的CUDA最低需要的驱动版本号,也就是440.33。
安装cudnn
cudnn的官网的下载界面标出来cuda和cudnn的对应关系,选择和cuda10.2对应的cudnn8.0.5下载,这里依旧不选择deb安装,下载tar压缩包,根据官方文档安装。
安装显卡驱动
打开软件和更新里面的附加硬件,选择一个版本号大于440.33的metapackage安装
安装
最后安装的时候还是要按照driver->cuda->cudnn->pytorch
的顺序进行~需要注意的是,安装cuda的时候把driver选项关闭,因为我们通过软件和更新里面的附加硬件
安装了满足当前cuda依赖的驱动。
BUG修复
在使用tar压缩包,且按照官网的教程安装cudnn之后,当遇到运行库的链接操作时,会出现下面的错误:
/sbin/ldconfig.real: /usr/local/cuda-10.2/targets/x86_64-linux/lib/libcudnn_ops_train.so.8 is not a symbolic link
/sbin/ldconfig.real: /usr/local/cuda-10.2/targets/x86_64-linux/lib/libcudnn.so.8 is not a symbolic link
…
原因是安装cudnn的cp命令,没有把软连接复制过去,而是把源文件复制了一份。
在/usr/local/cuda-10.2/targets/x86_64-linux/lib/
路径下通过ls -l
显示软连接的真是路径可以找到原始指向文件,发现没有报错的库文件链接的顺序是libxxx.so->libxxx.so.8->libxxx.8.0.5
,所以按照下面顺序恢复链接顺序。(报错的文件共7个)
1 | #1 |