收起左侧

AMD 5825U开启相册ai功能的GPU加速

0
回复
19
查看
[ 复制链接 ]

1

主题

0

回帖

0

牛值

江湖小虾

type: note
created: 2026-07-26
tags: [fnOS, ROCm, Vega8, GPU加速, 人脸识别, 指南]
author: Hermes Agent + Ashkael

⚠️ 适用环境:fnOS(1.2.0203) + ROCm 7.2 + Vega 8(gfx90c)/ R7 5825U
其他 AMD APU(gfx90c 架构如 R5 5600G、R7 5700G 等)理论上也可用。

ROCm 7.2 + Vega 8 GPU 加速 —— fnOS 飞牛 NAS 人脸识别终极指南

背景

飞牛 NAS 的相册人脸识别功能支持 AMD GPU 加速(通过 ROCm + MIGraphX)。但在搭载 Vega 8(gfx90c) 集显的平台上(如 AMD R7 5825U),即使安装了 ROCm 7.2 和 AI 引擎应用,人脸识别仍然落到 CPU 上跑

原因​:ROCm 7.2 的 rocBLAS 矩阵库不包含 gfx90c(Vega 架构)的内核文件。
Vega 架构在 ROCm 6.x 后已被官方放弃,仅支持 gfx1030+(RDNA2+)、gfx90a(CDNA)、gfx908+ 等较新架构。


先决条件

开始操作前,请确保你的 NAS 已经安装好以下软件:

ROCm 7.2
在 fnOS 应用中心搜索 "ROCm" 并安装。
验证命令:

dpkg -l | grep rocm

飞牛 AI 引擎(MIGraphX)
在 fnOS 应用中心搜索 "AI" 并安装。
验证命令:

ls /var/apps/trim.ai-runtime-amd-migraphx/

p7zip(解压工具)
SSH 安装:

which 7z || sudo apt-get install -y p7zip-full

⚠️ 必须通过 fnOS 应用中心 安装 ROCm 和 AI 引擎,而不是手动下载 deb 包。
应用中心安装的版本保证与 fnOS 系统兼容。安装完成后重启一次 NAS 确保驱动加载。

PixPin_2026-07-26_00-36-46.png

如果以上都齐了,继续往下看。

排查路径(给喜欢深究的人看)

1. 发现 GPU 没被用上

检查 ai_manager 日志的服务启动命令:

sudo journalctl -u ai_manager.service --no-pager

看到 face_detimg2vec 虽然带了 --model_format MIGRAPHX --device GPU 参数,但 GPU 始终 0% 利用率:

sudo /opt/rocm/bin/rocm-smi --showuse
# → GPU use (%): 0

2. 定位 rocBLAS 报错

用 ONNX Runtime 检查 MIGraphX 是否可用。

⚠️ 路径说明:以下命令中的 /var/apps/trim.ai-runtime-amd-migraphx/... 是 fnOS 应用中心安装 AI 引擎后的 Python 环境路径。
如果你的路径不一样,先运行 sudo find / -name "python3" -path "*migraphx*" 2>/dev/null 找到正确的 Python 解释器。
或者在系统 Python 下安装 python3 -m pip install onnxruntime-rocm --break-system-packages 后直接测试。

# 方法一:通过 ai_manager 的 Python 环境(fnOS 应用中心安装)
sudo /var/apps/trim.ai-runtime-amd-migraphx/meta/penv/310_general/bin/python3 -c "
import onnxruntime as ort
print(ort.get_available_providers())
"

# 方法二:如果找不到上面的路径,先搜索
sudo find /var/apps -name "python3" -path "*migraphx*" 2>/dev/null

# 方法三:手动安装 onnxruntime-rocm 到系统 Python
# python3 -m pip install onnxruntime-rocm --break-system-packages
# python3 -c "import onnxruntime as ort; print(ort.get_available_providers())"

['CPUExecutionProvider'] ← MIGraphXExecutionProvider 缺失


检查 rocBLAS 日志(stderr)可看到真正的错误:

rocBLAS error: Cannot read TensileLibrary.dat for GPU arch: gfx90c


用 `rocminfo` 确认 GPU 被系统识别:

