ubuntu 22.04 2080ti driver cuda cudnn install docker cofigure
ENV
ubuntu 22.04
2080ti single
Driver
通过下面的命令安装driver。
https://www.sysgeek.cn/ubuntu-cuda/
命令
# 清除之前的cuda内容
sudo apt autoremove cuda* nvidia* --purge
sudo /usr/bin/nvidia-uninstall
sudo /usr/local/cuda-X.Y/bin/cuda-uninstall
# 设置driver的内容
sudo apt install dirmngr ca-certificates software-properties-common apt-transport-https dkms curl -y
curl -fSsL <https://developer.download.nvidia.com/compute/cuda/repos/ubuntu2204/x86_64/3bf863cc.pub> | sudo gpg --dearmor | sudo tee /usr/share/keyrings/nvidia-drivers.gpg > /dev/null 2>&1
echo 'deb [signed-by=/usr/share/keyrings/nvidia-drivers.gpg] <https://developer.download.nvidia.com/compute/cuda/repos/ubuntu2204/x86_64/> /' | sudo tee /etc/apt/sources.list.d/nvidia-drivers.list
sudo apt update
apt search cuda-drivers
sudo apt install nvidia-driver-545 cuda-drivers-545
Cuda install
NVIDIA CUDA Toolkit 12.1 Downloads

wget <https://developer.download.nvidia.com/compute/cuda/12.3.0/local_installers/cuda_12.3.0_545.23.06_linux.run>
sudo sh cuda_12.3.0_545.23.06_linux.run

注意
- 这个cuda.run文件里面有driver,如果上一步没有装driver,然后尝试在这一部分安装Driver,也许可行,但是我失败了,所以我第一步是安装driver。
- 使用上下进行移动,使用enter进行选中或者移除
- 不需要Kernel Objects,我之前选中了也没有安装成功,具体nvidia-fs是什么 (Nvidia新引入了一个内核模块(nvidia-fs),通过它来维护每个GPU虚拟地址与对应物理地址的映射关系(借助nvidia内核驱动所提供的nvidia_p2p_page_table_t数据结构),并对外暴露相应的接口函数,来供其他模块调用使用。)
安装完cuda之后,需要设置环境变量
基本上cuda的路径是固定的,/usr/local/cuda ,在这个位置,当然这个是一个软链。具体的文件路径是这个,/usr/local/cuda-12.3
将这个放到.bashrc或者.zshrc当中,同时修改完后记得source。
export PATH=$PATH:/usr/local/cuda-12.3/bin
export LD_LIBRARY_PATH=/usr/local/cuda-12.3/lib64
export CUDA_HOME=/usr/local/cuda-12.3
sudo reboot
cuda装完之后要重启,重启之前就会发现nvidia-smi命令可用了。

cudnn install
https://blog.csdn.net/takedachia/article/details/130375718
https://docs.nvidia.com/deeplearning/cudnn/install-guide/index.html
从这里下载对应的包,我下载的是这个。

安装deb
sudo apt-get install zlib1g
# 安装deb包,这个并不是真正的cudnn
sudo cp /var/cudnn-local-repo-ubuntu2204-8.9.6.50/cudnn-local-1998375D-keyring.gpg /usr/share/keyrings/
sudo dpkg -i cudnn-local-repo-ubuntu2204-8.9.6.50_1.0-1_amd64.deb
sudo apt-get update
# 查看cuda版本对应的libcudnn8版本,我的是最新的那个
apt-cache policy libcudnn8
# 安装libcudnn、libcudnn8-dev、libcudnn8-samples、libfreeimage3、libfreeimage-dev
sudo apt install libcudnn8=8.9.6.50-1+cuda12.2
sudo apt install libcudnn8-dev=8.9.6.50-1+cuda12.2
sudo apt install libcudnn8-samples=8.9.6.50-1+cuda12.2
sudo apt-get install libfreeimage3 libfreeimage-dev

验证cudn
cp -r /usr/src/cudnn_samples_v8/ $HOME
cd $HOME/cudnn_samples_v8/mnistCUDNN
make clean && make
./mnistCUDNN


Docker Configure
Installing the NVIDIA Container Toolkit — NVIDIA Container Toolkit 1.14.3 documentation
基本上就是把这个里面的命令对应找到,然后执行一遍,如果docker没有装就自己去装一个docker-ce。
% curl -fsSL <https://nvidia.github.io/libnvidia-container/gpgkey> | sudo gpg --dearmor -o /usr/share/keyrings/nvidia-container-toolkit-keyring.gpg \\
&& curl -s -L <https://nvidia.github.io/libnvidia-container/stable/deb/nvidia-container-toolkit.list> | \\
sed 's#deb https://#deb [signed-by=/usr/share/keyrings/nvidia-container-toolkit-keyring.gpg] https://#g' | \\
sudo tee /etc/apt/sources.list.d/nvidia-container-toolkit.list \\
&& \\
sudo apt-get update
sudo apt-get install -y nvidia-container-toolkit
sudo nvidia-ctk runtime configure --runtime=docker
sudo systemctl restart docker
sudo nvidia-ctk runtime configure --runtime=containerd
sudo systemctl restart containerd
sudo nvidia-ctk runtime configure --runtime=crio
sudo systemctl restart crio
Tools
- root用户的zshrc文件在/root/.zshrc。如果一不小心改错了,可以使用普通用户,然后使用sudo vim /root/.zshrc 命令,然后在sudo su就可以正常进入su用户了。
- 为docker容器设置代理,修改 ~/.docker/config.json 这个文件,加入如下内容
{
"proxies":
{
"default":
{
"httpProxy": "<http://proxy.example.com:8080>",
"httpsProxy": "<http://proxy.example.com:8080>",
"noProxy": "localhost,127.0.0.1,.example.com"
}
}
}
如何优雅的给 Docker 配置网络代理-腾讯云开发者社区-腾讯云
- 不执行镜像的默认命令来启动镜像
docker run -it --entrypoint /bin/bash image_name
# --entrypoint:这个选项允许你覆盖容器的 ENTRYPOINT。
# /bin/bash:这是你指定的新的入口点命令。这里是 bash shell,但你可以根据容器内部可用的 shell 或其他命令来修改。