使用Adafruit提供的可用组件,如何通过INA228实现独立的电源测量
在第一篇文章中,我们介绍了Hailo的功率测量解决方案。在第二篇文章中,我们尝试使用ElmorLabs的解决方案来重现这些功率测量数据。
在本文中,我们重复了相同的实验,这次使用Adafruit提供的可用元件来制作一个定制的INA电路原型。
Adafruit 的必备组件
经过进一步调查,我发现Adafruit除了USB转I2C板外,还提供多种型号的INA电路板。这些组件可以相互配合,直接提供一个可用的电源测量解决方案。
•Adafruit FT232H 开发板 - 通用 USB 转 I2C
•Adafruit INA228 I2C 电源监测器
•STEMMA QT / Qwiic JST SH 4针线缆
我们将将其与ElmorLabs的PCIe电源插入适配器结合使用,该适配器将3V3电源轨作为跳线,我们可以轻松接入。
•ElmorLabs PMD PCIe 4.0 功率测量适配器
组装系统
这个解决方案设置起来要容易得多。
FT232H 分接器有一个开关,用于设置与 I2C 的连接:
•I2C 模式:设置为开启
关于INA228模块,与我预期的相反,配置该电路板无需焊接。FT232H扩展板和INA228模块通过一根STEMMA QT线缆连接。
我改装了一根两芯电源线,将其中一端裸露出来连接到INA228模块。同时,我也将+V端子接到了Vbus上,用于高侧模式(即测量3.3V电源轨,而不是地线)。
我的自定义线缆已插入 ElmorLabs PMD 电源插头适配器上 3V3 道轨的跳线位置。为了获得正向读数,需要进行以下关键连接:
•V+ 连接到 3V3(红色线缆)——(来自插槽)引脚
•V 与 3V3(黑色线缆)连接 - (至卡)引脚
使用 mb-powermon.py 测量 Hailo-8 的功率
为了进行测试,我在 mb-powermon.py 工具中添加了对 Adafruit FT232H 和 INA228 组件的支持。
第一步是克隆我开源电源监控工具的代码仓库。
在 hailo 容器内安装“pyftdi”、“adafruit-blinka” 和“adafruit-circuitpython-ina228” 这三个 Python 包。
请确保您有权访问所列的 FTDI USB 设备。我已附上一个可在 Docker 容器外运行的脚本,名为 fix-ft232h-permissions.sh(使用时需谨慎):
接下来,在 Hailo 容器内部,我们可以按照以下方式启动 mb-powermon 工具:
如果我们在 Hailo 容器内的另一个控制台中重新运行 hailortcli 工具:
注意:您可能会发现 hailortcli 报告的平均值和最大值完全相同(例如,3.95935 == 3.95935,4.02821 == 4.02821)。如第一部分所述,当两个应用程序同时读取 Hailo 功率 API 时,会出现这种竞争现象——这正是当前情况,因为 mb-powermon.py 同样在轮询该 API 进行比对。我在第一部分中已建议避免此做法,而此处我特意这样做,只是为了将两组测量结果叠加在同一图表上。显示的 Hailo 值应视为近似参考值,而非真实数据。若要获得准确的 Hailo 测量结果,请仅运行 hailortcli,如第一部分所示。
在此运行期间,您将看到类似以下内容(视频以10倍速播放):
在这段视频中,我使用相同的Hailo模块对ResNet50进行了两次基准测试。
如果我们将 output.csv 文件转换为用户友好的.html 格式,就可以同时绘制两次运行的功率和温度,并叠加 Hailo 报告的平均值:
这些结果最突出的一点是,INA228的测量值略高于Hailo自身的测量值。
这是预期的行为。每个分流电阻都会在其自身两端产生一个小电压,导致下游负载的供电电压略有降低。由于功率 P = V · I,负载消耗的功率也相应减少,因此下游的感应电阻读数也会相应降低。INA228 位于 Hailo 内部分流电阻的上游,这会导致读数偏高。
我对这些结果非常满意!
结论
本文中,我们找到了一种用于测量M.2 AI加速器模块功耗的可行方案。
总价格约为60美元(FT232H + INA228 + 电缆 + ElmorLabs PCIe适配器),Adafruit的方案具有成本效益。一个改进点是可以加装外壳,将FT232H和INA228板封装起来。
通过验证的功耗测量方法,我们现在可以计算出边缘AI中至关重要的指标:每瓦每秒帧数(FPS)。
在resnet50上,Hailo-8的性能约为1371 FPS,功耗约4.0 W,即每瓦功耗约343 FPS。
该数据将成为我们未来文章中衡量其他M.2 AI加速器的首个参考基准,所采用的方法与本文相同。
本文编译自hackster.io