`bash
sudo /opt/rocm/bin/rocminfo | grep -A 30 "Agent 2"
# → Name: gfx90c    ← 系统能识别的

3. 分析 rocBLAS 库结构

检查已安装的内核文件:

ls /opt/rocm/lib/rocblas/library/ | grep -E "(Kernels.so|TensileLibrary_lazy)"

ROCm 7.2 只带了这些架构的内核:gfx1030, gfx1100, gfx1101, gfx1102, gfx1150, gfx1151, gfx1200, gfx1201, gfx908, gfx90a, gfx942, gfx950 —— 唯独没有 gfx90c

4. 寻找社区补丁

GitHub 上有一个项目专门为被 ROCm 抛弃的老架构提供补丁内核:

🔗 likelovewant/ROCmLibs-for-gfx1103-AMD780M-APU
https://github.com/likelovewant/ROCmLibs-for-gfx1103-AMD780M-APU

该项目在 v0.5.7 和 v0.6.2.4 版本中提供了 gfx90c 的 TensileLibrary 文件

5. 格式兼容性分析

  • ROCm 7.2 使用懒加载格式Kernels.so-000-gfxXXX.hsaco + TensileLibrary_lazy_gfxXXX.dat
  • 社区补丁 v0.5.7 包里意外包含了两套格式
    • library/ — 旧格式(单个 .co + .hsaco)
    • 2/library/懒加载格式(含 Kernels.so-000-gfx90c.hsaco + TensileLibrary_lazy_gfx90c.dat

6. 验证补丁生效

补丁部署后验证:

⚠️ 如果 python3 路径报错,先运行 sudo find /var/apps -name "python3" -path "*migraphx*" 2>/dev/null 查找正确路径。

# 检查 MIGraphX 是否可用(路径以实际为准)
sudo <你的AI引擎Python路径>/bin/python3 -c "
import onnxruntime as ort
print(ort.get_available_providers())
"
# → ['MIGraphXExecutionProvider', 'CPUExecutionProvider']   ✅

# 重启 AI 服务
sudo systemctl restart ai_manager.service

# 触发人脸识别后查看 GPU 利用率
sudo /opt/rocm/bin/rocm-smi --showuse
# → GPU use (%): 99   ✅

**式安装步骤

以下操作通过 SSH 登录到你的飞牛 NAS 执行。
只需要复制粘贴,一行一行来。

第一步:确认硬件和 ROCm

# 确认 CPU/GPU 型号
cat /proc/cpuinfo | grep "model name" | head -1

# 确认 ROCm 已安装
dpkg -l | grep rocm

# 确认 GPU 是 gfx90c 架构
sudo /opt/rocm/bin/rocminfo | grep -E "(Name:|gfx)"

如果你看到 gfx90c,恭喜 —— 这篇文章适合你。

PixPin_2026-07-26_00-38-10.png

第二步:备份原始的 rocBLAS 库

sudo cp -a /opt/rocm/lib/rocblas/library /opt/rocm/lib/rocblas/library.backup

第三步:下载社区补丁

# 下载 v0.5.7 的补丁包(约 8MB)
curl -sL --max-time 300 -o /tmp/rocblas.gfx90c.5.7.7z \
  'https://github.com/likelovewant/ROCmLibs-for-gfx1103-AMD780M-APU/releases/download/v0.5.7/rocblas.for.gfx90c.workable.7z'

第四步:解压补丁包

# 安装解压工具(如果没装的话)
which 7z || sudo apt-get install -y p7zip-full

# 解压
cd /tmp
7z x rocblas.gfx90c.5.7.7z -orocblas_patch -y

第五步:部署 gfx90c 内核文件

关键一步 —— 把懒加载格式的内核文件复制到 rocBLAS 库目录:

cd /tmp/rocblas_patch/2/library

# 复制懒加载格式文件(核心!)
sudo cp -v Kernels.so-000-gfx90c.hsaco /opt/rocm/lib/rocblas/library/
sudo cp -v TensileLibrary_lazy_gfx90c.dat /opt/rocm/lib/rocblas/library/

# 复制个体内核文件(fallback 兼容)
sudo cp -v *_gfx90c.* /opt/rocm/lib/rocblas/library/

第六步:验证补丁生效

⚠️ 路径说明:下面命令中的 Python 路径是 fnOS 应用中心安装 AI 引擎后的默认路径。
如果你的 NAS 上没有这个路径,先运行:

sudo find /var/apps -name "python3" -path "*migraphx*" 2>/dev/null

找到后替换命令中的路径即可。

# 检查 MIGraphX 是否可用
sudo /var/apps/trim.ai-runtime-amd-migraphx/meta/penv/310_general/bin/python3 -c "
import onnxruntime as ort
providers = ort.get_available_providers()
print('可用 Provider:', providers)
if 'MIGraphXExecutionProvider' in providers:
    print('✅ GPU 加速已就绪!')
else:
    print('❌ GPU 加速未生效,请检查补丁文件')
"

如果输出包含 MIGraphXExecutionProvider,说明补丁生效了!

第七步:重启 AI 服务并触发人脸识别

# 重启 ai_manager
sudo systemctl restart ai_manager.service

# 确认服务正常
systemctl is-active ai_manager.service

# 检查 GPU 状态
sudo /opt/rocm/bin/rocm-smi --showuse --showtemp

现在在飞牛 NAS 的相册 App 里触发「重新识别人物」,然后观察 GPU 利用率:

# 等几秒后检查 GPU 是否在跑
sudo /opt/rocm/bin/rocm-smi --showuse

如果看到 GPU use (%): 90+,恭喜你成功了!🎉

PixPin_2026-07-26_00-35-37.png

第八步(可选):恢复备份

如果出了问题,随时恢复:

sudo rm -rf /opt/rocm/lib/rocblas/library
sudo mv /opt/rocm/lib/rocblas/library.backup /opt/rocm/lib/rocblas/library
sudo systemctl restart ai_manager.service

确认 GPU 是否真的在工作

补丁部署后,可以通过以下方式确认 GPU 加速生效,或者简单点:直接去运行人脸识别。

rocBLAS 认 gfx90c

sudo /opt/rocm/bin/rocminfo
# 成功标志:显示 Agent 2: gfx90c

MIGraphX 可用

sudo <你的AI引擎Python路径>/bin/python3 -c "import onnxruntime as ort; print(ort.get_available_providers())"
# 成功标志:包含 MIGraphXExecutionProvider

GPU 利用率

sudo /opt/rocm/bin/rocm-smi --showuse
# 成功标志:GPU use (%): 90+

GPU 温度

sudo /opt/rocm/bin/rocm-smi --showtemp
# 成功标志:温度上升(55°C+)

运行进程

ps aux | grep -E "(face_det|img2vec)"
# 成功标志:进程活跃,CPU% 正常

PixPin_2026-07-26_00-37-13.png


常见问题

Q: 补丁文件被覆盖了怎么办?

roscBLAS 库可能被 ROCm 升级覆盖。备份保留在 /opt/rocm/lib/rocblas/library.backup,重新复制即可。建议把 gfx90c 内核文件备份到持久存储位置(如你的 NAS 存储池 /vol1/1000//volume1/ 等)。

Q: 首次人脸识别很慢?

正常。 MIGraphX 首次运行 ONNX 模型时需要编译 GPU 内核并写入缓存,后续就会快很多。编译期间 GPU 和 CPU 都会高负载。

Q: 我的 AMD GPU 不是 gfx90c 怎么办?

运行 sudo /opt/rocm/bin/rocminfo | grep gfx 查看你的 GPU 架构。如果是 gfx1030+(RDNA2+)或 gfx90a+(CDNA),ROCm 7.2 原生支持,不需要补丁。

如果是 gfx900/gfx902/gfx906 等更老的 GCN 架构,可以尝试这个仓库里对应架构的补丁包。

Q: 除了飞牛,其他系统能用吗?

这个方法理论上适用于任意 Debian/Ubuntu 系统 + ROCm 7.2 + gfx90c 显卡。核心操作就是往 rocBLAS 库目录丢 gfx90c 内核文件。


参考链接

  • 社区补丁仓库:likelovewant/ROCmLibs-for-gfx1103-AMD780M-APU
  • ROCm 文档:https://rocm.docs.amd.com/
  • ONNX Runtime MIGraphX:https://onnxruntime.ai/docs/execution-providers/MIGraphX-ExecutionProvider.html
  • 飞牛官方论坛:https://club.fnnas.com/

致谢

感谢 likelovewant 的社区补丁项目,让被官方抛弃的 Vega 架构能继续用上 GPU 加速。

写在最后

以上文字都是hermes自己生成的,我粗略看过,没什么毛病。

搞定这个ai相册识别走gpu的时候心情还是挺复杂。因为喜欢折腾docker,几天前刚买了天钡WTR pro,替换了原来的绿联dh4300 plus,结果把相册应用下载使用后注意到cpu占用有点过高了,排查才发现是因为gpu它压根没启动,官方商店的两个ai驱动套件安装以后不起作用,当时心想不会吧不会吧,原来的4300都可以用的基本功能,竟然amd支持的这么差,心情跌到谷底。

于是四处搜解决方案,发现很多和我一样用这颗5825u的朋友,也都有相同的问题,那没辙了,只能等官方更新了呗,就在浏览最后一篇文章的时候,瞥见一位朋友的留言说官方的rocm文件少了动态链接库,便记在了心里。

昨天开始折腾hermes,发现现在的ai真的是天天都在进化,也能帮助你解决很多问题:比如安装docker应用以前还要折腾命令,进终端,写compose文件,如今直接贴个文档链接、告诉他挂载目录就可以让他去帮你部署了,而且除了问题还可以让他帮你排查,直接起飞。

今天朋友聊起ai相册识别的时候我又想起了缺个动态链接库的事,然后我就把这个事告诉了hermes,起初它也是信誓旦旦的告诉我5825u应该是不支持这个ai识别走gpu了,后面我开着人脸识别、顶着高cpu占用让hermes去找具体是什么问题导致的识别不走gpu,然后它告诉了我结果,少了一个文件,果然是这样!接着我就让他去全网搜关于5825u和rocm关联的解决方案,漫长搜索后终于找到了一个社区补丁。

于是便有了这个分享,希望可以帮助到amd 5825u的朋友,其他的cpu我没验证过,不过都2026年了,大家可以借助ai去验证一下。

收藏
送赞
分享

本帖子中包含更多资源

您需要 登录 才可以下载或查看,没有账号?立即注册

x
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则