- Un cluster IA d’environ 3 000 dollars a été monté à l’aide de 10 Raspberry Pi Compute Blade et de modules CM5, mais les performances et le rapport qualité-prix se sont révélés inférieurs aux attentes
- Dans les benchmarks HPC, il a obtenu une hausse de performances de 10x (325 Gflops) par rapport à un seul Pi, mais il s’est montré 4 fois plus lent qu’un cluster de bureau Framework
- Lors des tests IA, l’accélération GPU n’étant pas prise en charge, il a fallu s’appuyer sur une inférence sur CPU, et avec le modèle Llama 70B, la génération de tokens plafonnait à 0,85 t/s, un niveau très faible
- En revanche, ses atouts en faible consommation, faible bruit et forte densité peuvent lui donner un intérêt pour des usages spécifiques comme des tâches de CI, des déploiements edge à fortes contraintes de sécurité, ou des nœuds relais Tor
- Globalement, cela reste intéressant pour l’apprentissage et l’expérimentation, mais le projet souligne qu’il n’est pas adapté aux usages IA/HPC généraux et met en évidence les limites des serveurs blade
Introduction et vue d’ensemble du cluster
- Les 10 Compute Blade ont été commandés il y a deux ans, en avril 2023, et ne sont arrivés que récemment, permettant enfin d’achever le cluster
- Entre-temps, Raspberry Pi est passé du CM4 au CM5, ce qui a conduit à commander 10 modules 16GB CM5 Lite supplémentaires, pour atteindre un total de 160GB de mémoire
- Le coût total s’est élevé à 3 000 dollars, frais de port inclus, ce qui en faisait le plus grand cluster Pi personnel réalisé par l’auteur
- Il existe aussi le Xerxes Pi parmi les ordinateurs blade basés sur Pi, mais son lancement et sa livraison risquent fortement d’être retardés, et l’auteur l’a tout de même soutenu par curiosité
- L’auteur voulait savoir si un cluster Pi avait encore un intérêt aujourd’hui, et cherchait à vérifier, en le comparant à un cluster de bureau Framework sur les plans des performances, de la densité et de l’efficacité, si l’investissement en valait la peine
Construction du cluster et travail itératif
- Le cluster a dû être réassemblé trois fois à cause de problèmes de compatibilité SSD et de chauffe
- 1er réassemblage : plusieurs SSD NVMe ont été testés, mais des problèmes de compatibilité et de fiabilité sont apparus ; ils ont tous été remplacés par des SSD Patriot P300, ce qui a amélioré la stabilité
- 2e réassemblage : un throttling dû à la chaleur est survenu ; le problème de gestion thermique a été résolu en fixant solidement les dissipateurs thermiques
Résultats des benchmarks HPC (High Performance Computing)
- Les performances de supercalcul ont été mesurées avec le benchmark High Performance Linpack (Top500)
- Avant l’installation des dissipateurs, les performances étaient de 275 Gflops ; elles sont ensuite montées jusqu’à 325 Gflops
- Cela correspond à des performances 10 fois supérieures à celles d’un nœud CM5 unique intégré de 8GB, pour une consommation de 130W
- Toutefois, comparé à un cluster Framework Desktop à 4 nœuds coûtant 8 000 dollars, le cluster Pi reste 4 fois plus lent
- En efficacité énergétique (Gflops/W), il garde un léger avantage, mais il reste inférieur au cluster Framework en performances par dollar
- Ce n’est pas une solution adaptée au HPC à grande échelle
Test d’usage en IA et limites
- Avec ses 160GB de mémoire, l’auteur espérait en faire un cluster IA, mais l’iGPU du Pi 5 ne permet pas l’accélération via Vulkan
- L’inférence IA est donc limitée au CPU, et les limites de l’Arm Cortex A76 dégradent fortement les performances
- Pour le modèle Llama 3.2:3B, un seul nœud ne traite qu’environ 6 tokens par seconde, ce qui reste relativement lent
- Même en utilisant l’ensemble des nœuds pour distribuer un grand modèle (Llama 3.3:70B), le débit reste bloqué entre 0,28 et 0,85 token/s (au moins 5 à 25 fois plus lent que le cluster Framework)
- D’autres outils d’IA distribuée comme Exo ou distributed-llama sont eux aussi trop instables ou insuffisants en performances pour un usage réel
- Globalement, il n’est pas adapté aux charges de travail IA
Conclusion et propositions d’usages réalistes
- Le cluster blade Pi est un choix peu compétitif en performances et en rapport qualité-prix, et il est difficile de le recommander en dehors d’un usage d’apprentissage, d’expérimentation ou de loisir
- En revanche, il présente des avantages en matière de facilité d’administration, de silence, de compacité, ainsi que de densité de nœuds et d’isolation
- En pratique, il peut être envisagé de façon limitée pour des tâches de CI (intégration continue) ou des environnements nécessitant une forte isolation, comme la haute sécurité ou l’edge computing
- Chez Unredacted Labs, il est utilisé pour des environnements à grand nombre de nœuds, comme des relais de sortie Tor, afin de maximiser l’efficacité et la densité des nœuds
- Mais pour la plupart des utilisateurs, il existe, à coût comparable, d’autres alternatives offrant de meilleures performances et une meilleure efficacité
- Le fabricant Gateworks a lui aussi vendu pendant un temps le GBlade industriel, sans parvenir à un succès commercial, avant son arrêt
- En matière de maintenance et de praticité, cela reste plus simple que l’exploitation d’un grand cluster, mais sans raison particulière, il est difficile de recommander ce type d’environnement
Liste des composants utilisés
- (L’auteur a présenté séparément la liste des composants utilisés, tout en précisant qu’il ne recommande pas de reproduire telle quelle une configuration similaire)
5 commentaires
À propos de Vulkan, pour être précis, il faut plutôt dire que « l’API Vulkan prise en charge par l’iGPU du Pi 5 n’est pas encore prise en charge dans llama.cpp ». Je suis aussi curieux de savoir quelles performances on aurait obtenues si cela avait été pris en charge.
Avis Hacker News
Pour ceux qui s’intéressent aux systèmes distribués, je recommande vivement de prendre une machine unique avec un CPU AMD moderne à 16 cœurs et d’y lancer 8 machines virtuelles. Il suffit d’allouer 4 hyperthreads à chaque VM, ainsi qu’1/8 de la RAM totale, puis de créer un réseau virtuel dans un logiciel de virtualisation comme Proxmox pour retrouver une vraie expérience de cluster. On peut même tester la résilience en arrêtant une VM à la fois d’un simple clic, puis en la restaurant. Cette approche est bien supérieure à un cluster de Pi en termes de perf/W et de praticité. Pas de stress lié à l’assemblage des composants : un CPU, une carte mère, un SSD m.2 et deux barrettes de RAM suffisent. Bien sûr, faire tourner directement les charges sur une machine à beaucoup de cœurs sans virtualisation donne le meilleur perf/W, mais un point souvent négligé dans les benchmarks, c’est la consommation en veille. Si le cluster reste allumé en permanence pour un usage occasionnel, c’est aussi très important
Je ne pense pas qu’il faille autant de puissance CPU. Un vieux quad-core suffit largement
Dans le même ordre d’idées, je suis surpris que faire tourner d’anciens programmes MPI sur quelque chose comme une station de travail AMD multi-chip n’ait pas pris plus d’ampleur
En réalité, je doute qu’il faille autant de puissance CPU. Pour s’exercer aux systèmes distribués, même avec un vieux PC Linux ou un seul Raspberry Pi, il suffit d’installer Erlang pour monter quelques nœuds et expérimenter
J’avais trouvé dommage, lors de la grande pénurie de Raspberry Pi il y a quelques années, de voir autant de gens essayer à tout prix d’en obtenir pour fabriquer ces clusters gadget. Les Pi étaient conçus à l’origine pour l’éducation, mais en pratique j’ai l’impression qu’ils sont souvent gaspillés. Moi, je fais tourner un « cluster » K8s avec xcp-ng, alors qu’on peut faire encore plus simple. Docker Machine permettait aussi de lancer plusieurs hôtes en une seule ligne. Le projet semble abandonné aujourd’hui, mais avec Docker Swarm on peut encore facilement ajuster l’échelle des services sans hyperviseur
J’ai utilisé cette méthode pour m’entraîner à Postgres hot standby et aux read replicas. J’ai aussi appris Hadoop et Cassandra de cette façon. Le fait de pouvoir parler d’expérience concrète en configuration et en simulation de reprise de ce type de systèmes m’a permis de décrocher un nouveau poste avec un salaire doublé, voire triplé. Je recommande vivement ce genre de pratique à tout développeur ayant déjà un minimum de niveau pro. C’est excellent pour franchir un cap dans sa carrière
Cela m’a rappelé la session de la NormConf « Just use one big machine for model training and inference. ». Je recommande la vidéo associée. Et l’ancien article devenu classique « Scalability! But at what COST? » (lien) est aussi vraiment passionnant. En résumé, pour les performances du traitement parallèle, il y a énormément de choses à prendre en compte au-delà de la loi d’Amdahl. Les systèmes scale-out exigent tout un tas de travail supplémentaire absent d’un nœud unique. En réalité, le multithreading lui aussi ajoute beaucoup d’opérations qui n’existent pas dans du code séquentiel. Le vrai secret de la performance, c’est que « l’opération la plus rapide est celle qu’on n’exécute pas »
Le premier benchmark que j’ai lancé était celui du top500 High Performance Linpack pour clusters. J’y tiens beaucoup parce que c’est la méthode traditionnelle de mesure des performances des supercalculateurs. Après avoir réglé les problèmes thermiques, j’obtenais environ 130 W pour 325 Gflops. Comme la liste du site top500 remonte à 1993, j’espérais qu’un cluster de Pi puisse se glisser dans cette histoire absurde des années 70, mais c’est finalement assez récent. En 1993 (n°1 à 131 Gflop/s, n°10 à 15,24 Gflop/s) jusqu’en 1997 (n°1 à 1,830,40, n°10 à 326,4), puis il semble sortir du top500 vers 2002~2003. Comme les chiffres sont basés sur Rpeak, il faudrait réordonner selon Rmax pour être exact, mais c’est trop de travail, donc je laisse tomber. Pour un cluster gadget de ce genre, je trouve qu’il s’en sort plutôt bien. À force d’entendre des blagues du style « l’Apple Watch est plus puissante que l’ordinateur d’Apollo », je pensais qu’on pourrait remonter encore plus loin
Les RPI ont toujours eu des CPU médiocres. L’idée des Pi, dès le départ, c’était d’utiliser des puces Broadcom bon marché sous le prétexte de « l’éducation ». C’est fait pour que des enfants apprennent les circuits en faisant clignoter des LED avec un Raspberry Pi. Imaginer faire du calcul haute performance avec un cluster de Pi n’avait aucun sens dès le début
Il ne faut pas prendre l’article trop au pied de la lettre. L’auteur est un influenceur tech à succès, qui gagne de l’argent en achetant du matériel cher, en le montrant, puis en se plaignant du prix payé. Sa vision économique n’a pas besoin de correspondre à la mienne
C’est évident, mais le vrai point, c’est que si vous voulez faire quelque chose aujourd’hui, il y a de fortes chances que la réponse ne soit pas Raspberry Pi. Le rapport prix/spécifications n’est plus du tout bon, et le marché stagne
Je trouve quand même les vidéos de Jeff rafraîchissantes. Beaucoup d’autres YouTubers tournent en boucle sur des comparatifs de « temps de rendu pour des vidéos YouTube, fidélité des couleurs, qualité caméra, qualité audio », alors que lui fait autre chose
J’aimerais bien voir Dan Luu se reconvertir vers ce genre de contenu
Toute personne un peu compétente sait déjà qu’un seul GPU multiplie la puissance de calcul par dix
Le titre m’a semblé un peu racoleur, mais on dirait bien que l’auteur a réellement pris du plaisir, autant dans l’expérimentation que dans l’assemblage du matériel. En revanche, la phrase d’ouverture « J’ai commandé un lot de 10 Compute Blades en avril 2023 et il vient juste d’arriver » est assez triste
Si les clusters de Pi avaient réellement un bon rapport coût/performance, les datacenters seraient déjà remplis de Pi
C’est un peu comme la blague d’économistes sur « pourquoi personne ne ramasse le billet de 20 dollars par terre ». L’efficacité parfaite du marché finit peut-être par s’imposer à long terme, mais à court terme, ce sont surtout les habitudes et l’intuition empirique qui dominent
Il ne faut pas oublier qu’on a déjà dit la même chose à propos de la PlayStation
Les clusters de Pi ne semblent vraiment compétitifs sur les prix pour... absolument aucun usage
Une entreprise appelée Mythic Beasts propose un service de location de serveurs rpi (lien). Il existe clairement quelques usages dans des marchés très de niche
Si les supercalculateurs utilisent des GPU depuis 10 ans, ce n’est pas pour rien. Les GPU sont bien plus efficaces. Si vous avez besoin de calcul parallèle en 32 bits, il suffit de prendre un GPU grand public ; si vous avez besoin de 64 bits, il suffit d’acheter un GPU prosumer comme le RTX 6000 Pro et de l’installer. Aujourd’hui, plus personne ne construit de cluster CPU
Malheureusement, même le RTX 6000 Pro ne donne que 2 TFLOPS en double précision, soit 64 fois moins qu’en simple précision. Un EPYC 9755 peut atteindre environ 10 TFLOPS, avec une consommation plus faible. Même problème pour l’A100. Pour du calcul HPC en DP à l’échelle d’un hobby, de vieilles cartes AMD peuvent être un meilleur choix. Aujourd’hui, AMD comme NVIDIA ont bien compris que les clients scientifiques sont prêts à payer très cher pour de hautes performances en précision élevée
Le supercalculateur El Capitan utilise lui aussi des CPU AMD (avec GPU intégré) et figure parmi les tout premiers du classement récent. Frontier suit une configuration similaire. Des GPU séparés avec leur propre bus de données et leur mémoire dédiée ne sont pas forcément la forme optimale
Un cluster de Pi, en réalité, ce n’est pas fait pour la haute performance, mais pour le plaisir d’un hobby un peu excentrique. Presque personne n’en attend un vrai bon rapport coût/efficacité. On dirait surtout que les titres accrocheurs façon YouTube ont contaminé les blogs. Si l’objectif réel est d’apprendre les clusters Linux, il est bien plus économique d’installer un hyperviseur sur un CPU desktop et de créer des VM. Sauf si le but est de profiter du charme de brancher plein de câbles, cette approche est de toute façon bien plus efficace en utilisation des ressources système et en flexibilité
Si l’on veut vraiment pratiquer de façon rentable, autant utiliser le cloud. En général, on perd l’intérêt assez vite une fois les essais terminés, donc il y a de fortes chances que la facture cloud s’arrête avant d’atteindre le prix d’une machine desktop
J’ai fait le calcul : acheter un Mac Studio avec le dernier processeur Mx Ultra et la mémoire maximale est la manière la plus rentable d’expérimenter des modèles à plus de 100B paramètres
En informatique traditionnelle, on perd surtout en espace, mais on gagne sur la consommation électrique et le coût. En IA, en revanche, il n’a pas été possible d’utiliser des GPU, et le logiciel de clustering de llama.cpp est encore trop immature pour tirer des conclusions solides. Cela pourrait changer si le logiciel progresse
Je pense qu’on peut arriver à une conclusion claire ici même sans bagage technique. Il suffit de voir que tout le monde utilise des GPU pour l’IA et que l’action NVIDIA s’est envolée. Je me demande vraiment si l’OP croyait que le monde n’avait simplement pas encore compris qu’il suffisait de brancher des Raspberry Pi
Certains produits Raspberry Pi sont vendus à perte, ce qui peut aussi entretenir l’idée trompeuse qu’ils « pourraient être compétitifs sur le prix »
J’ai apprécié la remarque de l’auteur : « Si vous êtes sur le blog, c’est probablement que vous préférez lire plutôt que regarder la vidéo, donc je vais aller droit au but »
Il regrette après s’être tellement amusé avec, lol. C’est pas très différent de dire qu’un jeu n’est pas amusant alors qu’on y a passé plus de 1�0 heures.
L’analogie est parfaite mdr
hahahahahaha