(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)最后来一张图吧:-)