inteintegrity2026-10-22

Beeld- en taalmodellen uitvoeren op Raspberry Pi 5 met RK1820

Verbind een RK1820 M.2-versneller via PCIe met Raspberry Pi 5 en voer MobileNetV2 en Qwen2.5-0.5B lokaal uit met RKNN3 Runtime 1.1.0.

Raspberry PiRK1820RKNN3Rockchip

Raspberry Pi 5 kan een Rockchip RK1820 via PCIe als externe AI-versneller gebruiken. Dit project controleert het volledige traject, van montage en installatie van het stuurprogramma tot inferentie met een beeldmodel en lokale tekstgeneratie op een Pi 5 met een RK1820 M.2 2242-module.

De Pi draait Linux, RKNN3 Runtime en de testprogramma’s. De RK1820 voert het model uit. We hebben MobileNetV2-inferentie en Qwen2.5-0.5B-tekstgeneratie gecontroleerd met Runtime 1.1.0 en een NPU-frequentie van 166 MHz.

De Rockchip-handleiding RK1820_RK1828 Raspberry Pi M.2 Quick Start, V1.0.0, beschrijft zowel RK1820- als RK1828-modules. Het fysiek geteste apparaat in dit project is een RK1820 2242. De onderstaande resultaten bevestigen niet de prestaties of compatibiliteit van alle RK1828-modules, adapters of besturingssysteemimages.

Hardware en gecontroleerde omgeving

OnderdeelGeteste configuratie
HostRaspberry Pi 5 Model B Rev 1.1
VersnellerRK1820 M.2 2242; het apparaat meldt 2560 MB geheugen
AansluitingPCIe-FPC-kabel en RK_EXT_PIHAT_RK182X-adapter
PCIe-verbinding5.0 GT/s, x1
BesturingssysteemDebian 13.7 (trixie), ARM64
Kernel6.18.50+rpt-rpi-2712
Installatiepakketrknn3-rk182x-m2-2242_1.1.0_arm64.deb
PCIe-stuurprogramma3.3.1
Apparaatfirmware / RKNN3 API1.1.0 / 1.1.0
rknn-smi1.3.0
NPU-frequentie166 MHz

Zorg voor koeling van zowel de Pi als de versneller. Rockchip beveelt de officiële Raspberry Pi USB-C-voeding van 27W of een geschikte gelijkwaardige voeding aan. Controleer de ingangseisen en aansluitlabels van de adapter; het totale vermogen van een oplader alleen bepaalt niet of deze geschikt is.

1. De hardware monteren en van stroom voorzien

Bekijk de installatievideo op YouTube

  1. Koppel de voeding los voordat u de module of PCIe-kabel aanraakt.
  2. Plaats de RK1820 in de M.2-sleuf van de adapter en zet deze vast met de juiste schroef.
  3. Verbind de Pi 5 en de adapter met de PCIe-FPC-kabel. Controleer de richting van de contacten en sluit beide vergrendelingen.
  4. Controleer de koeling en alle aansluitingen voordat u de voeding inschakelt.
  5. Sluit bij de in de handleiding beschreven RK_EXT_PIHAT_RK182X-adapter de voeding aan op de USB-C-voedingsingang van de adapter. De adapter voedt het hele systeem. Als alleen de USB-C-ingang van de Pi voeding krijgt, kan de versneller zonder stroom blijven.

Heeft de adapter meerdere USB-C-aansluitingen, bepaal dan eerst aan de hand van de labels of documentatie welke aansluiting de voedingsingang is.

2. Het stuurprogramma en Runtime installeren

Vraag de leverancier van de printplaat of SDK om het Debian-pakket voor uw module. Dit project gebruikt het 2242-pakket; gebruik voor een 2280-module het overeenkomstige pakket dat de leverancier daarvoor heeft goedgekeurd.

De volgende opdrachten worden uitgevoerd in een Linux-shell op de Pi. Gebruik uw eigen gebruikersnaam, adres en aanmeldgegevens voor SSH vanaf uw pc; deze instructies gaan niet uit van een bepaald standaardwachtwoord.

bash
mkdir -p ~/rk1820_rk1828
cd ~/rk1820_rk1828

Kopieer rknn3-rk182x-m2-2242_1.1.0_arm64.deb naar deze map en installeer het pakket:

