Parker Hu2026-09-20

RK3588 VPU- en NPU-hardwareversnellingsbenchmark

Reproduceerbare benchmark op de reComputer RK3588 voor MPP-hardwarecodering van NV12 naar MJPG/H.264/H.265, MJPG-naar-YUV420-decodering en RKNN-versnelde YOLOv8n/s/m-inferentie.

vpunpubenchmarkDownload

Dit project meet drie kerncapaciteiten van het RK3588-platform:

  1. MPP-videocodering
  2. MPP-videodecodering
  3. RKNN-inferentie

Testbereik:

  • Codering: NV12 -> MJPG / H.264 / H.265
  • Decodering: MJPG -> YUV420
  • Inferentie: 640x640-invoer met YOLOv8n / YOLOv8s / YOLOv8m
  • Resoluties: 720p / 1080p / 2K / 4K / 8K

#Samenvatting RK3588-benchmark

  • Gegenereerd: 2026-09-20 17:09:50
  • Codec: 20 opwarmframes + 120 meetframes
  • Inferentie: 20 opwarmframes + 200 meetframes
  • CPU governor:ondemand
  • Temperatuur voor/na: ongeveer 35–36°C / 36–37°C

#Videocoderingstest (NV12 -> MJPG / H.264 / H.265)

ResolutieGrootteCodecBitrate (Mbps)Pure FPSPipeline FPSPure gemiddelde (ms)Pure P95 (ms)Uitvoer (MB)Status
720p1280×720MJPG20.0128.094.97.88.217.2OK
720p1280×720H.2644.0397.3233.72.52.81.8OK
720p1280×720H.2654.0400.0285.12.52.61.1OK
1080p1920×1080MJPG30.0203.095.94.95.338.6OK
1080p1920×1080H.2648.0218.0121.74.65.13.6OK
1080p1920×1080H.2658.0213.4111.14.74.82.4OK
2K2560×1440MJPG45.0120.745.68.38.568.4OK
2K2560×1440H.26416.0137.092.77.37.47.3OK
2K2560×1440H.26516.0138.593.87.27.34.2OK
4K3840×2160MJPG60.055.920.317.919.3153.9OK
4K3840×2160H.26432.064.035.415.616.014.6OK
4K3840×2160H.26532.064.835.615.415.79.6OK
8K7680×4320MJPG90.015.610.264.265.4615.2OK
8K7680×4320H.26464.016.711.359.960.727.5OK
8K7680×4320H.26564.032.418.230.831.231.0OK

#Videodecoderingstest (MJPG -> YUV420)

ResolutieGrootteFramesPure FPSPipeline FPSPure gemiddelde (ms)Pure P95 (ms)Status
720p1280×720120/120497.4477.82.02.4OK
1080p1920×1080120/120311.7290.33.23.4OK
2K2560×1440120/120208.8198.84.85.2OK
4K3840×2160120/120106.1100.69.410.1OK
8K7680×4320120/12030.428.832.934.4OK

#YOLOv8 640x640-inferentietest

ModelInferentie-FPSGemiddelde (ms)P95 (ms)Voorverwerking (ms)NPU (ms)Status
YOLOv8n33.928.633.10.919.6OK
YOLOv8s16.759.264.60.837.8OK
YOLOv8m9.9100.8105.80.881.8OK

#1. De benchmark uitvoeren

Voer hem uit op de reComputer RK3588.

bash
sudo apt update && sudo apt install unzip -y
wget https://files.seeedstudio.com/RK3576/rk3588_mpp_benchmark_install.zip -O install.zip && unzip install.zip
cd ./install && export LD_LIBRARY_PATH="$(pwd)/lib:${LD_LIBRARY_PATH}" && chmod +x ./bin/rk3588_benchmark
sudo ./bin/rk3588_benchmark

De resultaten worden opgeslagen in:

bash
ls ./benchmark_results
benchmark_summary.md  video_codec_benchmark.csv  yolov8_inference_benchmark.csv

Veelgebruikte parameters:

bash
./bin/rk3588_benchmark \
  --output-dir ./benchmark_results \
  --resolutions 720p,1080p,2k,4k,8k \
  --models yolov8n,yolov8s,yolov8m \
  --codec-warmup 20 \
  --codec-frames 120 \
  --infer-warmup 20 \
  --infer-frames 200

Het wrapperscript wijst LD_LIBRARY_PATH naar lib/ in het pakket. Kan de gebruiker /dev/mpp_service of /dev/rga niet openen, dan wordt opnieuw uitgevoerd via sudo.

#2. Projectmogelijkheden

Het project genereert testframes, voert codering met meerdere resoluties, MJPG-hardwaredecodering en 640x640-YOLOv8-inferentie uit en exporteert een Markdown-samenvatting en CSV-brondata.

