在AMD APU(gfx90c)上运行PyTorch/TensorFlow的方案求助(Arch Linux环境)
针对Arch Linux下AMD gfx90c APU启用PyTorch/TensorFlow ROCm支持的解决思路
一、先排查ROCm基础环境
- 卸载之前手动编译的TensorFlow ROCm包,避免版本冲突:
sudo pacman -Rns tensorflow-rocm - 安装Arch官方维护的ROCm核心组件:
sudo pacman -S rocm-libs rocm-utils rocm-opencl-runtime - 验证设备识别:运行
rocminfo,检查输出中是否存在gfx90c条目,同时确认出现HSA_STATUS_SUCCESS状态 - 将当前用户加入video组:
sudo usermod -aG video $USER,重启系统生效
二、PyTorch ROCm配置
- 安装官方适配的PyTorch包:
sudo pacman -S pytorch-rocm torchvision-rocm - 验证设备调用:
打开Python终端执行:
输出import torch print(torch.cuda.is_available()) print(torch.cuda.device_count()) print(torch.cuda.get_device_name(0))True、1及对应APU名称即为成功 - 若仍无法识别,手动指定HIP设备版本:
运行Python脚本前设置环境变量:export HSA_OVERRIDE_GFX_VERSION=9.0.0(gfx90c对应版本为9.0.0)
三、TensorFlow ROCm配置
- 放弃手动编译,改用ROCm官方pip包适配Arch环境:
先清理现有TensorFlow相关包:sudo pacman -Rns tensorflow*; pip uninstall -y tensorflow
安装与当前ROCm版本匹配的TensorFlow:pip install tensorflow-rocm==<对应ROCm版本>(例:ROCm 5.7对应tensorflow-rocm 2.15.0) - 验证设备调用:
打开Python终端执行:
输出包含import tensorflow as tf print(tf.config.list_physical_devices('GPU'))PhysicalDevice(name='/physical_device:GPU:0', device_type='GPU')即为成功 - 持久化环境变量:
在~/.bashrc或~/.zshrc中添加:
执行export ROCM_PATH=/opt/rocm export PATH=$ROCM_PATH/bin:$PATH export LD_LIBRARY_PATH=$ROCM_PATH/lib:$LD_LIBRARY_PATH export HSA_OVERRIDE_GFX_VERSION=9.0.0source ~/.bashrc生效
四、常见排坑点
- 内核兼容性:使用Arch官方稳定内核(5.15+版本),避免自定义内核缺失ROCm相关补丁
- BIOS设置:开启IOMMU、PCIe 4.0(若设备支持),禁用Secure Boot(可能阻碍驱动加载)
- 驱动日志排查:若驱动加载失败,执行
dmesg | grep amdgpu查看固件缺失或权限问题
内容的提问来源于stack exchange,提问作者João Santos
相关产品推荐
相关产品推荐

