artykuły

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

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

Większość tych akceleratorów to coś, czego używają wielkie firmy w swoich centrach danych. Niektóre są wbudowane w jakieś urządzenie, którego używa typowy użytkownik, ale nie są czymś, co możemy wymienić albo zmodernizować w swoim komputerze lub telefonie. Czemu zatem miałoby to nas interesować?

Spis treści

Co jest interesującego w akceleratorach SI?

Nawet jeśli nie wiecie wiele o wszystkim, co dziś modnie jest nazywać „sztuczną inteligencją” (nietrafność tego sloganu na razie zignorujmy), to polecam przynajmniej rozejrzeć się po kolejnych stronach. Tematy podejmowane na konferencji HotChips odzwierciedlają to, czym projektanci układów scalonych najbardziej się interesują w danym roku. W zeszłym roku blisko połowa prelekcji była w mniejszym lub większym stopniu poświęcona SI; w tym roku była to przytłaczająca większość poruszonych tematów. Wystarczy spojrzeć na ogromne, skomplikowane układy, wymagające technik produkcji, na które nie można sobie pozwolić w typowych procesorach czy GPU, żeby wyobrazić sobie ile wysiłku inżynieryjnego i pieniędzy stoi za ich projektowaniem. Najnowsze procesy litograficzne, najbardziej egzotyczne techniki chłodzenia i zasilania i najbardziej nowatorskie architektury służą tu mnóstwu firm i organizacji innych niż AMD, Intel i Nvidia. Pokazujemy to wszystko, żeby Wam uzmysłowić, że najnowsze Core, Ryzen, GeForce albo Radeon są daleko od bycia pępkiem świata mikroelektroniki.

Po co specjalne architektury do akceleracji SI?

Czym się charakteryzuje albo różni akcelerator SI od innych procesorów? Czym się różni akcelerator wnioskowania od sprzętu do uczenia? Po co w ogóle specjalny sprzęt – czy nie można wykorzystać istniejących GPU i CPU do tych zadań?

Uniwersalne maszyny obliczeniowe są łatwo programowalne i można je dostosować do wielu nieznanych z góry zadań. Za to jeśli zadanie jest dobrze poznane i wiemy, ile i jakich obliczeń trzeba wykonać, ile danych przetworzyć, który etap procesu można zoptymalizować – wtedy można zaprojektować akcelerator, który nie jest tak uniwersalny albo tak łatwo programowalny, jak CPU lub GPU, ale znacznie szybszy w zadaniu, do którego został zbudowany.

Akceleratory uczenia mają zwykle bardzo dużo lokalnej pamięci, ponieważ pracują na bardzo dużych zestawach danych - przykładach, na których uczy się sieć. Akceleratory wnioskowania pracują zwykle na jednym obiekcie na raz. Muszą zmieścić w pamięci zwykle tylko wytrenowany na innej maszynie model oraz jedno datum. Na przykład jeśli chodzi o analizę obrazów, sieć uczy się na bardzo wielu obrazach jednocześnie i szuka cech wspólnych między nimi. Za to wnioskowanie dotyczy jednego odrębnego obrazu; każdy kolejny oznacza osobny, niezależny proces wnioskowania.

Uczenie sieci zwykle przeprowadza się wiele razy (w celach testowych), ale tylko w jednym miejscu i tylko dopóty, dopóki algorytm nie osiągnie pożądanej skuteczności. Wyuczoną sieć wykorzystuje się do wnioskowania wiele razy, ale często w różnych miejscach. Ponieważ zwiększanie zestawu danych wykorzystywanych do uczenia oraz zwiększanie złożoności sieci są pożądane, akceleratory uczenia są zwykle łączone po wiele w bardzo duże, równoległe systemy. Prostym przykładem są komputery DGX i HGX Nvidii, w których 8 lub więcej akceleratorów tworzy jeden system pracujący nad jednym zadaniem. Akceleratory wnioskowania - ponieważ wnioskują tylko na podstawie jednego przykładu - mogą być stosunkowo małe i rzadko potrzebują pracować w dużej, równolegle połączonej puli. Jeśli jest ich wiele, to każdy wykonuje odrębne zadanie. Ponieważ akceleratory uczenia często muszą być połączone równolegle i pracować nad jednym problemem, zwykle dużo wysiłku inżynieryjnego wkłada się w danie im bardzo szybkich, wysokoprzepustowych łącz do komunikacji między sobą nawzajem oraz z procesorem centralnym. Akceleratory wnioskowania nie muszą dysponować egzotycznymi formami komunikacji, bo przyjmują stosunkowo niewiele danych, a odsyłają tylko wynik wnioskowania.

