Wyślij wiadomość

Aktualności

March 11, 2021

Pamięć specyficzna dla domeny

Przetwarzanie specyficzne dla domeny może być wściekłością, ale pozwala uniknąć prawdziwego problemu.

Większym problemem są wspomnienia, które ograniczają wydajność procesora, zużywają więcej energii i zajmują najwięcej obszaru chipa.Wspomnienia muszą uwolnić się od sztywnych struktur preferowanych przez istniejące oprogramowanie.Gdy algorytmy i pamięć są projektowane razem, poprawa wydajności jest znacząca, a przetwarzanie można zoptymalizować.

Przetwarzanie specyficzne dla domeny zostało spopularyzowane podczas wykładu Turinga z 2018 r. „A New Golden Age for Computer Architecture” Johna Hennessy'ego i Davida Pattersona.Ale procesory były ograniczone pamięcią przez dziesięciolecia.Zmiana przetwarzania bez ponownego przemyślenia pamięci i hierarchii pamięci ignoruje prawo Amdahla, które zapewnia matematyczną zależność między przyspieszeniem możliwym dla systemu, gdy pewne elementy tego systemu zostaną ulepszone.Zasadniczo mówi, że uzyskujesz malejące zyski, jeśli koncentrujesz się tylko na jednym elemencie systemu, zamiast patrzeć na system jako całość.

Dlaczego więc nie skoncentrować się na wąskim gardle?„Pamięć specyficzna dla domeny to tylko nowy termin, ale architekci od dawna zajmują się tego rodzaju optymalizacjami” - mówi Prasad Saggurti, dyrektor ds. Marketingu produktów w Synopsys.„A jeśli nie, tracą sztuczkę, ponieważ większość ludzi to robi”.

Inni się z tym zgadzają.„Pamiętasz wspomnienia wideo - DRAM z wbudowanymi rejestrami przesuwnymi?”- pyta Michael Frank, współpracownik i architekt systemów w Arteris IP.„Może GDDR [1-5], specjalne pamięci podręczne z tagami lub wspomnienia asocjacyjne z czasów TTL?Wiele z nich tak naprawdę nie przetrwało, ponieważ ich funkcjonalność była zbyt specyficzna.Celowali w wyjątkowe urządzenie.Potrzebujesz wystarczająco dużej domeny i walczysz z niskim kosztem dzisiejszej pamięci DRAM, która ma tę zaletę, że jest produkowana na dużą skalę i na dużą skalę ”.

Czasami to sięga głębiej.„Możesz podłączyć coś na stałe do pamięci ROM” - mówi Saggurti z Synopsys.„To, co widzimy, to dziś więcej ludzi dostosowujących pamięć.Na przykład przy transformacji Fouriera lub transformacji Z ludzie pisaliby kod w taki sposób, aby można było przechowywać współczynniki w określonej kolejności.Kiedy wykonujesz mnożenie macierzy, możesz przechowywać współczynniki w określonej kolejności, dzięki czemu odczytanie będzie szybsze.Nie możesz przechowywać danych w jednej pamięci, zamiast tego umieszczasz je w trzech lub czterech różnych pamięciach, aby móc odczytywać rzeczy wieloma ścieżkami danych.Takie rzeczy miały miejsce ostatnio ”.

Zmiana jest trudna.„Wyzwanie polega na tym, że w przeszłości ludzie mieli ładny, abstrakcyjny model myślenia o systemach komputerowych” - mówi Steven Woo, kolega i wybitny wynalazca w firmie Rambus.„Nigdy tak naprawdę nie musieli myśleć o pamięci.Pojawił się za darmo, a model programowania sprawił, że kiedy robiłeś odniesienia do pamięci, to się po prostu stało.Nigdy nie musiałeś mówić wprost o tym, co robisz ”.

Dokonuje się postępów w ogólnej wydajności pamięci.„Dzisiejsze kontrolery pamięci i zaawansowane standardy interfejsów radykalnie poprawiły to, co można uzyskać z zaawansowanej technologii krzemowej” - mówi Frank z Arteris.„To umożliwiło tworzenie głębokich kolejek i zaawansowanych harmonogramów.Zaawansowane technologie pamięci, takie jak pamięć o dużej przepustowości (HBM) i układy stosowe obsługują przepustowości, których osiągnięcie zaledwie dziesięć lat temu uważaliśmy za niemożliwe.Jednak to nie jest tanie.Technologie poniżej 10 nm umożliwiają również duże pamięci podręczne, więc może możemy nazwać pamięć specyficzną dla domeny tego biedaka ”.

