一、容器创建
1.背景是我们可以在宿主机中容器中使用nvidia-smi 命令。然后我们在主机命令行下运行如下命令,一个我们想要的容器就创建好了。
docker run -itd --name=你想要创建的容器名称 --runtime=nvidia --gpus all -p 容器端口号:主机端口号 镜像名称
2.接着我们进入创建好的容器
docker exec -it 刚刚创建好的容器ID /bin/bash
这里需要查询下刚刚创建好的容器ID,在主机下运行以下命令可以显示所有状态的容器,然后我们根据显示表格内容中的容器名称找到对应的容器ID即可:如下图
docker ps -a
3.进入容器后我们修改容器的root密码
passwd
4.容器内部安装openssh-server和openssh-client
# apt-get -y update 如果下面命令报错,先执行这个命令,再重新执行下面的命令
apt-get install openssh-server
apt-get install openssh-client
5.修改SSH配置文件
- 编辑文件
vim /etc/ssh/sshd_config
- 添加内容
PermitRootLogin yes # 允许root用户使用ssh登录
6.重启ssh服务 输入以下命令
/etc/init.d/ssh restart
如此容器的ssh服务就配置好了,我们还可以通过以下两条命令查询ssh状态
service ssh status
如果它没有运行,可以通过以下命令启动它
service ssh start
7.现在我们就可以直接命令行连接服务器上的该容器了
ssh root@IP地址 -p 你前面设置的容器端口号
按回车后再输入你前面设置的密码,就可成功连接,成功连接结果如下图所示:
二、CUDA配置
1.在主机终端输入nvidia-smi,查看服务器支持的cuda版本,这里显示最高可支持11.4版本的CUDA,然后根据下表tensorflow版本和cuda,cudnn的对应关系
2.我们进入官网查询对应的版本下载。网址:CUDA Toolkit Archive | NVIDIA Developer
选择好服务器主机的选项,把官网给出的下载命令输入终端进行下载。
ps:如果上述第二条命令运行报错,可以更换成如下命令运行
sudo ./cuda_11.0.2_450.51.05_linux.run
如果运行成功会出现这个界面,如果运行不了考虑是文件权限问题,可以用ll命令查看当前目录下的所有文件权限,并用chmod命令更改.run文件权限成可读可写可执行,如下:
chmod a+rwx cuda_11.0.2_450.51.05_linux.run
输入accept之后出现以下界面,将安装选项的前两项取消掉(Driver和520.61.05),则可以成功安装。这里指的是不安装cuda安装包中自带的显卡驱动,如果有驱动且版本对的上就可以取消。
然后等待安装完成即可。
3.至此,我们完成了CUDA的安装操作,但是需要进一步配置对应的环境变量。首先,在终端中输入如下的代码。
vim ~/.bashrc
在bashrc文件的末尾增添如下的内容:然后保存并退出
export LD_LIBRARY_PATH=$LD_LIBRARY_PATH:/usr/local/cuda/lib64
export PATH=$PATH:/usr/local/cuda/bin
export CUDA_HOME=$CUDA_HOME:/usr/local/cuda
接下来输入以下命令更新bashrc文件,使得我们刚刚修改的环境变量立即生效。
source ~/.bashrc
接着我们就可以用ls -l /usr/local | grep cuda或nvcc -V查看有哪些cuda版本,如下图所示。
三、cuDNN配置
接着下载安装cudnn。
1.我这里选择的配置是cuda11.0+cudnn8.0+python3.8+tensorflow-2.4.0-gpu
cuDNN官网下载地址:cuDNN Archive | NVIDIA Developer
这里因为我的ubuntu版本是20.04的,故选择图中三个deb文件进行下载。
linux查询ubuntu版本命令:
lsb_release -a
2.然后我们安装这三个deb文件:
先进入cudnn-local-repo-ubuntu1804-8.5.0.96_1.0-1_amd64.deb文件所在文件夹(cd命令),执行以下命令
sudo dpkg -i 下载的deb文件名
# 如sudo dpkg -i libcudnn8_8.0.5.39-1+cuda11.0_amd64.deb
# 如sudo dpkg -i libcudnn8-dev_8.0.5.39-1+cuda11.0_amd64.deb
# 如sudo dpkg -i libcudnn8-samples_8.0.5.39-1+cuda11.0_amd64.deb
#以上三条都输入执行一遍
3.接着进行cudNN的安装验证(在容器内进行)
- 首先将cuDNN示例复制到可写路径
cp -r /usr/src/cudnn_samples_v8/ $HOME
- 转到路径
cd $HOME/cudnn_samples_v8/mnistCUDNN
- 执行测试文件
cd $HOME/cudnn_samples_v8/mnistCUDNN
make clean && make
./mnistCUDNN
显示Test passed!代表安装成功!!!!
四、tensorflow-gpu下载安装
1.为了避免干扰其他项目,建议在使用虚拟环境中安装 TensorFlow。您可以使用 conda 或 virtualenv 创建一个虚拟环境。
conda create -n myenv python=3.8
conda activate myenv #激活虚拟环境
virtualenv -p python3.8 myenv
source myenv/bin/activate #激活虚拟环境
2.安装 GPU 版本的 TensorFlow:
pip install tensorflow-gpu==x.x.x -i https://pypi.tuna.tsinghua.edu.cn/simple
3.可以使用以下代码片段来验证 TensorFlow 是否正确安装,以及是否能够使用 GPU:
import tensorflow as tf
print("TensorFlow version:", tf.__version__)
# 检查是否支持 GPU
if tf.test.is_gpu_available():
print("GPU is available")
else:
print("GPU is NOT available")
如果上述代码运行时没有报错并显示 “GPU is available”,则表示您已成功安装了 TensorFlow GPU 版本。
五、pycharm连接远程服务器容器端口
可以下载这个插件进行连接:Professional Connect to a remote server from PyCharm,按照网页中步骤一一进行就好。