这是一篇关于低成本玩转专业AI加速卡的实战记录。通过修复二手市场淘来的高通QAIC100故障卡,深入探讨了其硬件架构、性能表现,并记录了尝试解决多卡互联技术难题的全过程,为同好提供了极具价值的参考。
智能速览
以极低成本入手多张高通QAIC100故障加速卡。
成功修复卡件并进行了Qwen2.5-7B模型性能实测。
单卡解码速度可达18.97 tps,性能符合预期。
多卡互联受限于PCIE Bar4大小,尝试修改固件未完全成功。
精华内容
从淘来坏卡到最终点亮,再到探索多卡可能性的边界,整个过程充满了挑战。下面将详细拆解其中的关键步骤与发现。
硬件初探
在二手市场以每张250元的价格购入多张故障的QAIC100加速卡,并搭配一张600元的正常卡进行参照。
根据官方资料,QAIC100 Standard SKU配备16GB内存,包含14到16个基于v68架构的Hexagon Tensor Processor(AI核心)。
卡片拥有单卡400TOPS的算力与75W的功耗,但较低的内存带宽可能影响单用户交互体验。
据了解,部分卡片损坏的原因是运输时堆叠在一起互相摩擦导致。
软件配置
软件环境的搭建颇为周折。最初尝试使用官方提供的SDK压缩包手动在Arch Linux系统上安装,过程繁琐。
最终发现使用预装好SDK的Docker容器是更高效的方案。
环境就绪后,使用高通的efficient-transformers库进行性能测试。实测在单卡运行Qwen2.5-7B(mxfp6量化),上下文1024的条件下,batch size为1时解码速度可达18.97 tps。随着batch size增加,整体吞吐量表现更佳。
多卡难题
单卡性能验证后,真正的挑战在于实现多卡并行。高通文档指出,QAIC100的多卡P2P通信功能,需要将PCIE Bar4的大小配置为2GB。
然而,这个关键配置并非由驱动或操作系统决定,而是在加速卡上电的瞬间,由其内部的BootROM读取一个一次性的熔断位来设定的。
这意味着一旦出厂,Bar4的大小就被固化(在此批卡上为64MB),无法通过常规软件手段更改,构成了多卡互联的根本障碍。
固件逆向
为突破此限制,作者尝试了固件层面的修改。通过Ghidra工具反编译加载到加速卡的固件,定位到所有读取那个关键fuse位的函数。
将这些函数patch为恒定返回“启用多卡”的逻辑,并用测试密钥对修改后的固件重新签名。
刷入新固件后,系统工具确实能识别到多卡能力标志位已激活,但物理层面的PCIE Bar4大小限制并未解除,问题依旧存在,探索仍在继续。
这次对高通QAIC100的折腾,不仅是一次低成本体验专业硬件的机会,更是一场深入底层的技术探索。从硬件修复到软件适配,再到固件逆向,每一步都充满了发现。尽管多卡问题尚未完美解决,但整个过程记录下的经验与思路,对其他玩家极具参考价值。下一个突破点会在哪里?