Ale to wszystko są przykłady małych, przyrostowych zmian.„Projektowanie podsystemów pamięci, w których obliczenia następują przede wszystkim na podstawie danych, a nie na odwrót, wymaga gruntownego przemyślenia wielu przykazań, do których przyzwyczajeni są architekci” - mówi Matt Horsnell, starszy inżynier ds. Badań w grupie badawczo-rozwojowej Arm's.„Istnieje możliwość zwiększenia abstrakcji programowania, od dzisiejszej typowej listy operacji na danych do rozszerzonej formy, która obejmuje współbieżność i pewne pojęcie względnych odległości między jednostkami obliczeniowymi a elementami danych.Takie abstrakcje mogą umożliwić niezbędne transformacje, aby bardziej optymalnie ukierunkować wspomnienia specyficzne dla domeny, gdy algorytmy szybko się rozwijają ”.

Centra danych w fotelu kierowcy
Centra danych są dziś motorem wielu trendów technologicznych.„Jedna z najszybciej rozwijających się aplikacji obliczeniowych znajduje się w centrach danych, gdzie aplikacje wymagają większej pojemności pamięci, przepustowości przy mniejszych opóźnieniach” - mówi Ravi Thummarukudy, dyrektor generalny Mobiveil.„Wraz z pojawieniem się najnowszego standardu branżowego, Compute Express Link (CXL), architekci systemów mogą rozmieścić potrzebną pamięć między pamięcią główną w DDRn DIMMS a DDRn opartą na CXL lub nowszą pamięcią trwałą.Opóźnienia i ekonomiczne właściwości tych poziomów pamięci są różne, co daje architektom możliwość mieszania i dopasowywania wspomnień do ich wymagań. ”

To jest kontynuacja starszych architektur pamięci.„Wielu producentów OEM i producentów systemów projektuje własne układy SoC, aby dostosować układ krzemowy do ich konkretnych obciążeń” - mówi Tim Kogel, główny inżynier aplikacji w Synopsys.„Największą szansą na wzrost wydajności i mocy jest specjalizacja hierarchii pamięci wraz z wspierającą architekturą połączeń międzysieciowych.

Rozważ moc.„W obecnych architekturach 90% energii obciążeń sztucznej inteligencji jest pochłaniane przez przenoszenie danych, przenoszenie wagi i aktywacji między pamięcią zewnętrzną, wbudowanymi pamięciami podręcznymi, a ostatecznie do samego elementu obliczeniowego (patrz rysunek 1)” - mówi Arun Iyengar , Dyrektor generalny Untether AI.„Tylko skupiając się na potrzebach przyspieszenia wnioskowania i maksymalizacji wydajności energetycznej jesteśmy w stanie zapewnić niespotykaną wydajność obliczeniową”.

Optymalizacja pamięci to problem na poziomie systemu, który dotyczy wszystkich aspektów projektu - sprzętu, oprogramowania i narzędzi.„Strategie optymalizacji pamięci są zróżnicowane i zależą od domeny aplikacji” - dodaje Kogel.„Najlepszą strategią jest całkowite unikanie dostępu do pamięci poza chipem.W przypadku architektur specyficznych dla domeny można to zwykle osiągnąć poprzez zwiększenie dostępnej pamięci w układzie scalonym, w postaci pamięci podręcznych lub pamięci zarządzanej przez aplikację.Szczególnie w obszarze akceleratorów uczenia głębokiego dostępna pamięć na chipie jest decydującym parametrem projektowym, który ma również wpływ na sposób kompilacji aplikacji sieci neuronowej na docelowym sprzęcie - na przykład kafelkowanie operatora splotu ”.

