快速结论:在 InvokeAI 的 ROCm Docker 容器中遇到 CPU 回退,核心报错为 No module named 'kernels'。该问题通常源于容器内缺少 ROCm 相关依赖或设备权限配置不当,优先排查容器内是否包含 rocminfo 工具以及 render 组的 ID 是否与宿主机一致。
适用环境:Linux(TrueNAS Scale)、AMD RX 7900 XTX(24GB VRAM)、InvokeAI 6.14.0-alpha(main-rocm 分支,Docker 方式安装)。
最快修复方案:Issue 评论中确认的可行方案是手动进入容器安装 rocminfo 工具(通过 apt 安装),安装后 InvokeAI 能正确识别 AMD GPU 并运行在 cuda:0 设备上。注意,官方预构建镜像未包含该工具,因此需手动补装。
注意事项:该方案虽然让 InvokeAI 识别了 GPU,但 Issue 作者后续报告渲染时内存占用异常飙升(超过 24GB 后容器崩溃),该问题在 Issue 中尚未解决。此外 No module named 'kernels' 的提示在识别 GPU 后仍然出现,表明 4-bit 量化相关功能可能仍不可用。
问题场景
用户在 TrueNAS Scale 上以 Docker 方式运行 InvokeAI 的 main-rocm 镜像,已通过 --device /dev/kfd 和 --device /dev/dri 将 AMD GPU 透传给容器,但应用始终只使用 CPU。日志显示容器缺少 ROCm 相关工具(如 rocminfo),导致无法检测 GPU 架构并回退到 CPU 设备。
报错原文
Could not detect ROCm GPU architecture: [Errno 2] No such file or directory: 'rocminfo'
Could not detect ROCm warp size: [Errno 2] No such file or directory: 'rocminfo'. Defaulting to 64. (some 4-bit functions may not work!)
Failed to load CPU gemm_4bit_forward from kernels-community: No module named 'kernels'. Please make sure you already `pip install kernels` and the kernels >= 0.11.1
Using torch device: CPU
原因分析
可能原因:Issue 作者对比了旧版本 Dockerfile(v5.2.0)后指出,当前 main-rocm 镜像的 Dockerfile 和 GitHub Actions 构建配置中均未包含 rocminfo 工具的安装步骤。容器内缺少该工具,导致 InvokeAI 无法检测 ROCm GPU 架构,从而回退到 CPU。此问题与 Docker Compose 中的 GPU_DRIVER=rocm 环境变量无关,因为该变量仅在镜像构建时生效,而非运行时。
环境排查
- 确认宿主机的
render组 ID:在宿主机执行getent group render,查看输出中的数字(本例为107),对比容器内的组 ID 是否一致。 - 确认容器内是否存在
rocminfo可执行文件,可在容器内执行which rocminfo验证。 - 检查 InvokeAI 版本是否为
main-rocm标签对应的构建版本(本例为 6.14.0-alpha)。 - 确认 AMD 驱动已在宿主机正确安装,且
/dev/kfd和/dev/dri设备在容器内可见。
解决步骤
- 确认宿主机
render组 ID,在 Docker Compose 或运行命令中设置RENDER_GROUP_ID环境变量为宿主机对应值(例如 107),并在容器配置中添加group_add: -video -render。注意:Issue 作者尝试了此方案但无效,因此不作为首选。 - 进入容器手动安装
rocminfo工具(例如在容器内执行 apt 安装 rocm-smi-lib 或包含 rocminfo 的包),安装后重启 InvokeAI 服务。这是 Issue 评论区确认有效的方法,可优先尝试。 - 安装完成后,观察启动日志是否出现
Using torch device: [AMD Radeon RX 7900 XTX (cuda:0)...],确认 GPU 已被识别。 - 如果渲染时仍出现内存溢出,需单独排查。Issue 作者在 GPU 被识别后尝试渲染,内存使用量异常飙升导致容器崩溃,该问题未在本次 Issue 中得到解决。
验证方法
安装 rocminfo 并重启后,观察 InvokeAI 启动日志。如果 GPU 被正确识别,日志中会显示类似 Using torch device: [AMD Radeon RX 7900 XTX (cuda:0), AMD Radeon 760M Graphics (cuda:1)] 的信息,且不再出现 Using torch device: CPU。同时可在 WebUI 中执行一次简单的文生图任务,确认实际推理运行在 GPU 上。
参考来源
AI 工具推荐
想把多个 AI 模型放在一个入口?
GamsGo AI 集成 ChatGPT、DeepSeek、Gemini、Claude、Midjourney、Veo 等常用模型,适合写作、绘图、视频和日常 AI 工作流。
推广链接:通过此链接购买,我可能获得佣金,不影响你的价格。
这个方案解决了吗?
可以继续搜索完整报错,或查看同一工具的其他排查指南。
![[Question]: error when attaching file in chat ----AttributeError("'Request' object has no attribute 'file'")](https://www.chat-gpts.plus/wp-content/uploads/2026/08/11805-40332ec3-768x403.jpg)
![[Question]: No keyword or question was found in dataSet afer files loaded by customized ingestion pipeline](https://www.chat-gpts.plus/wp-content/uploads/2026/08/11474-a36958b1-768x403.jpg)
