Ubuntu 20.04与Windows 10双系统下NVIDIA V100 GPU驱动与CUDA 11.1环境部署实战
1. 环境准备与硬件检查
在开始安装之前,我们需要确保硬件和系统环境都准备就绪。我遇到过不少因为前期准备不足导致安装失败的情况,所以这部分特别重要。
首先确认你的硬件配置。NVIDIA V100是专业级计算卡,通常用于深度学习训练和科学计算。如果你和我一样是在工作站上操作,建议先检查PCIe插槽是否牢固。我曾经遇到过因为显卡没插稳导致系统识别不出来的情况,排查了半天才发现是硬件问题。
在双系统环境下,Windows 10和Ubuntu 20.04的启动模式要特别注意。我强烈建议使用UEFI模式安装系统,并且关闭Secure Boot。很多NVIDIA驱动安装失败都是因为这个设置没调好。具体操作是进入BIOS设置,找到"Boot"选项,将启动模式改为UEFI Only,Secure Boot设为Disabled。
接下来在Ubuntu下检查GPU是否被识别:
sudo lspci | grep -i nvidia这个命令会列出所有NVIDIA设备。正常应该能看到V100的型号信息,比如"NVIDIA Corporation GV100 [Tesla V100 PCIe 16GB]"。如果看不到,可能是硬件连接问题或者需要在BIOS中启用PCIe设备。
内存和存储空间也要提前规划好。V100这样的高性能GPU对内存带宽很敏感,建议至少配备32GB系统内存。CUDA Toolkit和驱动安装需要约5GB磁盘空间,深度学习框架和数据集还需要更多,所以建议给Ubuntu分区至少分配100GB空间。
2. 驱动安装与系统配置
驱动安装是整个过程中最容易出问题的环节。根据我的经验,Ubuntu自带的nouveau驱动经常会和NVIDIA官方驱动冲突,所以要先处理这个问题。
首先禁用nouveau驱动:
sudo bash -c "echo 'blacklist nouveau' >> /etc/modprobe.d/blacklist-nouveau.conf" sudo bash -c "echo 'options nouveau modeset=0' >> /etc/modprobe.d/blacklist-nouveau.conf"然后更新initramfs:
sudo update-initramfs -u重启后检查nouveau是否真的被禁用:
lsmod | grep nouveau如果没有任何输出,说明禁用成功。
接下来是关键步骤——禁止Ubuntu自动更新。我吃过好几次亏,系统自动更新后驱动就挂了。具体设置方法:
- 打开"Software & Updates"
- 切换到"Updates"标签页
- 将"Automatically check for updates"设为Never
- 取消所有自动更新选项
- 在"Notify me of a new Ubuntu version"选择Never
现在可以安装驱动了。我推荐使用ubuntu-drivers工具自动安装:
ubuntu-drivers devices找到带有"recommended"标记的驱动版本,然后安装:
sudo apt install nvidia-driver-470这里的470是驱动版本号,根据你的系统推荐版本可能会不同。安装完成后重启,运行:
nvidia-smi如果看到GPU信息和驱动版本,说明安装成功。我在多台机器上测试过,这个方法比手动下载.run文件安装更稳定。
3. CUDA 11.1安装与配置
CUDA Toolkit的安装需要特别注意版本匹配。V100虽然支持更新的CUDA版本,但很多深度学习框架对11.1有特别优化,所以这里选择11.1。
首先下载CUDA 11.1的本地安装包:
wget https://developer.download.nvidia.com/compute/cuda/11.1.0/local_installers/cuda_11.1.0_455.23.05_linux.run然后运行安装程序:
sudo sh cuda_11.1.0_455.23.05_linux.run安装时有几个关键选项:
- 接受许可协议(按空格翻页,然后输入accept)
- 取消勾选Driver安装(因为我们已经装了驱动)
- 确保CUDA Toolkit被选中
- 保持默认安装路径/usr/local/cuda-11.1
安装完成后需要配置环境变量。编辑~/.bashrc文件:
gedit ~/.bashrc在文件末尾添加:
export PATH=/usr/local/cuda-11.1/bin${PATH:+:${PATH}} export LD_LIBRARY_PATH=/usr/local/cuda-11.1/lib64${LD_LIBRARY_PATH:+:${LD_LIBRARY_PATH}} export CUDA_HOME=/usr/local/cuda-11.1保存后使配置生效:
source ~/.bashrc验证安装:
nvcc -V应该能看到CUDA 11.1的版本信息。我建议再跑个官方示例测试:
cd /usr/local/cuda-11.1/samples/1_Utilities/deviceQuery sudo make ./deviceQuery如果最后显示"Result = PASS",说明CUDA工作正常。
4. cuDNN安装与环境验证
cuDNN是NVIDIA提供的深度学习加速库,安装过程相对简单但容易出错。首先要去NVIDIA官网下载对应CUDA 11.1的cuDNN版本,需要注册开发者账号。
下载完成后解压:
tar -xzvf cudnn-11.1-linux-x64-v8.0.5.39.tgz然后复制文件到CUDA目录:
sudo cp cuda/include/cudnn.h /usr/local/cuda-11.1/include/ sudo cp cuda/lib64/libcudnn* /usr/local/cuda-11.1/lib64/设置文件权限:
sudo chmod a+r /usr/local/cuda-11.1/include/cudnn.h sudo chmod a+r /usr/local/cuda-11.1/lib64/libcudnn*更新库缓存:
sudo ldconfig为了验证整个环境是否正常工作,我建议用PyTorch做个简单测试。先安装Miniconda:
wget https://repo.anaconda.com/miniconda/Miniconda3-latest-Linux-x86_64.sh bash Miniconda3-latest-Linux-x86_64.sh创建虚拟环境并安装PyTorch:
conda create -n pytorch_test python=3.8 conda activate pytorch_test conda install pytorch torchvision torchaudio cudatoolkit=11.1 -c pytorch -c nvidia运行测试脚本:
import torch print(torch.cuda.is_available()) # 应该输出True print(torch.version.cuda) # 应该显示11.1 print(torch.backends.cudnn.version()) # 应该显示对应版本号如果一切正常,你的双系统GPU环境就配置完成了。我在实际使用中发现,Windows下的驱动有时会影响Ubuntu的驱动稳定性,建议在两个系统中安装相同版本的驱动。如果遇到问题,可以尝试在BIOS中切换显卡模式,或者完全卸载驱动后重新安装。
