Ubuntu 20.04 环境配置实践

NVIDIA Driver

通过 Ubuntu 官方的显卡驱动管理工具,自动检测当前系统硬件(显卡型号),并列出推荐安装的 NVIDIA 驱动版本(包括闭源驱动和开源驱动)。

1
2
sudo apt install ubuntu-drivers-common  # 先安装驱动管理工具(若未安装)
ubuntu-drivers list # 展示可用的驱动

为了使用 OpenGL 等功能,建议 Ubuntu 20.04 可以直接安装 nvidia-driver-535(非服务器版本)

安装步骤

  1. 卸载残余驱动
1
2
3
sudo apt update && sudo apt upgrade -y
sudo apt remove --purge nvidia-* # 卸载旧驱动(如有)
sudo reboot # 重启后再安装新驱动
  1. 安装
1
2
3
4
5
sudo apt install nvidia-driver-535 nvidia-utils-535

sudo reboot # 重启

nvidia-smi # 查看驱动

CUDA Toolkit 安装

export PATH=/usr/local/cuda/bin:$PATH
export LD_LIBRARY_PATH=/usr/local/cuda/lib64:$LD_LIBRARY_PATH

建议安装 12.1,这里是安装了 12.0

(https://developer.nvidia.com/cuda-12-0-0-download-archive?target_os=Linux&target_arch=x86_64&Distribution=Ubuntu&target_version=20.04&target_type=deb_local)

https://developer.nvidia.com/rdp/cudnn-archive

export PATH=/usr/local/cuda/bin:$PATH
export LD_LIBRARY_PATH=/usr/local/cuda/lib64:$LD_LIBRARY_PATH

CUDNN 安装

cp 之后

sudo apt-cache search libcudnn

通过以下命令列出仓库中可用的 cuDNN 包,获取准确名称:

1
sudo apt-cache search libcudnn

针对 cuDNN 8.9.7 版本,输出应包含:

1
2
3
libcudnn8 - cuDNN runtime libraries
libcudnn8-dev - cuDNN development libraries and headers
libcudnn8-samples - cuDNN samples

如果没有搜索到,则是 cuDNN 本地仓库的 GPG 密钥未被 apt 正确信任,或仓库配置未同步到 apt 缓存。即使已复制密钥文件,仍需手动完成密钥注册和缓存更新,具体解决步骤如下:

  1. 重新导入 GPG 密钥(关键:让 apt 信任该密钥)
    仅复制密钥文件到 /usr/share/keyrings/ 不够,需通过 apt-key 或 gpg 命令将密钥注册到 apt 的信任列表中:
1
2
# 进入 cuDNN 本地仓库目录(确认密钥文件存在)
cd /var/cudnn-local-repo-ubuntu2004-8.9.7.29/
  • 方法1:用 apt-key 导入密钥(兼容性强),若提示 “OK”,说明密钥导入成功。
1
sudo apt-key add cudnn-local-30472A84-keyring.gpg
  • 方法2:若 apt-key 提示废弃,用 gpg 导入(适用于新版本 Ubuntu)
1
sudo gpg --dearmor -o /usr/share/keyrings/cudnn-local-30472A84-keyring.gpg cudnn-local-30472A84-keyring.gpg
  1. 强制更新 apt 缓存(让 apt 识别本地仓库)
    密钥导入后,必须更新 apt 缓存,才能加载 cuDNN 本地仓库的包信息:
1
sudo apt update

执行时需关注输出:若出现 Get:1 file:/var/cudnn-local-repo-ubuntu2004-8.9.7.29 InRelease [1,572 B] 或 Hit:xxx file:/var/cudnn-local-repo-ubuntu2004-8.9.7.29 InRelease,说明本地仓库已被 apt 识别。

  1. 再次搜索 libcudnn 包
1
sudo apt-cache search libcudnn

此时应正常显示 cuDNN 相关包:

1
2
3
libcudnn8 - cuDNN runtime libraries
libcudnn8-dev - cuDNN development libraries and headers
libcudnn8-samples - cuDNN samples

安装 cuDNN 核心包(必装)

1
sudo apt-get install -y libcudnn8 libcudnn8-dev

若需要示例代码,可额外安装:

1
sudo apt-get install -y libcudnn8-samples

验证:

1
cat /usr/include/cudnn_version.h | grep CUDNN_MAJOR -A 2

若输出 CUDNN_MAJOR 8、CUDNN_MINOR 9、CUDNN_PATCHLEVEL 7,则说明安装成功,与你的 CUDA 12.0 兼容。

安装 Miniconda

1
2
3
4
5
6
7
8
# 下载
wget https://repo.anaconda.com/miniconda/Miniconda3-latest-Linux-x86_64.sh

# 赋予执行权限
chmod +x Miniconda3-latest-Linux-x86_64.sh

# 运行安装脚本
./Miniconda3-latest-Linux-x86_64.sh

可能需要配置环境变量:

1
2
3
4
5
# 1. 编辑 .bashrc 配置文件
vim ~/.bashrc

# 2. 在文件末尾添加以下内容(Miniconda 安装路径)
export PATH="/home/ubuntu/miniconda3/bin:$PATH"

Pytorch

1
pip install torch==2.0.0 torchvision==0.15.1 torchaudio==2.0.1 -i https://pypi.tuna.tsinghua.edu.cn/simple