artykuły

HotChips 2019: przegląd sprzętowych akceleratorów SI

8
4 września 2019, 15:21 Mateusz Brzostek

Cerebras

Firma Cerebras przedstawiła Wafer Scale Engine – największy jednolity obliczeniowy układ scalony w historii świata. Ma długość i szerokość ok. 21,5 cm, czyli nieco więcej, niż szerokość kartki A4.

To największy prostokąt, jaki mieści się na standardowym waflu krzemowym o średnicy 300 mm:

Jest produkowany w procesie technologicznym klasy 16 nm w fabrykach TSMC na Tajwanie i zawiera ok. 1,2 biliona tranzystorów (1012 – polski, nie amerykański bilion).

Niedawno – w artykule „Jak duży może być układ krzemowy?” – wyjaśnialiśmy, jakie ograniczenia techniczne powodują, że produkuje się procesorów większych niż ok. 800 mm². Wafer Scale Engine (dalej „WSE”) pokonuje je dzięki specjalnej architekturze i dostosowanemu procesowi produkcji.

Najważniejszym ograniczeniem w wielkości układów krzemowych jest technika naświetlania, która pozwala rzucić na powierzchnię wafla ostry obraz o wielkości 26 × 33 mm. WSE składa się z 84 identycznych segmentów – jakby 84 obrazów jednego jądra. Do naświetlania każdego z nich używa się tego samego zestawu masek, więc czas produkcji i koszt masek są takie same, jak w przypadku typowych układów. Inne układy krzemowe zostają pocięte na pojedyncze części wzdłuż granic naświetlonych obszarów, ale WSE pozostaje w jednej części.

W typowej produkcji osobno naświetlane segmenty są od siebie zupełnie oddzielne. W WSE obszary naświetlane podczas produkcji najwyższych warstw, tych z metalowymi połączeniami o stosunkowo dużej skali, zachodzą na siebie częściowo. Choć stepper – maszyna do naświetlania – potrafi „zgrać ze sobą” sąsiednie rysunki z dokładnością do kilku nanometrów, połączenia w najwyższej warstwie metalowej mają szerokość ok. 700 nm. W takiej skali różnica kilku nanometrów nie ma znaczenia i pozwala połączyć osobne segmenty bez problemu.

Każdy z 84 segmentów WSE składa się z 4880 identycznych elementów obliczeniowych, z których około 300 jest zapasowych, niewymaganych do funkcjonowania całego układu. To konieczne, żeby zapewnić akceptowalny uzysk, czyli żeby jak największa część wyprodukowanych układów była sprawna. Elementów obliczeniowych oraz połączeń jest odpowiednio więcej, żeby można było zastąpić i ominąć niesprawne części układu.

Cały WSE zawiera ok. 400 tysięcy elementów obliczeniowych (producent jeszcze nie zdecydował, ile będzie włączonych i dostępnych w wersji handlowej) i jest jednolity z perspektywy programowania.

Każdy element obliczeniowy składa się z systemu komunikacji z sąsiednimi elementami, dekodera instrukcji, niewielkiej ilości pamięci (ok. 4 MB) i jednostek wykonawczych wyspecjalizowanych w dodawaniu połączonym z mnożeniem (FMAC, fused multiply-accumulate), czyli operacji najczęściej wykorzystywanej w symulacjach SI. Zestaw instrukcji pozwala na obliczenia na trójwymiarowych macierzach – mnożenie trójwymiarowej macierzy przez dwuwymiarową połączone z dodawaniem pojedynczej wartości może być jedną instrukcją.

Architektura dataflow

