1. 为什么选择RX 6700 XT做深度学习?
最近两年AMD显卡在深度学习领域的存在感越来越强,特别是像RX 6700 XT这样的中高端消费级显卡,性价比相当突出。我自己用这张卡跑了几个月的模型训练,实测在Ubuntu系统下配合ROCm环境,性能表现完全不输同价位的N卡。
不过A卡的环境搭建确实比N卡麻烦一些,主要问题集中在驱动安装和ROCm生态适配这两个环节。很多新手第一次配置时容易踩坑,比如驱动版本不匹配、环境变量设置错误、PyTorch安装失败等等。下面我就把整个配置过程中需要注意的关键点都梳理出来,帮你一次性搞定所有问题。
2. 系统准备与驱动安装
2.1 选择合适的Linux发行版
目前ROCm对Ubuntu的支持最好,推荐使用20.04或22.04 LTS版本。我实测下来20.04的兼容性更稳定一些,特别是对于RX 6700 XT这种RDNA2架构的显卡。安装系统时记得选择"最小化安装",避免不必要的软件包冲突。
装好系统后第一件事是更新软件源:
sudo apt update && sudo apt upgrade -y sudo apt install -y build-essential cmake git2.2 安装AMD显卡驱动
AMD官方提供了两种驱动安装方式:
- 开源驱动(amdgpu)
- 闭源驱动(amdgpu-pro)
对于深度学习场景,建议使用闭源驱动。最新驱动可以在AMD官网找到,注意选择对应你显卡架构的版本。以RX 6700 XT为例:
wget https://repo.radeon.com/amdgpu-install/22.20/ubuntu/focal/amdgpu-install_22.20.50200-1_all.deb sudo apt install ./amdgpu-install_22.20.50200-1_all.deb sudo amdgpu-install --usecase=graphics,opencl --vulkan=pro --opencl=rocr安装完成后重启系统,运行glxinfo | grep "OpenGL renderer"确认驱动加载正常。如果遇到依赖问题,可以尝试sudo apt --fix-broken install修复。
3. ROCm环境配置
3.1 安装ROCm工具链
ROCm是AMD的GPU计算平台,相当于NVIDIA的CUDA。安装时需要注意DKMS选项:
sudo amdgpu-install --usecase=rocm,hip,mllib --no-dkms这里特别说明下--no-dkms参数:新版Ubuntu自带的内核已经包含必要模块,再装DKMS反而可能导致冲突。不过如果你需要多版本ROCm共存,就需要启用DKMS支持。
3.2 环境变量配置
安装完成后需要设置关键环境变量。编辑~/.bashrc文件添加:
export PATH=$PATH:/opt/rocm/bin export LD_LIBRARY_PATH=$LD_LIBRARY_PATH:/opt/rocm/lib对于RX 6700 XT(gfx1030架构),可能还需要设置:
export HSA_OVERRIDE_GFX_VERSION=10.3.0不过这个设置不是必须的,建议先不设置,如果遇到问题再尝试添加。保存后执行source ~/.bashrc使配置生效。
3.3 验证ROCm安装
运行以下命令检查环境:
rocminfo # 查看GPU信息 hipconfig --full # 检查HIP配置如果看到显卡信息正常输出,说明ROCm已经正确安装。常见问题处理:
- 报错"librocblas.so找不到":执行
sudo ln -s /opt/rocm/lib/librocblas.so.0 /opt/rocm/lib/librocblas.so - 报错"SIGSEGV":检查用户是否加入了video和render组:
sudo usermod -a -G video $USER
4. PyTorch安装与测试
4.1 安装PyTorch for ROCm
PyTorch官方提供了ROCm专用版本,安装命令如下:
pip3 install torch torchvision torchaudio --index-url https://download.pytorch.org/whl/rocm5.4.2注意这里的rocm5.4.2需要和你安装的ROCm版本对应。如果网络不稳定,可以考虑使用国内镜像源。
4.2 基础功能测试
启动Python解释器运行以下测试代码:
import torch print(torch.cuda.is_available()) # 应该返回True print(torch.rand(10,10).to('cuda')) # 测试张量计算如果第一个命令返回False,说明PyTorch没有正确识别到GPU。常见解决方法:
- 检查ROCm版本和PyTorch版本是否匹配
- 确认环境变量设置正确
- 尝试重新安装PyTorch
4.3 性能优化设置
为了获得最佳性能,建议进行以下调整:
- 启用FP16计算:
torch.backends.cuda.matmul.allow_tf32 = True torch.backends.cudnn.allow_tf32 = True- 调整内存分配策略(在~/.bashrc中添加):
export PYTORCH_HIP_ALLOC_CONF=garbage_collection_threshold:0.85. 常见问题解决方案
5.1 驱动兼容性问题
症状:系统卡死、黑屏、性能异常 解决方法:
- 确保使用推荐的驱动版本
- 检查/etc/default/grub中的启动参数是否包含
amdgpu.runpm=0 - 尝试禁用Wayland,改用Xorg显示服务器
5.2 ROCm运行时错误
症状:Process finished with exit code 139 (SIGSEGV) 解决方法:
- 检查用户权限:
groups | grep video - 尝试设置环境变量:
export HSA_ENABLE_SDMA=0 - 更新ROCm到最新版本
5.3 PyTorch训练异常
症状:Loss出现NaN、训练速度慢 解决方法:
- 降低学习率
- 尝试禁用混合精度训练
- 检查数据加载是否正常:
torch.utils.data.DataLoader的num_workers建议设为4-8
6. 实际项目部署建议
经过几个月的实际使用,我总结了几个提升稳定性的经验:
监控GPU温度:RX 6700 XT的功耗墙设置比较保守,建议使用
rocm-smi监控温度,必要时调整风扇曲线内存优化:对于大模型训练,可以启用虚拟内存:
sudo fallocate -l 32G /swapfile sudo chmod 600 /swapfile sudo mkswap /swapfile sudo swapon /swapfile定期维护:每月检查一次驱动和ROCm更新,及时修复安全漏洞
备份环境:使用conda或docker保存可复现的环境配置,避免重装系统时从头再来