Klastrowanie NVIDIA DGX Spark + M3 Ultra Mac Studio dla 4x szybszego wnioskowania LLM. DGX Spark: 128GB @ 273GB/s, 100 TFLOPS (fp16), 3,999 $ M3 Ultra: 256GB @ 819GB/s, 26 TFLOPS (fp16), 5,599 $ DGX Spark ma 3x mniejszą przepustowość pamięci niż M3 Ultra, ale 4x więcej FLOPS. Uruchamiając obliczeniowo ograniczone wypełnienie na DGX Spark, ograniczone pamięciowo dekodowanie na M3 Ultra i przesyłając pamięć podręczną KV przez 10GbE, jesteśmy w stanie uzyskać najlepsze z obu sprzętów z ogromnymi przyspieszeniami. Krótka wyjaśnienie w tym wątku i link do pełnego wpisu na blogu poniżej.
Wnioskowanie LLM składa się z etapu wstępnego i dekodowania. Wstępne przetwarzanie przetwarza zapytanie, budując pamięć podręczną KV. Jest to proces ograniczony obliczeniami, więc staje się szybszy przy większej liczbie FLOPS. Dekodowanie odczytuje pamięć podręczną KV i generuje tokeny jeden po drugim. Jest to proces ograniczony pamięcią, więc staje się szybszy przy większej przepustowości pamięci.
Możemy uruchomić te dwa etapy na różnych urządzeniach: Prefill: DGX Spark (urządzenie o wysokiej mocy obliczeniowej, 4x moc obliczeniowa) Decode: M3 Ultra (urządzenie o wysokiej przepustowości pamięci, 3x przepustowość pamięci) Jednak teraz musimy przesłać pamięć podręczną KV przez sieć (10GbE). To wprowadza opóźnienie.
Jednak pamięć podręczna KV jest tworzona dla każdej warstwy transformatora. Wysyłając pamięć podręczną KV każdej warstwy po jej obliczeniu, nakładamy komunikację na obliczenia. Strumieniujemy pamięć podręczną KV i ukrywamy opóźnienie sieciowe. Osiągamy 4-krotne przyspieszenie w prefill i 3-krotne w dekodowaniu, przy 0 opóźnieniu sieciowym.
Pełny post na blogu i więcej szczegółów na temat EXO 1.0: Dziękujemy @NVIDIA za wczesny dostęp do dwóch DGX Sparks. #SparkSomethingBig
439,63K