2023年4月(两年前),我订购了一套包含10块计算刀片服务器的设备,它们在几周前才刚刚到货。在这期间,树莓派将CM4升级到了CM5,于是我又为我的刀片服务器集群订购了一套包含10个16GB内存的CM5 Lite模块。这样,我总共就有了160GB的内存可以使用了。
这是我搭建过的规模最大的树莓派集群,算上运费,我大约花了3000美元:
还有另一款由树莓派驱动的刀片服务器计算机——Xerxes Pi。它体积更小,价格也更便宜。
不过,在投入了这么一大笔钱之后,我主要想探讨的问题是:树莓派集群还值得搭建吗?这个集群在性能上肯定无法与价值8000美元、拥有4个节点的Framework台式机集群相提并论。但是,如果从每十亿次浮点运算的价格、效率或计算密度来看呢?
只有一种方法可以找到答案。
计算刀片服务器集群搭建过程
我制作了一段视频,涵盖了这篇博客文章中的所有内容,以及整个集群的搭建(还有重建,以及再次重建)过程。你可以在这里观看,也可以在YouTube上观看:
不过,如果你正在阅读这篇博客,那你可能也不是那种会坐下来看视频的人。所以,我们继续……
集群化意味着要将所有事情重复做n遍
在从“所有东西都在盒子里”到“可靠地运行人工智能和高性能计算(HPC)基准测试”的过程中,我基本上重建了这个集群三次:
1.首先,我办公室里那些随意拼凑的NVMe固态硬盘并不可靠。有些硬盘似乎无法与树莓派5的PCIe总线兼容,而其他一些硬盘则有点不太稳定(这些硬盘之所以成为备用,是有原因的,它们原本就是无法正常使用!)
2.在将所有SSD替换为Patriot P300之后,它们的可靠性有所提高,但CM5在负载下会出现性能下降的情况。
3.我还没有拧紧螺丝时就装上了这些CM散热片……后来发现它们有时会脱落,于是我又把所有刀片服务器都拆了下来,将散热片拧到CM5/刀片服务器上,以确保它们能长期稳定。
计算刀片服务器集群HPL Top500测试
我运行的第一个基准测试是我的Top500高性能林帕克(High Performance Linpack)集群基准测试。
https://github.com/geerlingguy/top500-benchmark
这是我最喜欢的集群基准测试,因为它是传统上在大型超级计算机上运行以及进入了Top500超级计算机榜单的基准测试。
https://www.top500.org/
在安装散热片之前,集群的性能达到了2750亿次浮点运算每秒(Gflops),这比单个8GB内存的CM5快了8.5倍。并且集群在运行过程中只消耗了105瓦的电量。这还有很大的提升空间。
在解决了散热问题之后,集群没有再出现性能下降的情况,功耗也稳定在了130瓦左右。在满负荷运行时,我得到了3250亿次浮点运算每秒的性能,这比单个8GB内存的CM5快了10倍(对于10个16GB内存的CM5来说)。
与上个月我测试过的价值8000美元的Framework集群相比,这个集群的速度大约慢了4倍:
不过,从每十亿次浮点运算每瓦(Gflops/W)的角度来看,树莓派集群的能源效率要稍微高一些:
但是价格方面呢?
对于高性能计算应用来说,树莓派的成本效益略低于搭载AMD最快加速处理器(APU)的Framework台式机。抛开我们只讨论CPU这一事实不谈,我认为没有哪家超大规模计算公司会考虑用10000多个树莓派来替换几千套AMD EPYC系统
不过,对于人工智能应用来说又怎样呢?
计算刀片服务器集群人工智能测试
这个集群总共有160GB的内存,由CPU和集成显卡共享使用,它可以成为一个小型、高效的人工智能集群。
但实际上并非如此:目前,llama.cpp无法在树莓派5的集成显卡上使用Vulkan来加速人工智能运算。
https://github.com/ggml-org/llama.cpp/issues/9801
这意味着我们虽然有160GB的内存,但只能依靠中央处理器进行推理运算。而且是在性能较弱的Arm Cortex A76中央处理器核心上,内存带宽也只有大约10GB/秒。
在一个树莓派上运行一个小型模型(Llama 3.2:3B),效果还不算太糟糕;你每秒大约能得到6个标记(token)。但是,与英特尔N100(更不用说单个Framework台式机了)相比,这个性能还是相当弱的:
你可以让10个节点运行10个模型,这可能是一个非常小众的应用场景,但真正的测试是在所有节点上运行一个更大的模型。于是,我转而测试了Llama 3.3:70B,这是一个40GB的模型。由于单个树莓派的内存不超过16GB,所以它必须跨多个树莓派运行。
与Framework集群一样,llama.cpp远程过程调用(RPC)的速度非常慢,因为它会将模型层分配给所有集群成员,然后轮流让每个节点执行提示词处理,再生成标记。
在我的默认设置下,树莓派集群甚至无法完成标记生成(tg),所以我不得不降低要求,每次只生成16个标记,以便让它能够完成。
即便如此,每秒也只能生成0.28个标记,这比运行相同模型(但使用的是带有Vulkan的AI Max集成显卡)的Framework集群慢了25倍。
我还尝试了Exo和distributed-llama。Exo甚至无法在2个或3个节点的树莓派集群配置上运行一个小型的3B模型,所以我放弃了尝试让它正常运行。
https://github.com/exo-explore/exo
https://github.com/b4rtaz/distributed-llama
distributed-llama可以运行,但对于70B模型来说,最多只能使用8个节点。这样做可以得到了一个更有用的0.85个标记/秒的速度,但这仍然比Framework集群慢了5倍(而且它比llama.cpp RPC更加不稳定——生成的标记有时是乱码):
你可以在GitHub上的“在10节点树莓派5集群上测试各种人工智能集群配置”问题中找到我所有的人工智能集群基准测试结果。
https://github.com/geerlingguy/beowulf-ai-cluster/issues/6
Gateworks公司情况与结论
归根结底:这个集群并不是一个强大的计算设备。而且,从性价比的角度来看,如果你打算花费超过3000美元来搭建一个计算集群,那它并不是最佳选择。
不过,它确实高效、安静且紧凑。因此,如果密度对你来说很重要,而且你需要很多个物理上独立的小型节点,那么这个集群可能还是有意义的。
除了用于学习之外,它唯一真正的实际应用场景可能是用于持续集成(CI)任务或高安全性的边缘部署,在这些场景中,不允许在一台服务器上运行多个任务。
这正是Unredacted Labs公司搭建树莓派集群的原因:他们在刀片服务器上搭建了Tor出口中继,因为他们发现树莓派是运行大量节点的最有效方式。如果你的目标是效率和节点密度,那么这个集群确实能稍微胜出一些。
不过,对于99%的读者来说:这并不是你们要找的集群。
两年前,当我最初订购这些刀片服务器时,Gateworks公司联系了我。他们正在销售一款性能经过增强的计算刀片服务器,按照工业标准制造。GBlade的性能大约与树莓派4相当,但配备了10Gb网络连接,以及一个1Gb的管理接口。
但是……它已经停产了。看起来没有任何类型的计算刀片服务器真正在市场上引起轰动,就像《刀锋战士》电影系列一样,计算刀片服务器更像是一部邪典经典,而非主流热门产品。
这是一个糟糕的集群。也许除了第9块刀片服务器之外,它每次我运行基准测试时都会死机。但我会继续维护它,因为我知道它肯定比加州大学圣巴巴拉分校那个拥有1050个节点的树莓派集群更容易维护,据我所知,那仍然是世界上最大的树莓派集群!
所用部件
你可能不想复制我的集群配置,但总是有人问我用了哪些部件(尤其是那些细长的以太网网线……每个人都问这个!),所以这里列出了部件清单:
计算刀片服务器开发版
计算刀片服务器标准风扇单元
计算刀片服务器10英寸3D打印机架
树莓派CM5 16GB(CM5016000)
GLOTRENDS铝制CM5散热片
Patriot P300 256GB NVMe SSD 10件装
GigaPlus 10英寸机架安装3D打印支架
Monoprice Cat6A SlimRun 6英寸Cat6跳线(10件装)
DeskPi RackMate TT
如果你想查看具体产品内容,可以通过原文进行了解:
https://www.jeffgeerling.com/blog/2025/i-regret-building-3000-pi-ai-cluster
官方网站:https://edatec.cn/zh/cm0
淘宝店铺:https://edatec.taobao.com/
全面升级!树莓派 CM0NANO 单板计算机发布!
1510