Co oznacza określenie „field programmable array”?
Pełna nazwa to Field Programmable Gate Array, czyli FPGA: programowalna macierz bramek logicznych. FPGA realizuje konfigurowalną logikę cyfrową, a NPU przyspiesza obsługiwane operacje sieci neuronowych. Wybór zależy od rzeczywistej ścieżki sygnału. Przetwarzanie w FPGA może być przydatne przy interfejsach równoległych lub akwizycji z rygorystycznymi wymaganiami czasowymi, natomiast NPU może uprościć kompatybilne zadanie inferencji.
Od płytki rozwojowej FPGA do produktu na zamówienie
Płytka FPGA potwierdza tylko część działania systemu. Projekt indywidualny wymaga także sekwencjonowania zasilania, taktowania, interfejsów pamięci, projektu termicznego i powtarzalnej metody testowania. Porównaj nakład projektowania i weryfikacji FPGA z architekturą MPU lub SoC FPGA. Koszt FPGA obejmuje nie tylko układ, ale również inżynierię, narzędzia, złożoność płytki i testy produkcyjne.
Co to jest AI MPU?
Platforma MPU obsługująca sztuczną inteligencję łączy mikroprocesor aplikacyjny z oprogramowaniem i zasobami akceleracyjnymi niezbędnymi do obsługi uczenia maszynowego. Zacznij od określenia, które zadania należą do procesora i które korzystają z obsługiwanego akceleratora.
MPU, czyli mikroprocesor aplikacyjny, to zwykle centrum oprogramowania wbudowanego systemu Linux. „AI MPU” nie jest odrębną kategorią procesorów, ale platformą MPU, która zawiera zasoby akceleracyjne, takie jak NPU, GPU, DSP lub FPGA, lub ściśle z nimi współpracuje. MPU obsługuje Linux, obsługę sieci, pamięć masową, usługi bezpieczeństwa, logikę aplikacji i środowisko wykonawcze koordynujące obciążenia AI.
W przypadku uczenia maszynowego MPU praktyczną kwestią jest nie tylko szybkość procesora. Przepustowość pamięci, obsługa akceleratorów, kamera i wysoka prędkość I/O, Linux BSP, długoterminowa dostępność, konstrukcja termiczna i dojrzałość modelu i łańcucha narzędzi często mają większe znaczenie niż główna wartość TOPS.
Co sprawia, że MPU jest dobrą platformą sztucznej inteligencji?
Najlepszy MPU dla sztucznej inteligencji jest dostosowany do obciążenia. Bramka wizyjna może priorytetowo traktować MIPI CSI, sprzętowe potoki wideo i NPU. Wytrzymały komputer misyjny może potrzebować PCIe, wielu portów Ethernet, deterministycznych rdzeni towarzyszących i silniejszych funkcji bezpieczeństwa. Platforma przemysłowa może cenić długą żywotność produktu, TSN, CAN-FD i stabilny ekosystem Linux.
Porównaj rzeczywisty model i kompletny łańcuch przetwarzania wstępnego. Platforma z niższą reklamowaną liczbą akceleratorów może wygrać, jeśli uniknie kopiowania pamięci, będzie obsługiwać wymaganych operatorów i zapewni wydajną ścieżkę od czujnika do wyniku.
NPU: wydajne wnioskowanie neuronowe lokalnie na urządzeniu
Krawędź NPU przyspiesza działanie operatorów sieci neuronowych, takich jak sploty, operacje na macierzach i typowe funkcje aktywacji. Jest to zazwyczaj najskuteczniejsze miejsce dla obsługiwanych modeli wykrywania, klasyfikacji, segmentacji i ekstrakcji cech, gdy liczy się moc i trwała przepustowość wnioskowania.
Wydajność NPU zależy od kompilacji i zasięgu operatora. Nieobsługiwane warstwy mogą zależeć od procesora lub innego akceleratora. Wymagania dotyczące kwantyzacji, układ tensorów, rozdzielczość wejściowa i ruch pamięci mogą również radykalnie zmienić wydajność w świecie rzeczywistym. Zawsze porównuj wykres produkcji, zamiast polegać wyłącznie na teoretycznym TOPS.
FPGA: deterministyczne potoki i wnioskowanie AI tam, gdzie liczy się elastyczność
FPGA wyróżnia się deterministycznym przenoszeniem danych, niestandardowymi interfejsami i masowo równoległymi potokami. W systemach do lokalnego przetwarzania może deserializować czujniki, wyrównywać znaczniki czasu, filtrować dane, generować obszary zainteresowania, przeprowadzać wstępne przetwarzanie obrazu i zasilać akcelerator z przewidywalnym opóźnieniem. Wnioskowanie AI FPGA jest również możliwe, jeśli model jest dobrze odwzorowany na dostępny stos DSP, pamięci i akceleracji dostawcy.
Kompromisem jest wysiłek inżynieryjny. Należy zaplanować projekt RTL lub HLS, symulację, zamknięcie harmonogramu, weryfikację i strategię aktualizacji. Należy wybrać FPGA, ponieważ zachowanie deterministyczne lub niestandardowa równoległość tworzy wartość systemową, a nie tylko dlatego, że można na nim wykonywać działania arytmetyczne.
NPU kontra FPGA dla Edge AI
Decyzja NPU vs FPGA jest często fałszywym plikiem binarnym. NPU jest ogólnie łatwiejszym wyborem w przypadku obsługiwanych sieci neuronowych i dużej wydajności na wat. FPGA jest silniejszy, gdy system wymaga niestandardowych interfejsów czujników, deterministycznego przetwarzania wstępnego, nietypowych formatów danych lub ściśle kontrolowanego potoku przed i po wnioskowaniu.
Wspólna architektura wykorzystuje zarówno FPGA do pozyskiwania i wstępnego przetwarzania czujników, NPU do sieci neuronowej, jak i MPU do orkiestracji Linux. Zmniejsza to ilość nieregularnej pracy wymuszanej na jednym procesorze.
| Zasób | Najlepiej dopasowane obciążenia | Główne ograniczenia |
|---|---|---|
| FPGA | Deterministyczne potoki, niestandardowe I/O, znaczniki czasu, przetwarzanie wstępne, specjalistyczne przyspieszenie | Wysiłek RTL/HLS, weryfikacja, zasoby urządzenia |
| NPU | Obsługiwane wnioskowanie neuronowe z dobrą wydajnością na wat | Obsługa operatora, kompilator/środowisko wykonawcze, kwantyzacja i przenoszenie pamięci |
| MPU | Aplikacje Linux, sieci, pamięć masowa, cyberbezpieczeństwo, orkiestracja | Mniej deterministyczne wykonanie; narzut ogólnego przeznaczenia |
| Rdzeń MCU/RT | Pętle sterujące, nadzór bezpieczeństwa, sekwencjonowanie mocy, deterministyczne I/O | Ograniczona pamięć i obliczenia wysokiego poziomu |
Edge computing
- Zacznij od terminów: określić, które sygnały mają twarde wymagania czasowe i maksymalne opóźnienie działania czujnika.
- Szybkość transmisji danych mapy: obliczyć przepustowość czujnika, rozmiary pośrednich tensorów i najgorszy ruch w pamięci.
- Trzymaj deterministyczne pozyskiwanie blisko interfejsu: Często odpowiednie są silniki FPGA, DMA lub rdzenie czasu rzeczywistego.
- Umieść obsługiwane modele neuronowe na NPU: sprawdź zasięg operatora i rzeczywistą skompilowaną wydajność.
- Użyj MPU dla systemu: sieci, pamięć masowa, aktualizacje, rejestrowanie, interfejsy API i zasady aplikacji należą naturalnie do Linux.
- Rezerwowa kontrola w czasie rzeczywistym: MCU lub rdzeń deterministyczny powinien nadzorować uruchamianie krytyczne czasowo i stan platformy, jeśli jest to wymagane.
Przepustowość pamięci jest często ukrytym wąskim gardłem
Wiele projektów Edge AI koncentruje się na wartościach szczytowych obliczeń, a później odkrywa, że opóźnienia dominują kopie, konwersja kolorów, ponowne formatowanie tensora lub współdzielony DDR. Należy wcześnie ocenić ścieżki o zerowej lub małej liczbie kopii, topologię DMA, zachowanie pamięci podręcznej i dostęp do pamięci akceleratora. Dławienie termiczne może również zamienić mocny punkt odniesienia w słabą, trwałą wydajność.
Jest to szczególnie ważne, gdy wiele kamer, radarów, czujników zdarzeń lub szybkich strumieni Ethernet korzysta z tego samego podsystemu pamięci.
Przykłady architektury referencyjnej
Rurociąg czujników wizyjnych/zdarzeń
Czujnik → FPGA pozyskiwanie i znacznik czasu → Wnioskowanie NPU → Usługi decyzyjne MPU → Dane wyjściowe CAN-FD lub Ethernet. Jest to silny wzorzec percepcji o niskim opóźnieniu i łączy się bezpośrednio z naszym .
Wbudowany komputer AI
Szybki I/O → DMA / ścieżka akceleratora → NPU lub wnioskowanie GPU → Usługi aplikacji Linux → Pamięć masowa i interfejsy API sieci. Nasz wbudowany moduł obliczeniowy i wytrzymały komputer do lokalnego przetwarzania klasy produktów są zbudowane wokół tego typu partycjonowania.
Przemysłowa brama deterministyczna
Interfejsy CAN-FD / szeregowy / Ethernet → znacznik czasu FPGA lub MCU i obsługa protokołów → usługi MPU → opcjonalna analityka NPU. Tutaj deterministyczny I/O i długoterminowa łatwość konserwacji oprogramowania mogą być ważniejsze niż maksymalna przepustowość AI.
Jak wybrać pomiędzy FPGA, NPU i MPU
Wybieraj spośród całego obciążenia, a nie etykiety procesora. Jeśli dominującym problemem jest wnioskowanie neuronowe, zacznij od zgodności z NPU. Jeśli dominują niestandardowe I/O i deterministyczne przetwarzanie wstępne, oceń zasoby FPGA. Jeśli dominują usługi, oprogramowanie sieciowe i aplikacje Linux, zacznij od możliwości MPU. Większość platform o wysokiej wydajności do przetwarzania lokalnego będzie łączyć co najmniej dwa z tych zasobów.
Przed zatwierdzeniem sprzętu przeprowadź reprezentatywne strumienie przez zamierzony stos oprogramowania i zmierz kompleksowe opóźnienia, moc, przepustowość pamięci i parametry termiczne. Dowody te są cenniejsze niż ogólne rankingi akceleratorów.
Sprawdzony przykład: cztery kamery i budżet pamięci współdzielonej
Rozważmy przykład planowania z czterema strumieniami 1280 × 720 z szybkością 30 klatek na sekundę, reprezentowanych jako RGB z jednym bajtem na kanał po konwersji obrazu. Ich łączny ładunek obrazu logicznego wynosi 4 × 1280 × 720 × 30 × 3 = 331,776,000 bajtów na sekundę, w przybliżeniu 332 MB/s w jednostkach dziesiętnych. Nie jest to szybkość transmisji łącza kamery ani zmierzona wydajność produktu ALVEXIS.
Jedna dodatkowa kopia pełnoklatkowa odczytuje i zapisuje ten ładunek, dodając około 664 MB/s ruchu pamięci przed uwzględnieniem zachowania pamięci podręcznej lub innych operacji. Tensory modeli, konwersja kolorów, rejestrowanie i usługi współbieżne dodają własny ruch. To wyjaśnia, dlaczego projekt może być ograniczony przez przenoszenie danych, nawet jeśli jego główna ocena akceleratora wydaje się wystarczająca.
| Pracuj na miejscu | Punkt wyjścia | Dowód przed popełnieniem |
|---|---|---|
| Przyjmowanie i synchronizacja kamery | Obsługiwane interfejsy SoC, w razie potrzeby z FPGA lub urządzeniem towarzyszącym | Jednoczesne przechwytywanie strumienia, zachowanie znacznika czasu i utrata pod obciążeniem |
| Wnioskowanie neuronowe | NPU, gdy obsługiwany jest wybrany wykres i precyzja | Dokładność konwersji i ciągłe pomiary aplikacji na urządzeniu |
| Usługi i nagrywanie Linux | Zasoby MPU i jawnie budżetowana ścieżka przechowywania | Zachowanie procesora, pamięci i I/O, gdy wnioskowanie jest aktywne |
| Sterowanie zewnętrzne krytyczne czasowo | Odpowiedni sterownik czasu rzeczywistego lub sprawdzona implementacja deterministyczna | Dowody dotyczące czasu reakcji przy odpowiednim obciążeniu pracą w najgorszym przypadku |
Celem partycjonowania jest wyraźne określenie każdego wymagania dotyczącego czasu i zasobów. Nie oznacza to, że każdy projekt wymaga czterech różnych procesorów. Rozpocznij od najprostszej architektury, która spełnia wymagania, a następnie dodaj zasoby tam, gdzie uzasadniają to pomiary lub ograniczenia interfejsu.
Plan walidacji wyboru zestawu procesorów
- Zamroź kontrakt wejściowy: czujniki, formaty danych, model, rozdzielczość i warunki pracy.
- Przed porównaniem przepustowości akceleratora sprawdź obsługę modelu i jakość wyjściową.
- Zmierz oddzielnie pozyskiwanie, przetwarzanie wstępne, wnioskowanie i dostarczanie, a następnie zmierz całą ścieżkę.
- Powtórz tę czynność przy długotrwałym obciążeniu termicznym, z rejestracją, połączeniem sieciowym i aktywnymi wszystkimi przeznaczonymi czujnikami.
- Rekordowy wiek kolejki, utracone dane wejściowe i opóźnienia końcowe, więc wysoka średnia szybkość nie ukrywa sporadycznych opóźnień.
Zachowaj wersję płytki, obraz oprogramowania, wersje zestawu narzędzi i dane wejściowe testów wraz z wynikami. W przypadku implementacji Rockchip plik Przewodnik wdrażania modelu RK3588 rozwija ten przepływ pracy. W przypadku danych z kamer zdarzeń użyj metody przewodnik integracji oprogramowania w celu zdefiniowania znaczników czasu i reprezentacji przed wybraniem ścieżki wnioskowania.
Po scharakteryzowaniu obciążenia pracą porównaj Opcje integracji SoM i SBC. Decyzja ta łączy architekturę obliczeniową ze złączami, zasilaniem, obudową i pracą produkcyjną.
Od wyboru procesora po produkt do zbudowania
Krótka lista procesorów jest użyteczna tylko wtedy, gdy pasuje do kompletnego produktu. Przed zamówieniem tablicy niestandardowej przekształć zadanie w krótki opis inżynierski:
- Wejścia: liczba czujników, interfejsy, częstotliwości próbkowania i wymagania dotyczące synchronizacji.
- Obciążenie AI: rzeczywisty model, obsługiwana precyzja i akceptowalna jakość wydruku.
- Ograniczenia fizyczne: wymiary, źródło zasilania, chłodzenie i środowisko pracy.
- Dostawa: ilość prototypów, wielkość produkcji, własność oprogramowania i testy akceptacyjne.
W przypadku stacji kontrolnej podłącz rurociąg kamery do wyzwalacza linii, identyfikatora części i interfejsu wyników. Nasz rozwiązanie do przemysłowego widzenia maszynowego i kontroli jakości wyjaśnia, w jaki sposób wymagania te stają się pilotażowe.
MPU, NPU i FPGA Edge AI — często zadawane pytania
Co to jest sztuczna inteligencja MPU?
MPU AI opisuje obciążenia sztucznej inteligencji wdrożone na wbudowanej platformie mikroprocesorowej, zwykle z Linux i często ze zintegrowaną lub towarzyszącą akceleracją, taką jak NPU, GPU lub FPGA. MPU zwykle zarządza aplikacjami, siecią, pamięcią masową, bezpieczeństwem i orkiestracją wokół potoku wnioskowania.
Czy MPU może obsługiwać uczenie maszynowe?
Tak. Obciążenia uczenia maszynowego MPU mogą działać na rdzeniach procesora lub wykorzystywać zintegrowane akceleratory. W przypadku systemów produkcyjnych obsługa modeli, przepustowość pamięci, trwała temperatura i kompleksowe opóźnienia mają większe znaczenie niż sam główny TOPS.
NPU vs FPGA: co jest lepsze dla Edge AI?
NPU jest zwykle prostszym wyborem w przypadku obsługiwanego wnioskowania sieci neuronowej z dużą wydajnością na wat. FPGA jest preferowany, gdy kluczowe znaczenie mają niestandardowe interfejsy czujników, deterministyczne przetwarzanie wstępne, nietypowe formaty danych lub wyspecjalizowane potoki. Wiele systemów wykorzystuje oba.
Czy możesz uruchomić obciążenie NPU na FPGA?
FPGA może implementować akceleratory sieci neuronowych lub potoki wnioskowania, ale nie jest automatycznie równoważny dedykowanemu NPU. Handel obejmuje programowalne zasoby logiczne, pamięć, dojrzałość łańcucha narzędzi, obsługę modeli, wysiłek weryfikacyjny i moc.
Kiedy wnioskowanie AI FPGA ma sens?
Wnioskowanie FPGA AI jest atrakcyjne, gdy wnioskowanie musi być ściśle powiązane z deterministycznym przetwarzaniem wstępnym, niestandardowymi interfejsami lub wyspecjalizowanym ruchem danych. Jest to szczególnie przydatne, gdy standardowe środowisko wykonawcze NPU nie pasuje do ścieżki czujnika lub ograniczeń związanych z opóźnieniem.
Referencje techniczne
- Rockchip: Komponenty oprogramowania i narzędzia do wdrażania RKNN
- Rockchip: przykłady konwersji modelu i wnioskowania
- Gallego i in.: Wizja oparta na zdarzeniach — ankieta
Przykład przepustowości jest wyraźnym obliczeniem, a nie benchmarkiem produktu. Zweryfikuj wybraną architekturę pod kątem zamierzonego obciążenia.
Podziel swoje prawdziwe obciążenie Edge AI na partycje.
Wyślij interfejsy czujników, typ modelu, szybkość transmisji danych, obwiednię mocy i ograniczenia wdrożeniowe. Możemy zmapować je na architekturę MPU/NPU/FPGA i odpowiednią klasę modułu obliczeniowego.
