GPU Cluster für Machine Learning/KI mit Consumer HW - wie geht das?

nutrix

Captain
Registriert
Jan. 2023
Beiträge
3.898
Es gibt eine Messung für als GPU-Benchmarks für LLM
https://github.com/XiongjieDai/GPU-Benchmarks-on-LLM-Inference
Hier sieht man, daß einer RTX 4090 bei 70B Q4_K_M das RAM ausgeht, aber einer M3 Max 40 GPU mit 64 GB dank Unified Memory noch eine Bearbeitung möglich ist. Mit 2 x RTX 4090 24GB gehts dann auch wieder.

Frage:
NVLink steht ja nur den Profimodellen der Quadro/AXXX Reihe zur Verfügung. Wie macht man es dann rein praktisch, daß sich bei Consumer HW wie der RTX 4090 mehrere GPUs zusammenschalten kann, so daß sie für größere Modelle mehr RAM und Leistung haben? Wird das dann per CUDA und Software gelöst? Geht das dann auch mit kleineren GPUs wie einer 4060TI mit 16 GB? Wenn man beispielsweise mehr RAM benötigt, und hier dann 3x4060 TI 16 GB = 48 GB und mehr als beispielsweise nur eine RTX 4090 hätte?

Hintergrund, ich überlege gerade, auf einem X299 MB mehrere GPUs für Testen für LLMs verbauen. RAM ist ja für sowsa immer kritisch.

PS: Ja, mir ist natürlich bewußt, daß es Profi-GPUs mit über 8000 € pro Stück mit mehr RAM gibt. Aber das soll jetzt hier nicht Gegenstand der Diskussion sein. Frage ist, was ist mit Consumer HW hier möglich?
 
Ollama sollte alle GPUs nutzen, die verbaut und sichtbar sind.
Ergänzung ()

Hier mit 4x 3090.
 
  • Gefällt mir
Reaktionen: nutrix
Ok, einfach ein paar Toolkits und Docker installieren und laufen lassen, und das skaliert dann automatisch? Cool.
 
Selbst habe ich es noch nicht gemacht. Aber ja, so läuft es.
 
Wäre jetzt interessant, ob das mit unterschiedlichen GPUs genauso skalieren würde. Ich werde mal meine 4090 und 3060 verbauen und schauen, was passiert, wenn ich das zum Laufen bekomme.
 
Spannendes Thema. Berichte gerne über deine Ergebnisse. Was mir aber direkt einfällt:
Wenn du eh schon eine RTX 4090 hast, wäre es doch aber billiger eine zweite 4090 zu kaufen, statt drei neuen RTX 4070 Ti Super. Damit hättest du in Summe ja auch 48GB VRAM + mehr TFLOPS, eventuell geringeren Overhead und könntest das Ganze ggf. mit einer dritten 4090 zukünftig noch deutlich größer skalieren, falls gewünscht.
 
Das sind 2 verschiedene Rechner, und die 4090 ist in meinem Gaming-Rechner drin. Der andere hat nur eine olle 960, und da überlege ich eben 3x4060 TI mit 16 GB einzubauen.
 
@nutrix Wo möchtest du das dann verbauen?
Ergänzung ()

Es gibt noch so was: https://github.com/exo-explore/exo

Kann aber hierzu nichts sagen.
Ergänzung ()

nutrix schrieb:
Hintergrund, ich überlege gerade, auf einem X299 MB mehrere GPUs für Testen für LLMs verbauen. RAM ist ja für sowsa immer kritisch.
Ach hier steht das MB.

An sich die Frage wäre, was genau dein Ziel ist.
 
Zuletzt bearbeitet:
  • Gefällt mir
Reaktionen: nutrix und JumpingCat
oicfar schrieb:

Da werden aber nur die Stages auf mehrere Geräte gesplittet. Man umgeht damit das Problem das eigentlich das gesamte Modell einen RAM geladen werden muss. Es wird nichts parallel sondern alles sequentiell ausgeführt. Dazu kommt zusätzlich die Verzögerung wenn die aktuelle Anfrage bei der Stage das Geräte wechselt.

exo läuft bei mir weder auf einem Raspberry noch unter Linux auf nur einem Knoten richtig stabil. Es gibt Tickets wie z.B. https://github.com/exo-explore/exo/issues/11 oder https://github.com/exo-explore/exo/issues/483 oder https://github.com/exo-explore/exo/issues/378 .

Einfach mehrere GPUs zu nutzen bringt wenig alles in einem gemeinsamen RAM liegen sollte.

Ein paar Links zum Thema:

Korrigiert mich gerne wenn da was falsches steht ;-)
 
  • Gefällt mir
Reaktionen: nutrix
oicfar schrieb:
An sich die Frage wäre, was genau dein Ziel ist.
Lokale LLM aufbauen, und ich möchte gerne auch mal Trainieren mit eigenen Daten testen.
Ergänzung ()

oicfar schrieb:
Ok, performancetechnisch eher ein Reinfall, wenn ich die Daten richtig interpretiere. Aber er hat hier kein großes Modell mal testweise reingeladen für das VRAM. Dabei habe ich dann das hier gefunden:
Das wäre natürlich auch mal eine gute Idee, in einen Mini-PC mehr RAM einbauen und dann die iGPU mit AUTO sich das viele RAM holen lassen. Gut, über Geschwindigkeit brauchen wir nicht reden, aber ein 70B LLM hier zu schaffen ist schon interessant.
Update
Hier hat er das 70B Modell mit 4060TIs 16 GBs gemacht
 
Zuletzt bearbeitet:
Einfach bestellen, der ist in paar Tagen da 😀.

Eine zweistellige Parameteranzahl läuft gefühlt zähflüssig. Ein Modell ab 30b ist dann wirklich langsam.

Was aber möglich ist: Bei AMD per rockm + ttm kann die iGPU sich beliebig viel RAM reservieren. Dann läuft das LLM im RAM aber die Auswertung läuft die iGPU.

Bei dem AMD ist CPU ähnlich schnell wie iGPU, daher ist es egal wo das Modell läuft. Die Geschwindigkeit bei einer GPU ist auch schneller weil dort der RAM schneller ist als der RAM an der CPU.

Bei dem entsprechenden AMD MiniPC ist der OcuLink ganz gut. Aber dann könnte man auch einen normalen Tower kaufen, das dürfte in Summe auch nicht mehr kosten.
 
Zurück
Oben