bash
sudo apt update
sudo apt install -y ./rknn3-rk182x-m2-2242_1.1.0_arm64.deb

Het installatieprogramma compileert het PCIe-stuurprogramma en installeert de firmware, Runtime, het beheerhulpmiddel en de testprogramma’s. Controleer of de compilatie en pakketconfiguratie succesvol zijn voltooid voordat u opnieuw opstart:

bash
sudo reboot

De Pi moet de ingestelde APT-pakketbronnen kunnen bereiken om afhankelijkheden zoals DKMS op te halen. Als het downloaden daarvan mislukt, betekent het vinden van het lokale .deb-bestand niet dat de installatie is voltooid. Herstel de verbinding en voer de installatie opnieuw uit. Voor compilatie zijn ook headers nodig die overeenkomen met de actieve kernel; controleer bij fouten uname -r en /lib/modules/$(uname -r)/build.

3. Het apparaat controleren en een ondersteunde frequentie kiezen

Voer na het opnieuw opstarten en verbinden het volgende uit:

bash
lspci -nn
ls -l /dev/pcie-rkep-* 2>/dev/null
sudo rknn-smi info
sudo rknn-smi -v
sudo rknn-smi info -t npu_freq

Onze PCIe-apparatenlijst bevatte:

text
0001:01:00.0 Processing accelerators [1200]: Rockchip Electronics Co., Ltd RK182x Edge AI Computing Coprocessor [1d87:182a] (rev 01)

Er moet een apparaatnode /dev/pcie-rkep-* aanwezig zijn en rknn-smi info moet RK1820, Online, OK tonen. Noteer de versies van het stuurprogramma, de firmware en de API voordat u modellen test.

Onze 2242-module meldde ondersteuning voor 166, 200, 250 en 300 MHz. Voor de eerste tests gebruikten we 166 MHz:

bash
sudo rknn-smi set -t npu_freq -d 0 -s 166
sudo rknn-smi info -t npu_freq

Kies een waarde uit de daadwerkelijke uitvoer Available NPU Freq van uw apparaat. Neem het voorbeeld van 400 MHz voor een 2280-module niet over voor deze 2242-configuratie.

Verschijnt het apparaat niet, controleer dan de verbinding en het stuurprogramma afzonderlijk:

bash
lsmod | grep rkep
sudo dmesg | grep -iE 'pcie|rkep|rknn' | tail -100

Bij de eerste installatie was het stuurprogramma geladen, maar meldde de externe PCIe-verbinding link down. Er verscheen geen RK-endpoint in lspci en rknn-smi kon niet initialiseren. Latere controles toonden link up, 5.0 GT/s PCIe x1 en het RK-endpoint. Alleen een geladen stuurprogramma bewijst dus niet dat de hardwareverbinding werkt. Controleer de adaptervoeding en FPC-aansluiting voordat u de software herhaaldelijk opnieuw installeert. Uit de beschikbare waarnemingen blijkt niet welke fysieke wijziging de verbinding herstelde.

4. MobileNetV2 uitvoeren

Plaats het bij elkaar horende model en de gewichten in:

text
~/rk1820_rk1828/MobileNetV2/
├── mobilenetv2-12.rknn
└── mobilenetv2-12.weight

Deze test gebruikte het MobileNetV2-paar uit een bestaand RKNN3-modelpakket onder rknn3_models/v1.0.0/cnn/MobilenetV2. Dat specifieke paar voltooide de inferentie met Runtime 1.1.0; dit betekent niet dat alle oudere modellen compatibel zijn. Vraag de SDK-leverancier om compatibele vooraf geconverteerde modellen of gebruik de RKNN3-modeldownload (toegangscode: rknn) en controleer de meegeleverde namen en instructies.

Voer op de Pi uit:

bash
cd ~/rk1820_rk1828/MobileNetV2
sudo rknn3_model_test \
  mobilenetv2-12.rknn \
  mobilenetv2-12.weight \
  0x1 '' '' 0 1

Het geïnstalleerde testhulpmiddel 1.1.0 verwacht core_mask direct na het pad naar de gewichten. De lege argumenten slaan invoerbestanden en referentie-uitvoer over; 0 selecteert de vorm en 1 voert één iteratie uit. Bekijk rknn3_model_test --help als uw versie afwijkt van dit project of de oudere handleiding.

