Présentation
Les GPU déclassés d'entreprise NVIDIA sont l'une des dernières sources de VRAM inactif. Les prix de ces cartes sont désormais très bas, avec un K80 de 24 Go de GDDR5 à 60 $, un P100-16 Go à environ 75 $ et un V100-16 Go à moins de 200 $. Il est important de comprendre si nous pouvons utiliser ces cartes largement disponibles dans l'ère moderne.
Contexte technique
Le but de ce projet de benchmarking est de créer une liste de matériel pour un nœud GPU 4U peu coûteux. Avec le bon refroidisseur, ces cartes peuvent être installées de manière beaucoup plus dense que leurs homologues grand public. Il est facile de mettre trois GPU et une carte réseau 10 Go dans un boîtier ATX standard.
Le coût des CPU Xeon E5-* Intel et de leurs périphériques associés est désormais si bas qu'il ne peut être ignoré. 40 $ suffisent pour obtenir 56 threads à 3,50 GHz de fréquence d'horloge avec un E5-2690. Le prix courant est de 200 $ pour le Supermicro X10DRG-Q avec ses deux sockets de processeur et sept emplacements PCIe.
Fonctionnement et architecture
L'outil de benchmarking lui-même est publié sur GitHub et une description détaillée des tests est disponible. L'objectif de l'utilitaire est de pouvoir benchmarker les GPU Tesla, les serveurs de type « GPU Box ». La théorie de fonctionnement de la suite de benchmarking est la suivante : les benchmarks sont définis comme des fichiers Docker et exécutés comme des conteneurs Docker pour la compatibilité et la portabilité.
docker run -it --rm --gpus all nvidia/cuda:11.0-base-ubuntu20.04 nvidia-smi
Implications et limites
Les résultats des tests montrent que la performance globale de Tesla V100-16 Go est comparable à celle de T40 dans tous les tests. V100 est significativement plus ancien et moins cher que T40. Il y a également une augmentation importante de la performance avec Volta par rapport aux gains incrémentiels des générations précédentes.
Les tests de mise à l'échelle montrent que la performance augmente avec le nombre de cartes ajoutées au système, mais avec des rendements décroissants à mesure que la charge de communication augmente. Cependant, les résultats montrent que le débit LLM reste le même lorsque plusieurs GPU sont ajoutés, ce qui suggère un problème de configuration de llama.cpp.