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.
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
- Dopasuj cel. Wybierz cel RK3588 i zestaw narzędzi zgodny z zamierzonym obrazem płytki.
- Sprawdź wykres. Potwierdź kształty, wstępne przetwarzanie, wyniki i obsługę rzeczywistych operacji w wyeksportowanym modelu.
- Zbuduj konwersję referencyjną. Użyj opcji precyzji obsługiwanych przez ten wykres i wersję oprogramowania.
- Przeczytaj pełny dziennik budowy. Rozwiązuj awarie i sprawdzaj ostrzeżenia przed dodaniem funkcji pozyskiwania kamery lub interfejsu użytkownika.
- 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ł.
| Pomiar | Co odpowiada | Co nagrać |
|---|---|---|
| Czas wykonania modelu | Jak 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ńca | Ile 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ść aplikacji | Czy wdrożony model spełnia wymagania zadania? | Zestaw walidacyjny, metryka zadania i progi decyzyjne |
| Zachowanie termiczne | Czy 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
| Objaw | Pierwsze śledztwo |
|---|---|
| Prawidłowy model, nieprawidłowe etykiety lub pudełka | Kolejność kolorów, normalizacja, zmiana rozmiaru/wypełnianie, układ wyjściowy i przetwarzanie końcowe |
| Nie można zainicjować przekonwertowanego modelu | Wybó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 wyniki | Przechwytuj buforowanie, wiek kolejki, kopie i harmonogram wyjściowy |
| Wyjście INT8 traci przydatne wykrycia | Zakres 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.
