2019款MacBook Pro安装Ubuntu后ROCm运行rocminfo报错求助
T2芯片MacBook Pro 运行ROCm报错解决方案
针对你执行rocminfo返回的报错:
ROCk module is loaded
Unable to open /dev/kfd read-write: Cannot allocate memory
可按以下步骤排查解决:
1. 修改内核启动参数
该报错核心成因是T2芯片的IOMMU映射规则限制了ROCk模块对显存的访问权限,需要调整内核启动参数适配:
- 打开grub配置文件:
sudo nano /etc/default/grub - 找到
GRUB_CMDLINE_LINUX_DEFAULT配置项,在现有参数后追加内容:amdgpu.iommu=pt iommu=pt amdgpu.noretry=0 - 保存文件后更新grub配置:
sudo update-grub - 重启设备生效
2. 修正kfd设备udev规则
即便用户已加入render用户组,非官方T2内核通常不会自带ROCm对应的udev规则,需要手动添加:
- 创建udev规则文件:
sudo nano /etc/udev/rules.d/70-amdgpu.rules - 写入如下配置:
KERNEL=="kfd", SUBSYSTEM=="kfd", MODE="0660", GROUP="render", TAG+="uaccess" - 重载udev规则生效:
sudo udevadm control --reload-rules && sudo udevadm trigger
3. 功能验证
重启完成后,普通用户身份执行测试命令:/opt/rocm-4.5.0/bin/rocminfo
如果仍报错可临时关闭swap再测试:sudo swapoff -a
内核编译适配(可选)
如果你需要保留当前ROCm 4.5.0版本,重新编译当前使用的T2定制内核时,需确认开启以下编译选项:
CONFIG_HSA_AMD=yCONFIG_DRM_AMDGPU_USERPTR=y
未开启上述选项会直接导致ROCk模块无法正常分配显存,触发对应报错。
兼容备选方案
如果上述操作无效,是因为你使用的非官方T2内核与ROCm 4.5.0版本适配度不足,可替换安装ROCm 4.3.1版本,该版本对T2架构定制内核的兼容性更高。
内容的提问来源于stack exchange,提问作者kduf
相关产品推荐
相关产品推荐