Bij succes verschijnen de modelinitialisatie, All 1 loops completed successfully en de gemiddelde modeluitvoeringstijd. In één vastgelegde test bij 166 MHz duurde het model 11.343 ms, met een totale tijd van 12.249 ms per iteratie inclusief synchronisatie van invoer en uitvoer.

Deze opdracht gebruikt willekeurige invoer en slaat vergelijking met referentie-uitvoer over. Daarmee wordt het inferentietraject gecontroleerd, niet de classificatienauwkeurigheid. Deze afzonderlijke metingen zijn geen benchmark voor langdurige doorvoer.

5. Tekst genereren met Qwen2.5-0.5B

Voer bij de RKNN3-modeldownload de toegangscode rknn in en ga naar:

text
RKNN3_SDK/rknn3_models/v1.1.0/llm/Qwen2.5-0.5B

Kopieer alle vier bestanden uit dezelfde release naar de werkmap op de Pi. Behoud de officiële bestandsnamen, zonder het achtervoegsel -Instruct uit de oudere handleiding:

text
~/rk1820_rk1828/Qwen2.5-0.5B/
├── Qwen2.5-0.5B.rknn
├── Qwen2.5-0.5B.weight
├── Qwen2.5-0.5B.tokenizer.gguf
└── Qwen2.5-0.5B.embed.bin

De vier bestanden zijn samen ongeveer 632 MB (603 MiB). Controleer de downloadgroottes en de integriteit van de overdracht; combineer een ouder model niet met het embedding-bestand van een ander model.

Voer uit:

bash
cd ~/rk1820_rk1828/Qwen2.5-0.5B
sudo rknn3_session_test \
  Qwen2.5-0.5B.rknn \
  Qwen2.5-0.5B.weight \
  Qwen2.5-0.5B.tokenizer.gguf \
  Qwen2.5-0.5B.embed.bin \
  2048 256 0xff

Dit model biedt een contextconfiguratie van 2048 tokens. Daarom gebruiken we 2048 in plaats van 1024 uit de oudere handleiding. Het volgende argument beperkt de generatie tot 256 nieuwe tokens, gevolgd door het kernmasker.

Het testprogramma van de leverancier voert ingebouwde vragen automatisch uit; de opdracht accepteert geen vraag als positioneel argument. De oorspronkelijke tests bevatten Chinese en Engelse vragen over relativiteit. Voor de opname voor de Engelstalige community hebben we alleen de ingebouwde Chinese vraag in het lokale programma vervangen door Explain the basic concepts of relativity. en een back-up bewaard. Deze aanpassing voor de presentatie is niet nodig om het model uit te voeren; een ongewijzigde installatie kan nog steeds eerst de Chinese test tonen.

Controleer op leesbare gegenereerde tekst, prestatiestatistieken en END TEST. Het bereiken van de limiet voor nieuwe tokens is normaal wanneer het antwoord langer is dan 256 tokens.

WaarnemingVastgelegd resultaat
NPU-frequentie166 MHz
Context / maximaal aantal nieuwe tokens2048 / 256
Generatie van Engelse test 1255 decode-tokens in 3820.02 ms; 66.75 tokens/s
Generatie van Engelse test 2255 decode-tokens in 3821.18 ms; 66.73 tokens/s
Afsluitcode van het proces0
Apparaat na de testOnline / OK

De generatiesnelheden zijn afkomstig uit de Generate-statistieken van het testhulpmiddel. Ze omvatten geen prefill of modelinitialisatie en variëren met vragen, generatie-instellingen, frequentie en modelrelease. Het hulpmiddel meldt 256 uitvoertokens en telt 255 tokens in de getimede Generate-fase; de tabel behoudt dit onderscheid.

Wat dit project aantoont

De gecontroleerde Pi 5 + RK1820-configuratie ondersteunt een CNN-inferentietest en lokale tekstgeneratie via RKNN3 Runtime. Dit vormt een uitgangspunt voor een toepassing waarin de Pi invoer, taakcoördinatie en de gebruikersinterface afhandelt, terwijl de RK1820 de modelinferentie uitvoert. Langere stabiliteitstests en nauwkeurigheidscontroles voor specifieke toepassingen blijven afzonderlijk nodig naast deze eerste validatie.