artykuły

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

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

Tesla Self-Driving Computer

Projektanci z firmy Tesla pokazali komputer FSD (Fully Self-Driving Computer), który będzie instalowany w nowych samochodach elektrycznych Tesla oraz zastąpi poprzednią, prymitywniejszą wersję komputera pokładowego w starszych samochodach Tesla. FSDC zajmuje się zbieraniem danych z czujników (głównie kamer i radarów, ale również czujników typowych dla standardowych samochodów), wnioskowaniem o otaczającym środowisku na podstawie wyuczonej przez producenta sieci neuronowej oraz sterowaniem samochodem. W starszych samochodach Tesla montowano komputery z procesorami firmy MobilEye (dziś jest częścią Intela) lub kombinacją SoC Nvidia Tegra X2 i GPU Nvidia GP106 (tym samym, co w GeForce GTX 1060). Z czasem okazało się, że odpowiednio skuteczna sieć neuronowa jest zbyt duża – potrzebuje więcej pamięci i mocy obliczeniowej, niż oferowały zewnętrzne komputery, które mogłyby się zmieścić w ograniczonej przestrzeni i budżecie energetycznym dostępnym w już wyprodukowanych samochodach. Żeby stworzyć odpowiednio wydajny i przystosowany do konkretnego zadania komputer, w Tesli zaprojektowano własny akcelerator SI.

Ponieważ zadanie obliczeniowe do wykonania było doskonale znane, projektanci poświęcili większość wysiłku i czasu (którego było bardzo mało: tylko 14 miesięcy od rozpoczęcia projektu do gotowego chipu) na dostosowanie akceleratora do konkretnego zadania. Mniej istotne komponenty – układ graficzny, procesor ARM, kontroler pamięci, sprzętowe dekodery i kodery wideo – kupiono w postaci licencji, żeby oszczędzić czasu i mieć do dyspozycji sprawdzone rozwiązanie. Układ graficzny to nieznana wersja ARM Mali w architekturze Bifrost (nie najnowszej Valhall) z 16 jednostkami obliczeniowymi. Rdzenie ARM to trzy grupy po cztery Cortex-A72, każda ze wspólną pamięcią podręczną.

Największą część jądra zajmują dwa bloki NNA (Neural Network Accelerator). Jak twierdzą projektanci, 98,1% wszystkich obliczeń do wykonania podczas wnioskowania na podstawie obrazów z kamer to sploty macierzy, a 99,7% wszystkich obliczeń można zaprogramować jako mnożenia połączone z dodawaniem (FMA). Anatomia NNA jest podporządkowana temu zadaniu: centralną częścią NNA jest jednostka mnożenia macierzy o rozmiarze 96×96. Ten rozmiar wybrano ze względu na łatwość implementacji: większa macierz byłaby nieproporcjonalnie duża w stosunku do powierzchni zajmowanej przez połączenia i pamięć. Największą część powierzchni NNA zajmuje otaczająca jednostki obliczeniowe bardzo pojemna pamięć (32 MB) i ogromna liczba połączeń dostarczających dane z pamięci do obliczeń.

Nie tylko największa część obliczeń, ale również operacje pomocnicze – sumowanie i funkcja aktywacji – są przyspieszane sprzętowo.

Sieć neuronowa jest częściowo dopasowana do architektury akceleratora. Kolejne klatki obrazu z kamer są dzielone na kanały (zielony, czerwony, niebieski) i na regiony o wymiarach 96×96 pikseli. Dane wejściowe pozostają w lokalnej pamięci aż wszystkie piksele wszystkich kanałów jednego regionu zostaną przetworzone. W ten sposób korzyść z pojemnej lokalnej pamięci jest największa, a przesyłanie danych ograniczone do minimum.

Część macierzowa NNA operuje głównie na 8-bitowych liczbach całkowitych, co oszczędza sporo energii i powierzchni jądra. Zestaw instrukcji jest bardzo uproszczony: ponieważ zadanie obliczeniowe było znane, a oprogramowanie w całości kontrolowane przez Teslę, można było ograniczyć go do 8 operacji, z których tylko 5 służy do obliczeń. Część wektorowa ma bogatszy zestaw instrukcji i może przetwarzać również liczby zmiennoprzecinkowe o precyzji do 32b.

Dzięki dostosowanej architekturze i optymalizacjom w zarządzaniu taktowaniem i zasilaniem optymalizacjom NNA przejada mniej niż 1/4 z całego budżetu energetycznego układu (15 W z 72 W). Jak podali inżynierowie, cały układ jest 21 razy szybszy we wnioskowaniu na podstawie używanego w samochodach Tesla modelu, niż komputer poprzedniej generacji z procesorami Tegra X2 i GPU GP106. W innym miejscu podano, że dwa NNA mają łączną wydajność 73,6 TOPS. To tylko 6 razy więcej, niż deklarowana przez Nvidię maksymalna teoretyczna wydajność poprzedniej wersji komputera w teslach: dodatkowy zysk wydajności pochodzi z optymalizacji innych etapów obliczeń niż splot macierzy.

Komputer FSD jest montowany od kilku miesięcy w nowych samochodach Tesla. Zajmuje identyczną powierzchnię, co poprzednia wersja, ma taki sam rozkład złącz i konsumuje o 1/4 więcej energii: to było konieczne, żeby można było zainstalować go w starszych samochodach bez zmiany układu chłodzenia komputera. Obecnie jest chłodzony wodą, ale prelegenci wspomnieli też o chłodzeniu powietrznym (o ile nam wiadomo, nie jest stosowane w żadnym obecnym modelu samochodu Tesla).

Kliknij, aby powiększyć

7