Sztuczna inteligencja na brzegu sieci rzadko oznacza jedynie wnioskowanie. Wdrożenia w świecie rzeczywistym zazwyczaj obejmują szybkie wejścia/wyjścia (I/O), kondycjonowanie sygnału i pętle sterowania w czasie rzeczywistym, a wszystkie te działania są wykonywane współbieżnie. Te wielofunkcyjne obciążenia wymagają ścisłej koordynacji i dużej pewności, a projektantom trudno było spełnić te wymagania przy użyciu głównego nurtu sprzętu AI.
Dwa czynniki czynią ten problem jeszcze bardziej złożonym. Po pierwsze, modele sztucznej inteligencji rozwijają się w zdumiewającym tempie, co skłania projektantów do stosowania platform obsługujących szybkie aktualizacje algorytmów. Tymczasem wiele systemów brzegowych jest używanych na miejscu od dziesięciu lat lub dłużej, co utrudnia zapewnienie długoterminowej adaptacji. Po drugie, droga od dobrze wyszkolonych modeli do wdrożenia i wdrożenia systemu jest nadal fragmentaryczna. Analitycy danych korzystają z PyTorch i TensorFlow, podczas gdy zespoły wbudowane korzystają z zupełnie innych zestawów narzędzi, co powoduje tarcia w procesie przekazywania i spowalnia prędkość produkcji.
Aby sprostać tym wyzwaniom, platformy muszą być w stanie łączyć wysokoprzepustowe przetwarzanie sztucznej inteligencji z deterministycznym zachowaniem, elastycznymi wejściami/wyjściami i długoterminową możliwością adaptacji, a wszystko to musi zostać osiągnięte w typowym zakresie zużycia energii w przypadku ograniczonych wdrożeń brzegowych.
W tym artykule skupiono się na scenariuszach aplikacji i powiązanych wymaganiach, które stanowią dla projektantów wyzwanie polegające na odkrywaniu nowych brzegowych architektur AI. Następnie przedstawiono urządzenia firmy Altera z programowalną macierzą bramek (FPGA) i narzędzia programowe obsługujące brzegową sztuczną inteligencję oraz zademonstrowano, jak je wykorzystać, aby spełnić różnorodne wymagania tych aplikacji w zakresie wydajności i zasilania.
Ewolucja brzegowej sztucznej inteligencji wymaga innowacji architektonicznych
Systemy brzegowe w coraz większym stopniu wykorzystują różnorodne technologie sztucznej inteligencji, w tym klasyczne uczenie maszynowe (ML) do wykrywania anomalii, splotowe sieci neuronowe (CNN) do percepcji i konwertery dużych modeli językowych (LLM). Te wymagające obliczeń algorytmy często współistnieją z wymagającymi funkcjami niezwiązanymi ze sztuczną inteligencją, takimi jak przetwarzanie sygnałów, komunikacja sieciowa i sterowanie w czasie rzeczywistym.
Dobrym przykładem są systemy autonomiczne. Zwykle muszą przechwytywać dane z wielu czujników, takich jak wideo, audio, radar, LiDAR i sprzężenie zwrotne ruchu/położenia, wstępnie przetwarzać te strumienie danych z dużą przepustowością, analizować wyniki przy użyciu złożonej sztucznej inteligencji, a następnie zarządzać precyzyjnymi pętlami sterowania, a wszystko to wymaga niezawodnej determinacji.
Istnieje wiele podobnych przykładów w automatyce przemysłowej, obrazowaniu medycznym, obronności i zastosowaniach telekomunikacyjnych. Częstym wyzwaniem, przed którym stoją, jest to, że tradycyjne architektury trudno dostosować do stale zbiegających się obciążeń.
Dlaczego FPGA jest szczególnie odpowiedni dla brzegowej sztucznej inteligencji
Natomiast wymagania te są w pełni kompatybilne z funkcjonalnością FPGA. Istotą układu FPGA jest zapewnienie konfigurowalnej logiki umożliwiającej wykonywanie operacji w prawdziwie równoległy sposób, z zachowaniem synchronizacji czasowej osadzonym w czasie projektowania, a nie zmieniającym się w czasie wykonywania. Architektura ta może osiągnąć determinizm o niskim opóźnieniu, co jest kluczowe dla brzegowej sztucznej inteligencji. Elastyczna logika może również wykorzystywać wydajne wejścia/wyjścia: układy FPGA zazwyczaj zapewniają dużą liczbę szybkich wejść/wyjść, które można podłączyć do różnych czujników i siłowników, aby uzyskać ścisłe połączenie z przetwarzaniem AI.
FPGA zawiera również rozproszoną pamięć wewnętrzną, która umożliwia dostęp do danych działającej na niej logice. Zmniejsza to wąskie gardło powstające, gdy wiele etapów przetwarzania musi konkurować o dostęp do magistrali pamięci współdzielonej, co jest powszechnym ograniczeniem w architekturach opartych na procesorach.
Wiele układów FPGA integruje również specjalistyczny sprzęt do cyfrowego przetwarzania sygnału (DSP). W porównaniu do konwencjonalnych struktur te ulepszone obwody zapewniają wyższą wydajność i lepszą efektywność energetyczną w przypadku obciążeń związanych z przetwarzaniem sygnałów. Niektóre układy FPGA integrują również systemy procesorów przewodowych, na których można uruchamiać standardowe stosy oprogramowania (w tym Linux), umożliwiając tradycyjne tworzenie oprogramowania do zadań takich jak tworzenie sieci, zarządzanie urządzeniami i interfejs użytkownika.
Krótko mówiąc, pojedynczy układ FPGA może integrować funkcje, które w innym przypadku mogłyby wymagać oddzielnych układów we/wy, akceleratorów AI, procesorów DSP i procesorów płaszczyzny sterującej. Może to zmniejszyć zestawienie materiałów (BOM), zmniejszyć obszar płytki drukowanej, obniżyć zużycie energii, przy jednoczesnym zachowaniu niskich opóźnień i pewności wymaganej w zastosowaniach brzegowej sztucznej inteligencji.
Jak otworzyć nowe możliwości dzięki dodaniu bloków tensorowych AI
Tradycyjny sprzęt FPGA DSP jest już bardzo odpowiedni dla wielu obciążeń brzegowych, ale wnioskowanie AI często opiera się na gęstych, ale mało precyzyjnych operacjach mnożenia. Aby rozwiązać ten problem, urządzenia Altera Agilex 3 i Agilex 5 wykorzystują ulepszone procesory DSP z blokami tensorowymi AI. Jest to wyspecjalizowany sprzęt do mnożenia macierzy macierzowych i wektorowych, który wielokrotnie pojawia się na wykresach obliczeniowych AI.
Podstawą tej metody jest iloczyn skalarny i silnik sumatora/akumulatora (rysunek 1). W trybie tensora, podłączony na stałe silnik punktowy wykorzystuje 8-bitowe dane wejściowe i wstępnie załadowane 8-bitowe wagi, aby uzyskać 10-elementowy iloczyn skalarny. Aby rozszerzyć zakres dynamiczny, ścieżka danych może również wykorzystywać wspólny „wspólny indeks” do blokowego skalowania zmiennoprzecinkowego, aby poradzić sobie z typowymi scenariuszami, w których wnioskowanie AI zazwyczaj wymaga dużego zakresu dynamiki, ale niskiej dokładności.