Wiele projektów chce pójść dalej.„Koncepcje pamięci specyficzne dla domeny są badane w dziedzinie obliczeń przestrzennych” - mówi Arm's Horsnell.„Na przykład, procesory DSP mają tendencję do dostarczania puli pamięci rozproszonych, często zarządzanych bezpośrednio w oprogramowaniu, które mogą być lepiej dopasowane do wymagań dotyczących przepustowości i wzorców dostępu wyspecjalizowanych aplikacji niż tradycyjne systemy z pamięcią współdzieloną.Aby wypełnić lukę w wydajności dzięki układom ASIC o stałej funkcji, procesory te często oferują jakąś formę specjalizacji pamięci, zapewniając bezpośrednie wsparcie dla określonych wzorców dostępu (takich jak buforowanie N, FIFO, bufory liniowe, kompresja itp.).Kluczowym aspektem orkiestracji w tych systemach i wyzwaniem przy ich projektowaniu jest określenie odpowiedniej szczegółowości dostępu do danych, która może zminimalizować koszty komunikacji i synchronizacji, jednocześnie maksymalizując współbieżność.Nadal istnieją inne wyzwania, w tym programowanie, spójność, synchronizacja i tłumaczenie, które zwiększają złożoność oprogramowania.Jednak możliwą drogą naprzód jest poleganie na językach specyficznych dla domeny (DSL), które poprzez wyraźniejszy przepływ danych aplikacji mogą umożliwić kompilatorom identyfikację wyspecjalizowanych wzorców dostępu do pamięci i bardziej efektywne mapowanie ich na sprzęt ”.

Warto też przyjrzeć się bliżej samym wspomnieniom.„Hiper-dostosowywanie to trend, który widzimy, jeśli chodzi o wspomnienia” - mówi Anand Thiruvengadam, starszy kierownik ds. Marketingu produktów w firmie Synopsys.„Oznacza to pamięci zbudowane specjalnie do różnych zastosowań końcowych.Nawet w ramach konkretnej aplikacji końcowej, takiej jak sztuczna inteligencja, istnieją różne potrzeby dotyczące pamięci, na przykład do szkolenia lub wnioskowania, wnioskowania na serwerach lub na odległym brzegu.Każda z tych aplikacji ma inne wymagania, co oznacza, że ​​musisz dostosować wspomnienia.Ta personalizacja oznacza, że ​​nie możesz już postrzegać wspomnień jako towarów lub produktów z półki.Musisz go zbudować dla konkretnej aplikacji.W tym miejscu pojawia się sekretny sos ”.

W wielu przypadkach pamięć i interkonekt są ze sobą ściśle powiązane.„Wszystko idzie, jeśli chodzi o łączenie pamięci i technologii połączeń międzysieciowych w celu spełnienia wymagań dotyczących dostępu do danych obciążeń aplikacji - na przykład wiele poziomów klastrów łączących przetwarzanie z pamięcią lokalną w celu wykorzystania lokalności w aplikacjach przepływu danych lub ogromnych bankowe / wieloportowe wbudowane pamięci SRAM do buforowania map funkcji akceleratorów CNN i głębokich hierarchii pamięci podręcznej z wyrafinowanymi protokołami koherencyjnymi w celu złagodzenia letniego zestawu roboczego obciążeń centrum danych. ”

Małe zmiany mogą przynieść duże rezultaty.„Wystarczy spojrzeć na mały cud, jakiego dokonał Apple z M1” - mówi Frank.„Zorientowali się, jak zaprojektować podsystem pamięci, który dobrze obsługuje wiele heterogenicznych modułów głównych, wykorzystując inteligentną strategię buforowania i ogromną, wielopoziomową hierarchię pamięci podręcznej”.

Jak to często bywa, oprogramowanie jest kotwicą inercyjną.„To, co zwykle się dzieje, polega na tym, że istnieje algorytm i widzimy sposób na jego optymalizację, optymalizację pamięci, aby algorytm był znacznie lepiej zaimplementowany” - mówi Saggurti.„Z drugiej strony mamy różne rodzaje pamięci.Czy możesz zmienić algorytm, aby wykorzystać te nowe rodzaje wspomnień?W przeszłości używanie TCAM było głównie konstrukcją domeny sieciowej do wyszukiwania adresów IP.Niedawno silniki szkoleniowe zaczęły używać TCAM, a to jest zupełnie inne podejście.Wymaga to oprogramowania lub oprogramowania układowego do zmiany w zależności od typów dostępnych pamięci.Jednak przez większość czasu oprogramowanie pozostaje niezmienne, a pamięć zmienia się, aby ulepszyć wynikową implementację ”.

