树莓派外接GPU实现机器学习架构

之前购买的 Nvidia Tesla P10 GPU运算卡 安装在二手 HPE ProLiant DL380 Gen9服务器 上使用,用于 DeepSeek 推理。这种IDE数据中心的服务器有一个很大的缺点就是耗电和噪音,对于家用环境非常不友好,所以我不得不每天晚上关机,白天使用时再开机。

然而我想到之前构思的 Raspberry Pi Cluster ,期望在低功耗情况下运行模拟集群,有没有可能结合树莓派来使用 NVIDIA GPU ,这样可以7x24小时开机,随时可用的机器学习环境。

我在淘宝上看到过 QCULink 设备外接eGPU(另一种是用于苹果的 Thunderbolt (雷雳) eGPU),发现这种外接方案其实也可以用于 树莓派Raspberry Pi 5 ,因为唯一的要求是具备 PCIeM.2接口 ,这个条件 树莓派Raspberry Pi 5 是满足的。

我考虑过低功耗的 eGPU(外置GPU)使用Tesla P4 和,但是利旧自己的 Nvidia Tesla P10 GPU运算卡 最终采用了缓和模式:

也就是说,最终我的运行架构会具备两个 NVIDIA GPU 分别用于训练( Nvidia Tesla P10 GPU运算卡 )和推理( Nvidia Tesla P4 GPU运算卡 )

电源

eGPU PC主机电源

考虑到稳定性和功耗,我最终大出血购买了一个750W金牌PC机电源:

  • 需要注意,如果不使用主板直接连接PC机电源和外接eGPU卡,则电源的主板连线需要跳线(相当于开关)才能输出电能:

    • 将24-pin电源电缆的第4和第5pin连接,就能直接驱动PC电源输出电能

    • 先开启PC电源(PSU),等到电源和GPU都开始加电运行之后,再开启树莓派电源,这样树莓派启动后才能识别出外接eGPU

../../../_images/pi_egpu_power_jump.webp
../../../_images/mainboard_power_connect.webp

备注

Run LLM on Pi5: Connecting an NVIDIA GPU to Raspberry Pi 5 via PCIe x4 提到了使用一个 egpu-switcher 来切换eGPU,待实践

eGPU服务器电源

万能淘宝提供了一个更好的选择,使用转换模块可以将 HPE ProLiant DL380 Gen9服务器 标准服务器电源改造成eGPU外接电源。而且电源模块通过USB同步启动信号线,能够在PC主机启动时自动触发电源模块供电,从而实现外接eGPU和PC主机同时启动。

不过,gemini提示HP DL380 Gen9电源有一些特殊,并非标准CRPS电源,而是HPE自己的设计规范,称为 HPE Common slot Power Supplies:

  • 物理兼容性:它的金手指(插槽接口)布局与通用标准的 CRPS 非常相似,但 HPE 往往在金手指的 针脚定义(Pinout) 上做了一些改动(特别是用于电源管理、I2C 通讯的信号针脚)。

  • 通信协议:HPE 的电源使用特定的固件与服务器主板通讯(如实时功耗监测)。如果使用通用的 CRPS 转接板,可能会遇到无法启动或无法同步开关机的问题。

Gemini建议购买 “直出 12V” 转接板(Breakout Board): 这种专门针对Gen9/Gen10的转接板通常只提供多个 6+2 Pin 的显卡接口:

  • 优势: 由于只走大电流12V,不涉及复杂的ATX信号协议转换,极其稳定

  • 联动启动:选择带"同步启动口"的转接板,这种转接板可以通过一根4-pin或SATA线转接线连接到PC台式机电源上,这样PC台式机通电后,会给转接板一个高电平信号,唤醒HP电源

我在淘宝上找到一种20元左右的只提供手动拨动开关的服务器电源6-pin转接板,实际上是矿机使用的电源板,能够将服务器电源输出给GPU使用。不过这种廉价转接板只是单纯的物理连接,缺乏足够的滤波电容,如果运行AI模型电流剧烈波动,可能会产生电磁噪音,干扰周边的显卡或NVMe硬盘。

另外,需要注意转接板只有 6-pin 输出,需要购买质量较好的 6-pin8-pin 电源线,并且导线必须足够粗(18AWG或更粗,注意数字越小越粗,例如16AWG线材更好)。

备注

电源线8-pin中比6-pin多的2pin实际上GND(地线),这多出的2根地线提供了不同的功能:

  • Sense(感知)信号: 当显卡检测到这个针脚接地时才表明能使用150W电流

  • 额外的地线回路: 增加电流的回流能力

6pin接口理论承载功率是75W,而8pin接口理论承载功率是150W

AMD Radeon Instinct MI50 之所以使用了2个8pin的电源,表明这个GPU设计TDP是300W (150Wx2)

成本考虑以及其他

考虑到要将 AMD Radeon Instinct MI50 安装到普通PC服务器上,实际上需要投入:

  • "直出12V"转接板: 20元

  • 16AWG线材的6pin转8pin显卡电源线: 80元(共4根)

  • AMD Radeon Instinct MI50 散热改装: 120元(共2个带风扇散热壳)

  • PCIe 4.0x16显卡延长线: 279元(我已经买了2根,需要再补一根,不过也可利旧以前的PCIe转接线,就是不太好看)

总之,大约至少需要投入220元

备注

最大的犹豫是 "直出12V" 转接板质量是否满足这种大功率GPU的长期持续使用?

考虑到 Dell T5820 工作站,只需要1000元就能购买到准系统,提供了6个PCIe插槽,就无需这么折腾引出各种电源线和PCIe转接线,实际上性价比似乎更好。

警告

我暂时放弃了这个改造,实际上不管怎么折腾,拼凑起来的组装机都不如二手市场上购买的品牌服务器,因为只有大规模工业化生产的成品服务器才能综合得到最佳平衡。这点是我在反复折腾中得到的经验,除非你能投入2~3倍的资金来组装特定需求的服务器。

参考