[分享]openSUSE 下安装 tensorflow GPU 版(Nvidia 双显卡)

(1)安装 Nvidia 的闭源显卡驱动。Nvidia 双显卡需要使用 Bumblebee,直接安装 Nvidia 的闭源显卡是不行的参考这篇 openSUSE Wiki,按部就班,一般能够成功。但变数依然存在,因此一定先备份系统:

sudo snapper create -d BeforeBB

万一出现了不可挽回的错误,可以参照 openSUSE 官方文档中的System Rollback by Booting from Snapshots 这一节回滚系统。

(2)安装好了 Bumblebee 与闭源显卡驱动后,就可以安装 cuda 9.0 了。官方提供的是 openSUSE 42.2 的 rpm 包,但按照其指示也可以安装到 42.3 中。必须安装 9.0 而不是 9.1,如果安装了 9.1 会遇到如下错误:

ImportError: libcublas.so.9.0: cannot open shared object file: No such file or directory

9.0 和 9.1 也可以共存,但是要让 cuda 的链接指向 cuda 9.0:

cd /usr/local/
sudo ln -s cuda-9.0 cuda

(3)然后是安装 cuDNN,这没太多可说的。下载,解压,复制到 CUDA 的安装目录里去。

(4)安装 Anaconda。Anaconda 打包了很多常用的 Python 库,尤其是一些科学计算库。这些科学计算库为了性能往往不是纯 Python 写的,自己编译起来会有一些麻烦,因此 Anaconda 会方便很多。但 Anaconda 的安装包比较大,从清华大学的镜像下载会快一些。安装好后可以按照清华大学 Anaconda 镜像使用帮助切换下载源,让安装软件包的速度也快一些。

(5)注意Anaconda 和 openSUSE 之间存在冲突,安装好 Anaconda 后可能会让用户无法登陆 KDE 并提示错误 Could not start D-bus. Can you call qdbus-qt5?。解决方法有几个,这一个是我比较喜欢的:打开 .bashrc 文件,将 Anaconda 安装时候添加的 export PATH="<path-to-anaconda-bin>:$PATH" 改为:

if [ ! -z $PS1 ]; then
    export PATH="<path-to-anaconda-bin>:$PATH"
fi

(6)安装 TensorFlow。同样可以从 清华大学开源软件镜像站安装,但其教程提供的 pip 命令似乎有一些问题。如果不成功,可以从这里直接下载对应 whl 文件,在本地用 pip 安装。

(7)到这里基本就大功告成了,使用 optirun python 或者 optirun jupyter notebook 来启动 Python 或者 Jupyter Notebook,就能在其中载入 GPU 版的 TensorFlow 了。最后一点小注意,Anaconda 仓库中也有一个 TensorFlow,但不是 GPU 版的。如果用 conda 安装 keras 的时候,他就会被当做依赖安装上,作为 keras 的后端。所以,如要安装 keras,不要用 conda ,而要用 pip,否则你会发现你使用的 TensorFlow 是 CPU 版而不是 GPU 版。

(8)最后来一张图吧:-)

5赞

现在 anaconda 的某些 channel 里面集成了 cudatoolkit 和 cudnn 了, 只装驱动也可以了。

Tumbleweed下每次都GG。。。