You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

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=y
  • CONFIG_DRM_AMDGPU_USERPTR=y
    未开启上述选项会直接导致ROCk模块无法正常分配显存,触发对应报错。

兼容备选方案

如果上述操作无效,是因为你使用的非官方T2内核与ROCm 4.5.0版本适配度不足,可替换安装ROCm 4.3.1版本,该版本对T2架构定制内核的兼容性更高。

内容的提问来源于stack exchange,提问作者kduf

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.09.24 10:45:06