Jak działa ASIC w celu przyspieszenia AI?


9

Na stronie Wikipedii możemy przeczytać, że Google zbudował niestandardowy układ ASIC do uczenia maszynowego i dostosowany do TensorFlow, który pomaga przyspieszyć AI.

Ponieważ układy scalone ASIC są specjalnie dostosowane do jednego konkretnego zastosowania bez możliwości zmiany jego obwodu, należy wywołać pewien ustalony algorytm.

Jak dokładnie działa przyspieszenie AI za pomocą układów ASIC, jeśli nie można zmienić jego algorytmu? Która część dokładnie przyspiesza?


1
Żadna znana mi technika sztucznej inteligencji nie wymaga modyfikacji algorytmu , choć większość zależy od zdolności do modyfikowania danych (siły połączenia, członków populacji) itp.
NietzscheanAI

Czy więc jedyną dynamiczną częścią, taką jak stan sieci, jest pamięć flash lub dysk?
kenorb

Według en.wikipedia.org/wiki/Application-specific_integrated_circuit , nowoczesne układy ASIC mogą mieć pamięć RAM ...
NietzscheanAI

Odpowiedzi:


4

Operacje tensora

Główną pracą w większości aplikacji ML jest po prostu zestaw (bardzo dużych) operacji tensorowych, np. Mnożenie macierzy. Można zrobić to łatwo w układzie ASIC, a wszystkie inne algorytmy mogą po prostu uruchomić na początku tego.


1
Ważną kwestią jest to, że TPU używa mnożenia 8-bitowego, które można wdrożyć znacznie wydajniej niż szersze mnożenie oferowane przez CPU. Tak niska precyzja jest wystarczająca i pozwala spakować wiele tysięcy takich multiplikatorów na jednym chipie.
maaartinus

3

Myślę, że algorytm zmienił się minimalnie, ale niezbędny sprzęt został przycięty do kości.

Liczba przejść bramek jest zmniejszona (być może również operacje zmiennoprzecinkowe i precyzja), podobnie jak liczba operacji przenoszenia danych, oszczędzając w ten sposób energię i czas działania. Google sugeruje, że ich TPU osiąga 10-krotną oszczędność kosztów, aby wykonać tę samą pracę.

https://cloudplatform.googleblog.com/2016/05/Google-supercharges-machine-learning-tasks-with-custom-chip.html


1

ASIC - skrót od IC specyficznego dla aplikacji. Zasadniczo piszesz programy do projektowania układu w HDL . Przyjmę przykłady tego, jak działają nowoczesne komputery, aby wyjaśnić mój punkt widzenia:

  • Procesory - procesory to w zasadzie mikroprocesory z wieloma pomocniczymi układami scalonymi wykonującymi określone zadania. W mikroprocesorze jest tylko jedna jednostka przetwarzania arytmetycznego (utworzony termin) o nazwie Akumulator, w której należy zapisać wartość, ponieważ wykonywane są tylko obliczenia, a tylko wartości są przechowywane w akumulatorze. Tak więc każda instrukcja, każda operacja, każda operacja R / W musi być wykonana przez akumulator (dlatego starsze komputery zamarzały podczas pisania z pliku na jakieś urządzenie, chociaż obecnie proces został udoskonalony i może nie wymagać akumulatora wchodzić pomiędzy konkretnie DMA). Teraz w algorytmach ML musisz wykonywać multiplikacje macierzy, które można łatwo zrównoleglać, ale mamy w sobie tylko jedną jednostkę przetwarzającą, a więc i GPU.
  • GPU - GPU mają 100 jednostek przetwarzających, ale brakuje im uniwersalnych możliwości procesora. Są więc dobre do obliczeń równoległych. Ponieważ w mnożeniu macierzy nie zachodzi na siebie pamięć (ta sama część pamięci jest manipulowana przez 2 procesy), procesory graficzne będą działać bardzo dobrze. Chociaż GPU nie jest wielofunkcyjna, będzie działać tylko tak szybko, jak procesor pobiera dane do swojej pamięci.
  • ASIC - ASIC może być dowolnym układem GPU, procesorem lub procesorem twojego projektu, z dowolną ilością pamięci, którą chcesz mu dać. Powiedzmy, że chcesz zaprojektować własny specjalistyczny procesor ML, zaprojektować procesor na ASIC. Chcesz 256-bitowy numer FP? Utwórz 256-bitowy procesor. Chcesz, aby twoje podsumowanie było szybkie? Wdrożenie sumatora równoległego do większej liczby bitów niż w tradycyjnych procesorach? ChcesznLiczba rdzeni? Nie ma problemu. Chcesz zdefiniować przepływ danych z różnych jednostek przetwarzania do różnych miejsc? Możesz to zrobić. Również przy starannym planowaniu można uzyskać kompromis między obszarem ASIC a mocą a prędkością. Jedyny problem polega na tym, że musisz stworzyć własne standardy. Zasadniczo przy projektowaniu procesorów przestrzegane są pewne dobrze zdefiniowane standardy, takie jak liczba pinów i ich funkcjonalność, standard IEEE 754 do reprezentacji zmiennoprzecinkowej itp., Które powstały po wielu próbach i błędach. Jeśli więc możesz je wszystkie pokonać, możesz łatwo stworzyć własny ASIC.

Nie wiem, co Google robi z ich TPU, ale najwyraźniej zaprojektowali coś w rodzaju Integer i FP dla swoich 8-bitowych rdzeni, w zależności od wymagań. Prawdopodobnie wdrażają go w ASIC ze względu na moc, powierzchnię i prędkość.


0

Niska precyzja umożliwia obliczenia wysokiej równoległości w warstwach Convo i FC. Naprawiono architekturę CPU i GPU, ale ASIC / FPGA można zaprojektować w oparciu o architekturę sieci neuronowej

Korzystając z naszej strony potwierdzasz, że przeczytałeś(-aś) i rozumiesz nasze zasady używania plików cookie i zasady ochrony prywatności.
Licensed under cc by-sa 3.0 with attribution required.