Jak stos oprogramowania RK3588 NPU pasuje do siebie

Stos oprogramowania RKNN Rockchip oddziela przygotowanie modelu od jego wykonania na urządzeniu. RKNN-Toolkit2 zapewnia narzędzia do konwersji i oceny. RKNN-Toolkit-Lite2 udostępnia interfejs Pythona na obsługiwanych platformach docelowych, natomiast RKNN Runtime udostępnia interfejsy C/C++. Sterownik jądra łączy środowisko wykonawcze z NPU. Sprawdź zgodność tych komponentów z pakietem wsparcia płyty dostarczonym dla modułu.

Przydatny zapis wdrożenia identyfikuje płytę i wersję SoM, obraz Linux, sterownik, środowisko wykonawcze, wersję narzędzia do konwersji, model oryginalny i model przekonwertowany. Zapisz skrypt kompilacji i ustawienia przetwarzania wstępnego obok artefaktu modelu. Nazwa pliku, np detector.rknn samo w sobie nie może wyjaśnić, dlaczego jedno wdrożenie zachowuje się inaczej niż inne.

Przygotuj sięModel referencyjny, dane wejściowe i oczekiwane wyniki
KonwertujKonfiguracja docelowa i kontrola dokładności
WdróżŚrodowisko wykonawcze, aplikacje i ciągłe testowanie

Krok 1: ustal odniesienie przed konwersją

Uruchom oryginalny model na reprezentatywnym zestawie walidacyjnym. Zapisz surowe wyniki i istotne metryki aplikacji: dokładność klasyfikacji, jakość wykrywania lub inny pomiar specyficzny dla zadania. W przypadku detektora zachowaj kolejność etykiet, progi ufności i ustawienia przetwarzania końcowego. Staje się to punktem odniesienia dla przekonwertowanego modelu.

Zapisz cały kontrakt wejściowy. Uwzględnij wymiary, wielkość partii, kolejność RGB lub BGR, układ, zakres numeryczny, normalizację, zmianę rozmiaru i dopełnienie. Prawidłowy model może dawać słabe wyniki, jeśli aplikacja oznaczy obraz inaczej niż uczący lub dwukrotnie odejmie przesunięcie. Równie dokładnie dokumentuj przetwarzanie końcowe poza siecią.

Użyj Rockchip Model zoo RKNN jako punkt wyjścia, jeśli obejmuje pasujący model i cel. Przykłady konwersji i wnioskowania są bardziej przydatne niż zakładanie, że jakakolwiek wyeksportowana sieć będzie działać bez zmian. Wybierz znaną wersję repozytorium i postępuj zgodnie z instrukcjami dla tego konkretnego przykładu.

Krok 2: przekonwertuj model i sprawdź obsługę operatora

  1. Dopasuj cel. Wybierz cel RK3588 i zestaw narzędzi zgodny z zamierzonym obrazem płytki.
  2. Sprawdź wykres. Potwierdź kształty, wstępne przetwarzanie, wyniki i obsługę rzeczywistych operacji w wyeksportowanym modelu.
  3. Zbuduj konwersję referencyjną. Użyj opcji precyzji obsługiwanych przez ten wykres i wersję oprogramowania.
  4. Przeczytaj pełny dziennik budowy. Rozwiązuj awarie i sprawdzaj ostrzeżenia przed dodaniem funkcji pozyskiwania kamery lub interfejsu użytkownika.
  5. Porównaj wyniki. Przepuść te same dane wejściowe przez modele oryginalne i przekonwertowane, z tym samym przetwarzaniem końcowym.

Nieobsługiwana operacja może wymagać innego eksportu, przepisania wykresu lub jawnego etapu przetwarzania procesora. Nie zakładaj, że środowisko wykonawcze wykona w sposób przezroczysty każdą nieobsługiwaną warstwę. Jeśli część obciążenia zostanie przeniesiona do procesora, uwzględnij transfery i synchronizację w pomiarze wydajności.

Krok 3: oceń INT8 pod kątem wymagań dotyczących dokładności

Kwantyzacja zmienia reprezentację numeryczną. Jeśli wybrany proces konwersji wykorzystuje dane kalibracyjne, wybierz dane wejściowe reprezentatywne dla wdrożenia: oświetlenie, rozmiar obiektu, tło i warunki operacyjne. Zachowaj oddzielny zestaw walidacyjny, aby ocenić wynik. Konwersja, która zakończyła się pomyślnie, nadal wymaga sprawdzenia dokładności.

Porównaj wyniki aplikacji, a nie tylko różnicę między dwoma tensorami. Na przykład niewielka zmiana liczbowa może przesunąć wykrycie poza próg ufności. Sprawdź trudne przypadki, zajęcia z niewielką liczbą przykładów i warunki, w których oryginalny model był już marginalny. Jeśli dokładność spadnie poniżej limitu akceptacji, przed wymianą sprzętu należy ponownie sprawdzić zakres kalibracji i przetwarzanie wstępne.

The ONNX Dokumentacja kwantyzacji środowiska wykonawczego stanowi użyteczną wiedzę na temat kompromisów numerycznych i badania dokładności. Opcje konwersji RKNN i obsługiwana precyzja muszą jeszcze zostać sprawdzone we własnej dokumentacji Rockchip dla wybranej wersji.

Krok 4: zmierz więcej niż czas wnioskowania

