准备 GPU 服务器
点击购买 GN6 (V100), 选择按量付费, 购买 1块 NVIDIA Tesla V100 即可.
镜像选择 CentOS 7.6 64 位 (最新版) 即可.
单击下一步, 进入网络和安全组配置, 公网带宽选择按使用流量计费
最后单击确认订单, 然后等待实例创建完成.
配置远程登录
在实例列表页, 有对应实例的公网 ip 和内外 ip, 理论上通过 ssh root@公ip
即可远程登录.
现在的关键是需要知道 root 账号的密码, 我们可以通过重置密码设置.
在对应实例右侧, 依次点击更多, 密码/密钥, 重置实例密码 弹出如下对话框. 注意: 设置完密码, 需要重启实例 (更多, 实例状态, 重启).
现在你就可以用自己熟悉的终端, 比如 iTerm 2 远程登录这台 GPU 服务器, 搭建 TensorFlow GPU 训练/预测环境了.
安装驱动
查看服务器基本信息
$ lspci | grep -i nvidia
00:07.0 3D controller: NVIDIA Corporation GV100GL [Tesla V100 SXM2 16GB] (rev a1)
版本选择参考 https://tensorflow.google.cn/install/source#gpu
目前在用的有两个版本: tf2.3, python 3.7.8 (安装详情, 参见附录部分)
cuda_10.1.243_418.87.00_linux.run
cudnn-10.1-linux-x64-v7.6.5.32.tgz
NVIDIA-Linux-x86_64-418.152.00.run
以及 tf1.8, python 3.6.7
cuda_9.0.176_384.81_linux-run
cudnn-9.0-linux-x64-v7.4.1.5.tgz
NVIDIA-Linux-x86_64-384.183.run
接下来, 以 tf1.8 为例, 操作均用 root 账户
安装 NVIDIA
前往官网 https://www.nvidia.com/Download/index.aspx 下载对应版本的驱动
点击 SEARCH
然后, 点击下载按钮, 将得到可执行文件 NVIDIA-Linux-x86_64-384.183.run
. 可以直接点击这里下载, 在服务器上用 wget
命令下载.
chmod a+x NVIDIA-Linux-x86_64-384.183.run
./NVIDIA-Linux-x86_64-384.183.run
查看驱动安装是否成功, 执行 nvidia-smi
命令.
安装 cuda
前往官网 https://developer.nvidia.com/cuda-90-download-archive, 下载 CUDA Toolkit 9.0
点击 Download 得到 cuda_9.0.176_384.81_linux-run
文件.
chmod a+x cuda_9.0.176_384.81_linux-run
./cuda_9.0.176_384.81_linux-run
配置环境变量, 编辑 /etc/profile
文件, 在末尾增加如下两行配置
export PATH=/usr/local/cuda-9.0/bin:$PATH
export LD_LIBRARY_PATH=/usr/local/cuda-9.0/lib64
最后, 执行 source /etc/profile
命令, 使配置生效.
安装 cudnn
前往官网 https://developer.nvidia.com/cudnn, 下载 cuda 9 对应的版本 cudnn-9.0-linux-x64-v7.4.1.5.tgz
, 这里需要注册登录才能下载.
直接解压缩文件, 然后移动到相应的目录下即可
tar -xkzvf cudnn-9.0-linux-x64-v7.4.1.5.tgz
cp cuda/lib64/libcudnn* /usr/local/cuda-9.0/lib64/
cp cuda/include/cudnn.h /usr/local/cuda-9.0/include/
安装 TensorFlow GPU
pip install tensorflow-gpu==1.8.0
验证是否安装成功, 进入 python 交互环境, 执行如下命令.
import tensorflow as tf
sess = tf.Session(config=tf.ConfigProto(log_device_placement=True))
若成功打印出 GPU 硬件信息, 则说明环境搭建成功!
附录
tf2.3 环境搭建
安装 kernel
yum install kernel kernel-devel
shutdown -r now
安装 NVIDIA 驱动
chmod a+x NVIDIA-Linux-x86_64-418.152.00.run
./NVIDIA-Linux-x86_64-418.152.00.run
nvidia-smi
安装 cuda
chmod a+x cuda_10.1.243_418.87.00_linux.run
./cuda_10.1.243_418.87.00_linux.run
编辑 vim /etc/profile
, 内容如下, 最后 source /etc/profile
export PATH=$PATH:/usr/local/cuda-10.1/bin
export LD_LIBRARY_PATH=$LD_LIBRARY_PATH:/usr/local/cuda-10.1/lib64
安装 cudnn
tar -xkzvf cudnn-10.1-linux-x64-v7.6.5.32.tgz
cp -fa cuda/lib64/libcudnn* /usr/local/cuda-10.1/lib64/
cp -fa cuda/include/cudnn.h /usr/local/cuda-10.1/include/
需要禁用 nouveau
参见CentOS中禁用nouveau驱动, 可能需要执行 dracut --force
.
找不到 kernel source
uname -r
yum install kernel-devel
./NVIDIA-Linux-x86_64-384.183.run --kernel-source-path=/usr/src/kernels/3.10.0-957.10.1.el7.x86_64
找不到 libcublas
执行 TensorFlow 验证时, 提示找不到 libcublas.so.9.0
, 可能是没有配置环境变量, 参见 安装 cuda
部分.