WSE ma architekturę typu dataflow – to koncepcja maszyny obliczeniowej pochodząca sprzed ponad 40 lat, w której przebieg programu nie jest odrębny od obrabianych danych ani sterowany centralnie. Nie ma jednego sekwencyjnego strumienia instrukcji ani licznika programu, jak w architekturach von Neumanna. Zamiast tego dane i instrukcje są połączone w porcje, które przesuwają się przez kolejne elementy obliczeniowe. Każde kolejne obliczenie jest wykonywane wtedy, kiedy potrzebne do niego dane stają się dostępne. Ponieważ nie ma sekwencyjnego strumienia instrukcji, a realizacja pętli i skoków nie jest łatwa, maszyny dataflow służą głównie do obliczeń o znanym i łatwym do przewidzenia przebiegu, które można wykonać równolegle i niezależnie na bardzo wielu porcjach danych. Jak wszystkie maszyny o architekturze dataflow, WSE nie ma globalnej pamięci: wszystkie dane potrzebne do obliczeń przesuwają się pomiędzy elementami obliczeniowymi razem z instrukcjami, a każdy element obliczeniowy ma sporo bardzo szybkiej (1 cykl opóźnienia) lokalnej pamięci.

Maszyny dataflow pracują w dużej skali asynchronicznie: choć każdy element obliczeniowy ma ustalone na stałe taktowanie, czas wykonania różnych obliczeń może być różny, a przepływ danych i kolejne kroki obliczeń odbywają się w takim tempie, w jakim są dostarczane pakiety danych i instrukcji.

Ogromna liczba elementów obliczeniowych, z których każdy ma własną lokalną pamięć (w sumie ok. 18 GB pamięci w całym WSE!) powodują, że WSE jest dobrze przystosowany do pracy nad całą siecią neuronową jednocześnie. 400 tysięcy elementów obliczeniowych zostaje podzielone na grupy, z których każda odpowiada jednej warstwie sieci. Dane „podróżują” w ramach WSE zgodnie z topologią sieci, jak na poglądowej ilustracji poniżej (w rzeczywistości regiony nie muszą być prostokątne).

Chłodzenie, zasilanie, obudowa, interfejsy wejścia/wyjścia

Zamontowanie, dostarczenie zasilania i danych oraz chłodzenie tak wielkiego układu nastręczają spore trudności. Ponieważ krzem i płyty drukowane mają różne współczynniki rozszerzalności cieplnej, układ nie może być sztywno przymocowany do laminatu w ten sam sposób, co zwykłe stosunkowo małe jądra krzemowe. Z pomocą TSMC opracowano specjalną warstwę łączącą jądro WSE z podłożem – niestety nie wyjaśniono, jaka jest jej natura, ani czemu zawdzięcza swoją elastyczność. Raczej nie chodzi o żaden jednolity materiał o anizotropowej przewodności prądu, bo te nie pozwalają na wytworzenie połączeń tak dużej gęstości i przewodności dość dobrej, żeby dostarczyć zasilanie do dużego układu. Sądzimy, że łącznik jest jakimś rodzajem kompozytowego, mało kruchego materiału.

Dostarczenie zasilania do układu o tak dużej powierzchni wymaga wielu równoległych połączeń przechodzących przez płytę, na której jest zamontowany układ. Zwykłe równoległe ścieżki przebiegające od położonego obok zasilacza byłyby zbyt długie i zbyt cienkie, żeby zapewnić wysoką jakość zasilania w centralnej strefie układu. Podobnie rozwiązano problem chłodzenia: cały WSE jest pokryty bardzo dużym blokiem wodnym podzielonym na niezależne regiony, do których zapewniono osobne dopływy zimnej wody.

Pakowanie i montaż układu chłodzenia odbywają się w fabrykach TSMC, w pomieszczeniach wyposażonych zgodnie z życzeniami Cerebras. WSE nie będzie sprzedawany osobno, ale razem z płytą główną, systemem chłodzenia, osobnymi układami wejścia/wyjścia (o których jeszcze nic nie ujawniono) jako zewnętrzny akcelerator SI podłączany przez sieć. Cerebras będzie też dostarczać narzędzia do programowania i kompilator przekształcający sieci neuronowe na graf odpowiadający architekturze dataflow i topologii WSE.

Jak twierdzi producent, dostarczone przez potencjalnych klientów zadania obliczeniowe zostały już przeniesione na WSE i maszyna sprawdza się doskonale. Nie ustalono jeszcze kiedy ten akcelerator trafi do sprzedaży, jakie będzie miał taktowanie ani ile z ponad 400 tysięcy elementów obliczeniowych będzie włączonych.

4