Zmierz obciążenie po rozgrzewce i ponownie podczas długotrwałego biegu. Rejestruj temperaturę, tryb zasilania, procesy współbieżne oraz obudowę lub układ chłodzenia. Przydatnym wynikiem jest powtarzalny zakres wydajności, w tym dokładność i opóźnienie, w warunkach, w których produkt będzie działał.

PomiarCo odpowiadaCo nagrać
Czas wykonania modeluJak długo trwa to wywołanie w czasie wykonywania?Kształt danych wejściowych, precyzja, granice czasowe i wersja środowiska wykonawczego
Opóźnienie od końca do końcaIle lat ma obserwacja w momencie dostarczenia wyniku?Rejestruj czas, przetwarzanie wstępne, kolejkowanie, wnioskowanie i czas wyjściowy
Utrzymana przepustowośćIle kompletnych wyników dostarcza się w miarę upływu czasu?Długość przebiegu, zakończone żądania i porzucone lub pominięte dane wejściowe
Dokładność aplikacjiCzy wdrożony model spełnia wymagania zadania?Zestaw walidacyjny, metryka zadania i progi decyzyjne
Zachowanie termiczneCzy wynik jest stabilny po nagrzaniu systemu?Warunki otoczenia, chłodzenie, temperatury i zegary, jeśli są dostępne

Jako przykładowy budżet można przyjąć, że aplikacja otrzymująca nową ramkę co 40 ms musi dotrzymać kroku 25 klatek na sekundę, jeśli przetwarza każdą ramkę. Pomiar wnioskowania 12 ms pozostawi resztę budżetu na zakup, przygotowanie i dostawę jedynie w odpowiednio zaplanowanym projekcie. Nie dowodzi to opóźnienia między kamerą a efektem w 12. Liczby te stanowią przykład planowania, a nie pomiar wydajności ForgeEdge.

Użyj zegara monotonicznego dla czasu trwania oprogramowania. Podaj medianę i opóźnienie końcowe, a nie pojedynczą najlepszą obserwację i zachowaj surowe pomiary. W przypadku kilku kamer należy uwzględnić obciążenie wszystkich aktywnych strumieni, w tym dekodowanie, konwersję obrazu, przenoszenie pamięci i nagrywanie. Kolejka rosnąca w trakcie testu wskazuje, że średnia pojemność jest niższa od przychodzącego obciążenia.

Typowe objawy wdrażania

ObjawPierwsze śledztwo
Prawidłowy model, nieprawidłowe etykiety lub pudełkaKolejność kolorów, normalizacja, zmiana rozmiaru/wypełnianie, układ wyjściowy i przetwarzanie końcowe
Nie można zainicjować przekonwertowanego modeluWybór celu, zgodność środowiska wykonawczego/sterownika i integralność artefaktów modelu
Dobry krótki benchmark, słaba trwała wydajnośćTemperatura, tryb zasilania, ciśnienie pamięci i praca konkurencyjna
Akceptowalny czas wnioskowania, wyraźnie opóźnione wynikiPrzechwytuj buforowanie, wiek kolejki, kopie i harmonogram wyjściowy
Wyjście INT8 traci przydatne wykryciaZakres kalibracji, równoważność przetwarzania wstępnego i walidacja na poziomie zadania

Zamień prototyp w powtarzalny produkt

Spakuj model, środowisko wykonawcze i konfigurację aplikacji jako wersję kontrolowaną. Zdefiniuj kontrole uruchamiania, raportowanie awarii, odzyskiwanie i ścieżkę wycofywania. Przed podłączeniem kamery należy przeprowadzić mały referencyjny test wejściowy, który może zidentyfikować nieprawidłowe wdrożenie. Oddziel kontrolę oprogramowania od testu czujnika fizycznego, który sprawdza również okablowanie, sterowniki i ustawienia ekspozycji.

Jeśli płyta wymaga innych złączy, kondycjonowania zasilania lub interfejsów czujników, przejrzyj Decyzja SoM kontra SBC i płyta bazowa do procesu projektowania modułu obliczeniowego. Decyzje te określają, w jaki sposób udana demonstracja modelu stanie się systemem łatwym w utrzymaniu.

Pytania dotyczące wdrożenia RK3588 NPU

Czy każdy model ONNX może działać na RK3588 NPU?

Zgodność zależy od rzeczywistego wykresu, kształtów, operacji i wybranego zestawu narzędzi. Zapewnij wsparcie poprzez konwersję i weryfikację na urządzeniu modelu, który zamierzasz wysłać.

Czy reklamowana ocena akceleratora przewiduje liczbę klatek na sekundę w aplikacji?

Nie. Sieć, precyzja, zachowanie pamięci, przetwarzanie wstępne i czas działania określają zmierzoną przepustowość aplikacji. Podczas porównywania platform użyj docelowego obciążenia i jego pełnej ścieżki danych.

Czy powinienem najpierw zoptymalizować sieć neuronową?

Najpierw profil. Jeśli dominuje pozyskiwanie, konwersja obrazu lub kolejkowanie, skrócenie czasu wykonywania modelu może mieć niewielki wpływ na wiek wyników uzyskiwanych przez aplikację.

Referencje techniczne

Określ zakres obciążenia Edge AI.

Udostępnij model, rozdzielczość wejściową, interfejsy kamery, wymaganą częstotliwość wyników i zakres mocy. Możemy ocenić prace integracyjne wokół platformy opartej na RK3588 do lokalnego przetwarzania.