8G内存的板子跑Agent?全志A733(Cubie A7Z)硬核折腾踩坑实录
现在大家动不动就聊24G、80G显存跑大模型,搞得手里这些几G内存的ARM开发板好像只能放着吃灰,或者顶多当个旁路由。但我就是不信邪,非想弄个能常年扔在弱电箱里、功耗个位数、随时待命的本地AI小助手。
这几天一直在折腾手里这块艾瑞沙的Cubie A7Z(全志A733芯片),被各种底层驱动和调度按在地上摩擦,不过总算是搞出了一套能干活的方案。记录一下踩过的坑,给想玩边缘算力的老哥们避避雷。
第一步:告别TF卡,强开24G Swap
跑模型最吃的就是内存和存储IO。用TF卡跑模型?那纯粹是找虐,读写慢不说,还容易暴毙。
这板子本身带了256G的UFS 4.0闪存,不用白不用。我第一步就是改了 armbianEnv.txt 的引导,把主系统(RootFS)强行挪到了UFS上。
但物理内存毕竟只有8G,跑个大点的模型分分钟给你报OOM(内存溢出)。好在UFS速度够快,我干脆一不做二不休,直接在上面划了个24G的Swap分区,顺手把 swappiness 改成了10。
这一套打下来效果出奇的好:模型的核心权重待在8G物理内存里,其他闲杂进程和装不下的部分全被塞进Swap。系统就这么硬撑着,居然再也没崩过。
📸 [htop截图:8G物理内存拉满 + Swap吃上的惨状]
第二步:被GPU闭源驱动教做人
本来以为存储搞定了,起飞就在眼前。结果在GPU异构加速这步结结实实栽了个大跟头。
翻了Device Tree发现,这板子的GPU是 Imagination PowerVR BXM-4-64,理应是支持Vulkan加速的。为了点亮它,我前前后后编译了无数次 llama.cpp,改各种依赖。最搞笑的是,我甚至让本地跑着的Agent自己去拉代码、改配置,试图让它"自我修复"底层驱动。
结果全军覆没。Imagination的闭源驱动墙太厚了,根本搞不定。最后只能乖乖认怂,老老实实全靠CPU硬扛。
第三步:大小核的坑与5线程"玄学"
既然只能用CPU,那就得往死里榨。A733是个大小核架构(4个A76大核 + 4个A55小核)。
按以前玩电脑的习惯,我直接拉满7线程跑测试,寻思人多力量大。结果Agent给我出了一份对比报告,直接给我看傻了:
7线程: 4.25 tokens/s
5线程: 4.56 tokens/s ⚡
仔细一琢磨才明白,大模型推理的瓶颈在内存带宽。把任务分给孱弱的A55小核不仅帮不上忙,频繁的线程调度反而把本来就不宽裕的内存总线给堵死了。最后测试下来,-t 5 就是这套硬件的最佳甜点位,刚好把大核吃满,又不让小核捣乱。
功耗与发热:冰火两重天
不得不说,这板子的功耗表现确实有意思。
平时没事干纯待机的时候,整机功耗连1W都不到,电表都不稀罕转,完全可以当个幽灵节点。就算平时让Agent跑跑脚本、控制一下局域网设备,功耗也就3-4W,温温吞吞的。
可一旦抛给它个复杂任务,Gemma-4B开始疯狂推理,UFS的Swap开始狂扫数据,功耗直接飙到7-8W。对于这种低功耗板子来说,8W绝对是踩到红线了。没一会CPU核心温度就能飙到90度。没辙,最后只能老老实实贴上纯铜散热块,外挂个小风扇对着吹,不然真怕它把自己烤熟了。
📸 [加了散热器和风扇的开发板实拍图 — “跑AI必带风扇”]
现在的完全体:本地跑腿 + 云端外包
折腾了一大圈,现在这套系统总算是稳定下来了。我给它搭了 Hermes + OpenClaw + OpenCode 的Agent框架。
因为边缘算力确实有限,我做了一个自动分流:
本地轻任务 → 丢给 Gemma-4-E2B-it-uncensored 跑。虽然也就四点几个token一秒,但几瓦的功耗,能做到本地秒回,隐私绝对安全,还要啥自行车?
硬骨头(复杂代码、长文总结) → Hermes 自动路由给云端 Qwen-35B 大模型
本地和云端配合,算是把"云边协同"给玩明白了。
下一步打算
哪怕跑模型得外挂风扇,哪怕没搞定GPU加速只能看CPU狂飙,但这种自己一手调教出来、完全掌控底层物理硬件的感觉,确实很上头。
这板子上还有好多没用上的资源:
那一排吃灰的 GPIO
那颗 3 TOPS 的 NPU
我正在琢磨,下一步是不是可以用NPU跑个YOLO做视觉识别,联动个云台搞个全自动激光打蚊子机?
坑还很多,慢慢填吧。 🚀
如果你也在折腾ARM边缘AI,欢迎交流!关注博客获取最新踩坑记录。