Uczenie sieci wymaga dokładnej reprezentacji danych. Najskuteczniejsze jest wykorzystanie formatu FP32, czyli reprezentacja wag i danych w formie 32-bitowych liczb zmiennoprzecinkowych. Z kolei wnioskowanie zwykle można przeprowadzić bez utraty skuteczności nawet na znacznie uproszczonych danych: powszechnie wykorzystuje się liczby stałoprzecinkowe o 16-bitowej lub 8-bitowej precyzji, a prowadzi się też eksperymenty z jeszcze krótszymi typami danych. Dlatego akceleratory uczenia zwykle operują na 32 lub 16-bitowych liczbach zmiennoprzecinkowych. To określa budowę jednostek arytmetycznych oraz potrzebną przepustowość pamięci. Z kolei przy budowie akceleratora wnioskowania można znacznie oszczędzić budując węższe ścieżki danych i węższe, prostsze jednostki arytmetyczne. Obliczenia na liczbach całkowitych są nie tylko prostsze, ale i konsumują mniej energii.

Wreszcie pożądaną wydajność obu typów akceleratorów określa się w różny sposób. Akcelerator uczenia musi być szeroki - żeby duży zestaw danych zmieścił się w pamięci - i zapewnić jak najkrótszy czas od rozpoczęcia pracy do nauczenia sieci. Ponieważ zestaw danych jest ogromny, można go podzielić na różne sposoby, z których każdy jest dobry, o ile zapewnia szybsze wyuczenie sieci (co i tak zawsze trwa stosunkowo długo). W akceleratorze wnioskowania często nie wystarcza równoległość, bo ważny jest czas pomiędzy nadesłaniem danych a otrzymaniem wyniku wnioskowania. Dwa akceleratory mogące zanalizować każdy 1000 obrazów na sekundę nie muszą być sobie równe - lepszy jest ten, który zanalizuje każdy obraz w 1 mikrosekundę, niż ten, który przez 999 mikrosekund nie da żadnego wyniku, a po 1 sekundzie przedstawi wszystkie wyniki na raz.

Wydajność akceleratorów SI – MLPerf

Większość firm i uczelni prezentujących akceleratory SI albo nie podała oczekiwanej wydajności, albo podała liczby nieporównywalne z innymi. Porównanie wydajności akceleratorów SI jest trudne, szczególnie jeśli chodzi o uczenie: prawie każde zastosowanie, jakie chce przyspieszyć potencjalny użytkownik takiego akceleratora, jest specyficzne. Maksymalna teoretyczna wydajność w mnożeniu z dodawaniem, podawana chętnie w postaci TOPS (tensor operations per second) albo FLOPS (floating point operations per second – FMAC jest traktowana jako dwie operacje) ma mało wspólnego z wydajnością w praktycznych zastosowaniach. Zależnie od architektury sieci przesyłanie danych pomiędzy pojemną a szybką pamięcią lub między równoległymi akceleratorami wymaga mniej lub więcej czasu. Rzadkie macierze lub takie o nieregularnych wymiarach często powodują, że spora część jednostek obliczeniowych leży odłogiem. Wreszcie szybka ewolucja i powstawanie nowych technik w tej dziedzinie powodują, że określony dziś benchmark może się stać przestarzały już za pół roku.

