记录一下给腾讯云 GPU 服务器安装 tensorflow-gpu 的过程。这玩意事挺多。
检查必要的东西
检查 Python 版本:
$ python3
腾讯云自带了 Python3.6。如果没有就装一下。
验证系统是否有支持 CUDA 的 GPU:
$ lspci | grep -i nvidia
确认系统已经安装了 gcc:
$ gcc --version
安装 CUDA
1. 下载
下载 NVIDIA CUDA 工具包,在这找下载链接:
https://developer.nvidia.com/cuda-downloads
我们装 CUDA Toolkit 11.2 Update 2,target_type 选 runfilelocal 即可。
2. 安装
首先禁用 Nouveau 驱动
$ vim /etc/modprobe.d/blacklist-nouveau.conf
如果已有内容就在最后添加,如果是空文件直接输入:
blacklist nouveau
options nouveau modeset=0
然后执行
$ dracut --force
安装很简单:
$ sh cuda_<version>_linux.run
输入 accept,之后就一直按 install 与 yes 就行了。执行安装程序会安装自动安装与 CUDA 对应的驱动,所以请不要单独安装驱动。
3. 设置环境变量
$ vim /etc/profile
文件末尾添加:
export PATH=/usr/local/cuda/bin:$PATH
export LD_LIBRARY_PATH=/usr/local/cuda/lib64:$LD_LIBRARY_PATH
export PATH=/usr/local/cuda-11.2/bin:$PATH
export LD_LIBRARY_PATH=/usr/local/cuda-11.2/lib64:$LD_LIBRARY_PATH
执行
$ source /etc/profile
4. 测试
$ nvcc -V
$ nvidia-smi
都能看到输出说明大成功,否则完犊子。
安装 cudnn
https://developer.nvidia.com/rdp/cudnn-archive
要先注册 nvidia 账号,哈哈。
然后干就完了:
$ mv cudnn-<version>.solitairetheme8 cudnn-<version>.tgz
$ tar -xzvf cudnn-<version>.tgz
$ cp cuda/include/cudnn*.h /usr/local/cuda/include
$ cp cuda/lib64/libcudnn* /usr/local/cuda/lib64
$ chmod a+r /usr/local/cuda/include/cudnn*.h /usr/local/cuda/lib64/libcudnn*
安装 tensorflow-gpu
$ pip3 install tensorflow-gpu
然后菜了,报错 python setup.py egg_info failed with error code 1
。需要先更新一波 pip:
$ pip3 install --upgrade setuptools
$ python3 -m pip install --upgrade pip
装完了进入 Python,测试一波:
>>> import tensorflow as tf
>>> tf.test.is_gpu_available()
又菜了,他说找不到 libcusolver.so.10
。我看了一下,/usr/local/cuda-11.1/lib64/
里面有个 libcusolver.so.11
,好家伙,这不是有病嘛,都 11.2 了还在找 .10,封建遗毒啊!来一个骚操作骗他一手:
$ ln -s /usr/local/cuda-11.2/lib64/libcusolver.so.11 /usr/local/cuda-11.2/lib64/libcusolver.so.10
然后就好了。
参考文献
[1] https://blog.csdn.net/qq_35540540/article/details/108767800
[2] https://github.com/tensorflow/tensorflow/issues/43947#issuecomment-739617116