Świadomość przepustowości
Obecnie inwestuje się dużo czasu i pieniędzy w sztuczną inteligencję.Niestandardowe układy są ograniczone przepustowością, co stawia nacisk na pamięć i połączenia.

„W przeszłości architektury pamięci i połączeń międzysieciowych projektowano w oparciu o statyczne arkusze kalkulacyjne lub proste modele analityczne, takie jak model wydajności linii dachu” - mówi Kogel.„W przypadku najnowocześniejszych aplikacji staje się to dość skomplikowane.Na przykład przewidywanie wymagań dotyczących pamięci każdej warstwy w CNN wymaga rozważenia optymalizacji kompilatora, takiej jak układanie kafelków i fuzja warstw.Te statyczne metody stają się nieracjonalnie złożone i niedokładne w przewidywaniu i optymalizacji obciążeń na poziomie SoC z różnymi podsystemami IP i dynamicznymi scenariuszami aplikacji.Z drugiej strony, uruchomienie aplikacji na emulacji sprzętowej lub systemie prototypowania jest zbyt późne w procesie rozwoju, aby dokonać jakichkolwiek drastycznych zmian lub poważnej optymalizacji projektu pamięci. ”

To skupia się na zamierzonych obciążeniach.„Kluczem do wydajnych podsystemów pamięci jest znajomość obciążenia” - mówi Frank.„Zrozumienie, jak się zachowuje, a może nawet ukształtowanie go w sposób, który sprawi, że będzie bardziej zgodny z ograniczeniami hierarchii pamięci, to wyzwanie dla architektury.Akceleratory specyficzne dla domeny wymagają dostrojonych systemów pamięci - a sztuka budowania silnika transformacji, który `` impedancja '' pasuje do masowo produkowanej, zorganizowanej strony, dostęp do pamięci DRAM i wzorzec dostępu do silnika wymaga wglądu w zachowanie systemu, narzędzi do modelowania i wielu obciążeń. grać z.Czasami potrzeba zmiany sposobu, w jaki obciążenie przetwarza dane, aby móc ulepszyć cały system.Dobrym przykładem było przejście od renderowania „bezpośredniego” do przetwarzania opartego na kafelkach w procesorach graficznych ”.

Wszystko sprowadza się do modelowania i symulacji.„Proponujemy wykorzystanie narzędzi do wirtualnego prototypowania do modelowania obciążenia aplikacji, wraz z dokładnymi modelami połączeń międzysieciowych i pamięci na poziomie transakcji” - mówi Kogel.„To ilościowe podejście„ najpierw architektura ”pozwala na wczesną analizę kompromisów, czego wynikiem jest wiarygodna specyfikacja implementacji.Kosztem dodatkowego wysiłku związanego z modelowaniem i symulacją, korzyścią jest mniejsze ryzyko utraty parametrów docelowych i mocy lub zmniejszony koszt przeprojektowania sprzętu, aby zachować bezpieczeństwo.W dobie malejących zwrotów z prawa Moore'a szansą jest przedstawienie bardziej zoptymalizowanego i zróżnicowanego produktu ”.

Pozwala to również dostrzec wpływ zmian algorytmicznych.„Istnieje potrzeba cofnięcia się i przeprojektowania algorytmów” - mówi Thiruvengadam.„Mogą zostać przeprojektowane pod kątem tradycyjnych, starszych architektur pamięci lub mogą zostać przeprojektowane pod kątem nowych architektur, nowych stylów pamięci, nowych smaków pamięci.Istnieje ciągły nacisk na skalowanie wydajności, skalowanie kosztów, a także możliwość równoważenia kompromisów dla różnych aplikacji.Zasadniczo jest to powód, dla którego widzisz ciągły rozwój MRAM i FeRAM.Próbują znaleźć dobre miejsce dla przynajmniej kilku zmiennych, jeśli nie dla wszystkich zmiennych.Potrzeba przeprojektowania algorytmów wraz z architekturami pamięci z pewnością staje się ważna ”.