Niezależne, standardowe testy wydajności są potrzebne z różnych względów: ułatwiają wybór potencjalnym nabywcom, pokazują stan techniki, który jest podstawą do dalszego rozwoju, pozwalają zaprojektować kolejne akceleratory. Próbę rozwiązania tego problemu podjęło konsorcjum MLPerf, w którym uczestniczy wiele znanych firm i uczelni (całą listę można znaleźć na stronie organizacji). MLPerf działa podobnie jak konsorcjum SPEC: określa zadanie obliczeniowe do wykonania, a potem zbiera nadesłane przez społeczność (zwykle producentów sprzętu) wyniki.

MLPerf bada osobno wydajność w uczeniu, a osobno we wnioskowaniu. Do dziś opublikowano już dwa zestawy wyników z kolejnych wersji benchmarków uczenia maszynowego, a lada dzień mają zostać opublikowane nowe testy we wnioskowaniu. Większość firm przedstawiających swoje nadchodzące produkty na HotChips zadeklarowała, że nadeśle wyniki w MLPerf w następnej rundzie zgłoszeń. Do tego czasu musimy się zadowolić znajomością architektury i mglistymi deklaracjami producentów.

Strona:
Bono[UG]Zobacz profil
Poziom ostrzeżenia: 0%
Bono[UG]2019.09.04, 16:18
No to tradycyjnie: pójdzie na tym Crysis? :E

Ciekawe rzeczy, coś nowego w świecie procesorów, choć na razie chyba głównie do komputerów obliczeniowych niż zwykłego konsumenta, no może z wyjątkiem smartfonów, gdzie trzeba się pochwalić użyciem SI.
Makavcio2Zobacz profil
Poziom ostrzeżenia: 0%
Makavcio22019.09.04, 16:45
Bono|UG| @ 2019.09.04 16:18  Post: 1216252
No to tradycyjnie: pójdzie na tym Crysis? :E


Weź, jak kiedyś zadałem to pytanie na szkoleniu w robocie, to myślałem, że cappo di tutti informatiki p-dolca dostanie :E

A obrazki bardzo ładne. Większość mi się podobała :)
Edytowane przez autora (2019.09.04, 16:47): Bono popsuł kłołtowanie
rlegoZobacz profil
Poziom ostrzeżenia: 0%
rlego2019.09.05, 14:28
i wlasnie o taki pclab nic nie robilem. Interesujacy art.
GandalfGZobacz profil
Poziom ostrzeżenia: 0%
GandalfG2019.09.06, 06:21
Najbardziej zaawansowaną technologią i użytymi rozwiązaniami zaskoczył mnie Cerberas.
Wyprodukowanie 'chipu' tej wielkości to jest wyzwanie. Ale zasilanie i schłodzenie układu który pobiera 15kW energii to jest dopiero osiągnięcie.
Polecam artykuł nt
https://techcrunch.com/2019/08/19/the-five...zBXWwv5-Q5iyDvg
znafcaZobacz profil
Poziom ostrzeżenia: 0%
znafca2019.09.06, 07:07
-1#5
O, moze w koncu AI w civ 6 nie bedzie totalnym retardem.
Oh wait rajt...
supervisorZobacz profil
Poziom ostrzeżenia: 0%
supervisor2019.09.06, 10:52
Czyżby oni wszyscy nie wiedzieli że HBM to nieudana technologia (według niektórych zielonych ludków na forum)?
VoormisZobacz profil
Poziom ostrzeżenia: 0%
Voormis2019.09.06, 13:10
supervisor @ 2019.09.06 10:52  Post: 1216417
Czyżby oni wszyscy nie wiedzieli że HBM to nieudana technologia (według niektórych zielonych ludków na forum)?

Pewnie nie czytują światłych ludzi z tego forum. Nie pchaliby się w nieudane technologie :D
jot2019.09.08, 10:50
-2#8
Bitowe protezy. Szkoda, że autor nie poruszył kwestii tritów w AI/ML i perspektyw z tym związanych.
Zaloguj się, by móc komentować
1