Zespoly modelowe i sprzetowe pracuja wspolnie: architektura modelu (np. mechanizm uwagi, wzorce dostepu do pamieci, precyzja liczb) jest dobierana pod mozliwosci sprzetu, a jednoczesnie sprzet (jednostki obliczeniowe, pamiec, interconnect, obslugiwane formaty) jest projektowany pod profil docelowych modeli. Warstwa posrednia - kompilatory i kernele (np. XLA, wyspecjalizowane kernele attention) - tlumaczy model na efektywne wykonanie. Iteracyjne sprzezenie zwrotne (profilowanie, benchmarki) pozwala dostrajac oba komponenty do siebie na przestrzeni kolejnych generacji.
Model zaprojektowany bez uwzglednienia sprzetu moze byc nieefektywny (np. ograniczony przepustowoscia pamieci), a akcelerator zaprojektowany bez znajomosci docelowych modeli - niedopasowany. Osobna optymalizacja obu warstw pozostawia duzo wydajnosci 'na stole'.
Wzorce obliczen i dostepu do pamieci (np. uwaga, MoE, precyzja) dobierane pod sprzet.
Jednostki obliczeniowe, pamiec, interconnect i formaty projektowane pod docelowe modele.
Kompilatory (np. XLA) i wyspecjalizowane kernele tlumaczace model na efektywne wykonanie na sprzecie.
Oficjalna
Profilowanie i benchmarki pozwalajace iteracyjnie dostrajac model i sprzet do siebie.
Oficjalna
Model zbyt scisle zoptymalizowany pod konkretny akcelerator moze slabo dzialac na innym.
Co-design wymaga scislej wspolpracy zespolow modelowych i sprzetowych o roznych cyklach i kompetencjach.
Google Brain wprowadzil format bfloat16 wspolnie z TPU, pokazujac korzysci z projektowania precyzji razem ze sprzetem.
FlashAttention zaprojektowano pod hierarchie pamieci GPU (SRAM/HBM), znaczaco przyspieszajac uwage - sztandarowy przyklad co-designu model-sprzet.
Hopper wprowadzil sprzetowe wsparcie FP8 i Transformer Engine dopasowane do modeli typu transformer.