Równowaga jest konieczna.„Musisz pomyśleć o koncepcji intensywności obliczeniowej i rodzaju wykonywanych operacji” - mówi Frank.„Niektóre algorytmy mają nienasycone wymagania dotyczące przepustowości, podczas gdy inne przenoszą tylko stosunkowo niewielkie ilości danych, ale wykonują na nich tysiące operacji.Operacja w pamięci może dobrze działać w przypadku przetwarzania typu SIMD, w którym szerokość pasma instrukcji jest niewielka w stosunku do przepustowości danych, a wiele elementów jest przetwarzanych przy użyciu tej samej receptury.Ale gdy tylko pojawią się sekwencyjne zależności w strumieniu danych lub nieregularny przepływ danych, korzyści z pamięci specyficznej dla domeny maleją. ”

Pamięć niestandardowa
Chociaż zmiany architektoniczne mogą przynieść duże rezultaty, optymalizacja pamięci może również przynieść korzyści.„Duża część mocy i powierzchni dzisiejszych akceleratorów jest wykorzystywana na pamięć” - mówi Horsnell.„Zatem wszelkie ulepszenia związane z opóźnieniem / gęstością / energią uzyskane dzięki nowym technologiom pamięci mogą mieć dramatyczny wpływ”.

Niestandardowe wspomnienia stają się wielkim biznesem.„Zaczynasz widzieć takie rzeczy, jak obliczenia w pamięci, obliczenia bliskie pamięci, określone wspomnienia, które mogą być pamięcią zerową - pamięci zoptymalizowane pod kątem określonych typów operacji” - mówi Saggurti.„Widzimy, jak wielu klientów pyta nas o MRAM, jeszcze większe dostosowanie SRAM, TCAM i pewne poprawki do TCAM”.

Jednak trudności pozostają.„Odbyłem wiele dyskusji na temat niestandardowych projektów pamięci, w przypadku których przetwarzanie na kości pamięci byłoby„ idealną ”architekturą” - mówi Frank.„Zapewniłoby to dużą przepustowość, małe opóźnienia itp. Wszystko było w porządku, z wyjątkiem faktu, że proces pamięci ograniczał logikę, którą można było zintegrować - trzy lub cztery metalowe warstwy, niskie moce, ale wolne tranzystory.Oznaczało to nieefektywność silnika obliczeniowego.Poświęcenie szybkości zegara i złożoności obwodów sprawiło, że integracja silnika obliczeniowego nie była już tak dobrym wyborem ”.

Ale niektóre z tych zmian będą konieczne.„Ludzie chcą przenosić pamięć flash na chipie i sprawić, by była to wbudowana pamięć flash” - mówi Saggurti.„Wtedy pojawia się pytanie: 'Czy to w ogóle możliwe?'W 28 nm możesz być w stanie wykonać osadzoną pamięć flash, ale ludzie zaczynają myśleć o takich rzeczach, jak MRAM w 22 nm. ”

Mimo to istnieją inne sposoby spojrzenia na problem.„Zmienność procesu na całej płytce i na całej matrycy, a nawet w czasie, ogranicza projektowanie pamięci” - dodaje Saggurti.„Projektując pamięć, prostą pamięć SRAM, zazwyczaj projektujesz dla przypadku, gdy komórka bitowa porusza się w jedną stronę - wolno - a peryferia w drugą stronę - szybko.Jeśli projektujesz pod kątem tego i jeśli większość twojego krzemu jest typowa, pozostawiasz dużo wydajności i mocy na stole.Jeśli rozumiesz, gdzie jesteś w zakresie procesu i umożliwiasz projektantowi chipa działanie na podstawie tych informacji, możesz odpowiednio dostosować czas.Twój projekt może być bardziej optymalny i nie musisz projektować w najgorszym przypadku ”.

Wniosek
Chociaż pamięć zawsze była kompromisem projektowym, nigdy nie zwracano na nią takiej uwagi, jak przetwarzanie, mimo że jest ogranicznikiem wydajności pod względem przepustowości, mocy i obszaru.Sztuczna inteligencja zmusza ludzi do ponownego przemyślenia architektur pamięci z konieczności, ale dzięki tej dodatkowej uwadze zespoły projektowe mogą również przemyśleć niektóre oprogramowanie i algorytmy zoptymalizowane pod kątem starszych systemów pamięci.W świecie, w którym wzrost wydajności nie przychodzi za darmo co 18 miesięcy, bardziej ekstremalne środki stają się jedynym sposobem, aby produkty nie stały się towarami. (Brian Bailey)

Szczegóły kontaktu