#3. Testproces

  1. Dynamische YUV420SP (NV12)-frames op de gekozen resolutie genereren.
  2. De MPP-encoders MJPG, H.264 en H.265 afzonderlijk uitvoeren.
  3. De MJPG-elementaire stream bewaren en via de MPP advanced task API naar YUV420 decoderen.
  4. 640x640 NV12-frames genereren en met RGA voorbewerken.
  5. Voor RK3588 geconverteerde YOLOv8n/s/m-RKNN-modellen uitvoeren.
  6. FPS, gemiddelde latentie, P95-latentie en uitvoergrootte samenvoegen.
  7. Markdown- en CSV-rapporten genereren.

#4. Technische aanpak

#4.1 Codering

De encoder gebruikt Rockchip MPP met dynamische YUV420SP (NV12)-invoer. MJPG gebruikt Q=80; H.264/H.265 gebruiken de CBR-bitrates uit de tabel. Elke groep warmt 20 frames op en meet 120.

  • Pure FPS: meetframes gedeeld door de opgetelde tijd in MPP encode_put_frame en encode_get_packet
  • Pipeline FPS: throughput van de hele lus inclusief generatie, invoerschrijven en uitvoerkopie
  • Pure Avg/P95: gemiddelde en P95-latentie per frame in het MPP-interval
  • Output: totale gecodeerde grootte van de 120 meetframes

Pure FPS is een servicesnelheid bij seriële indiening. Stilstand van de VPU terwijl de CPU het volgende frame voorbereidt telt niet mee; dit is dus niet de eindsnelheid van een volledige camera-, netwerk-, weergave- of opslagketen.

#4.2 Decodering

De decoder hergebruikt de MJPG-stream per resolutie en voert MJPG -> YUV420 uit via de RK3588 MPP advanced task API. Elke groep warmt 20 frames op en meet 120.

  • Pure Decode FPS: vanaf voltooide pakkettoewijzing en -kopie tot MPP het uitvoerframe teruggeeft
  • Pipeline FPS: omvat ook pakketvoorbereiding en task-recycling

#4.3 Inferentie

Het pad genereert 640x640 NV12-frames, verwerkt ze vooraf met RGA en stuurt ze naar RKNN Runtime om deze modellen te testen:

  • yolov8n_rk3588.rknn
  • yolov8s_rk3588.rknn
  • yolov8m_rk3588.rknn

Elk model warmt 20 frames op en meet 200. Het rapport registreert de latentie van Infer, RGA-voorverwerking en de RKNN-fase.

#5. Uitleg van de metrieken

#5.1 Coderingsresultaten

Gebruik Pure FPS om de VPU-service te vergelijken en Pipeline FPS voor de niet-geoptimaliseerde volledige lus. Het verschil toont de invloed van framegeneratie en geheugenkopieën.

#5.2 Decoderingsresultaten

Pure Avg/P95 en Pure FPS beschrijven het hardware-interval na pakketvoorbereiding; Pipeline FPS omvat de volledige lus.

#5.3 Inferentieresultaten

Inference FPS komt uit de volledige seriële Infer-aanroep; Preprocess meet RGA en NPU de RKNN-fase. Camera, netwerk, scherm en applicatiewachtrijen zijn uitgesloten.

#6. Objectieve beoordeling

Zonder CPU-side NV12-generatie, invoerschrijven en uitvoerkopieën haalt pure 4K H.264/H.265-codering op de RK3588 ongeveer 64 FPS, pure 4K MJPG-decodering 106.1 FPS en YOLOv8n 33.9 FPS. Lagere end-to-endwaarden weerspiegelen vooral framevoorbereiding en geheugenverplaatsing in de Pipeline, niet alleen de VPU. Pure 8K H.265 haalt 32.4 FPS, maar de volledige lus 18.2 FPS; blijvende 8K@30 vereist zero-copy, parallelle indiening en optimalisatie van het hele mediapad.

#7. Aanbevolen implementatiestrategie

  1. Gebruik standaard YOLOv8n; pas bij YOLOv8s/m framesampling en begrensde wachtrijen toe.
  2. Productie-4K H.264/H.265-paden moeten zero-copy of gedeelde capturebuffers gebruiken en geheugenbandbreedte reserveren.
  3. Gebruik 32.4 Pure FPS niet om end-to-end 8K@30 te claimen; de huidige Pipeline haalt 18.2 FPS.
  4. De P95 van 8K MJPG-decodering overschrijdt één frame-interval bij 30 FPS; houd marge.
  5. Zet vóór publicatie waar nodig klokken vast, voer minstens drie rondes uit en rapporteer mediaan, P95 en temperatuur.