Parker Hu2026-09-20

Benchmark d’accélération matérielle VPU et NPU sur RK3588

Benchmark reproductible sur reComputer RK3588 de l’encodage MPP NV12 vers MJPG/H.264/H.265, du décodage MJPG vers YUV420 et de l’inférence YOLOv8n/s/m accélérée par RKNN.

vpunpubenchmarkDownload

Ce projet mesure quantitativement trois capacités principales de la plate-forme RK3588 :

  1. Encodage vidéo MPP
  2. Décodage vidéo MPP
  3. Inférence RKNN

Périmètre du test :

  • Encodage : NV12 -> MJPG / H.264 / H.265
  • Décodage : MJPG -> YUV420
  • Inférence : entrée 640x640 avec YOLOv8n / YOLOv8s / YOLOv8m
  • Résolutions : 720p / 1080p / 2K / 4K / 8K

#Résumé du benchmark RK3588

  • Généré le : 2026-09-20 17:09:50
  • Codecs : préchauffage 20 images + mesure 120 images
  • Inférence : préchauffage 20 images + mesure 200 images
  • CPU governor:ondemand
  • Température avant/après : environ 35–36°C / 36–37°C

#Test d’encodage vidéo (NV12 -> MJPG / H.264 / H.265)

RésolutionTailleCodecDébit (Mbps)Pure FPSPipeline FPSMoyenne Pure (ms)P95 Pure (ms)Sortie (MB)État
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

#Test de décodage vidéo (MJPG -> YUV420)

RésolutionTailleImagesPure FPSPipeline FPSMoyenne Pure (ms)P95 Pure (ms)État
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

#Test d’inférence YOLOv8 640x640

ModèleFPS d’inférenceMoyenne (ms)P95 (ms)Prétraitement (ms)NPU (ms)État
YOLOv8n33.928.633.10.919.6OK
YOLOv8s16.759.264.60.837.8OK
YOLOv8m9.9100.8105.80.881.8OK

#1. Exécuter le benchmark

Exécutez-le sur la carte 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

Les résultats sont enregistrés dans :

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

Paramètres courants :

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

Le script enveloppe définit LD_LIBRARY_PATH vers lib/ dans le paquet. Si l’utilisateur ne peut pas accéder à /dev/mpp_service ou /dev/rga, il relance via sudo.

#2. Capacités du projet

Le projet génère les images de test, exécute l’encodage multi-résolution, le décodage matériel MJPG et l’inférence YOLOv8 640x640, puis exporte un résumé Markdown et les données CSV.

#3. Processus de test

  1. Générer des images dynamiques YUV420SP (NV12) à la résolution choisie.
  2. Exécuter séparément les encodeurs MPP MJPG, H.264 et H.265.
  3. Conserver le flux MJPG et le décoder en YUV420 avec l’API advanced task de MPP.
  4. Générer des images 640x640 NV12 et les prétraiter avec RGA.
  5. Exécuter les modèles RKNN YOLOv8n/s/m convertis pour RK3588.
  6. Agréger FPS, latence moyenne, P95 et taille de sortie.
  7. Générer les rapports Markdown et CSV.

#4. Approche technique

#4.1 Encodage

L’encodeur utilise Rockchip MPP avec une entrée dynamique YUV420SP (NV12). MJPG utilise Q=80 ; H.264/H.265 utilisent les débits CBR du tableau. Chaque groupe préchauffe 20 images et en mesure 120.

  • Pure FPS : images mesurées divisées par le temps cumulé dans encode_put_frame et encode_get_packet de MPP
  • Pipeline FPS : débit de la boucle complète avec génération, écriture d’entrée et copie de sortie
  • Pure Avg/P95 : latence moyenne et P95 par image dans l’intervalle MPP
  • Output : taille totale encodée des 120 images mesurées

Pure FPS est un débit de service en soumission série. Il exclut l’inactivité du VPU pendant la préparation CPU et ne représente pas le débit final d’une chaîne caméra, réseau, affichage ou stockage.

#4.2 Décodage

Le décodeur réutilise le flux MJPG de chaque résolution et exécute MJPG -> YUV420 avec l’API advanced task MPP du RK3588. Chaque groupe préchauffe 20 images et en mesure 120.

  • Pure Decode FPS : de la fin de l’allocation/copie du paquet au retour de l’image par MPP
  • Pipeline FPS : inclut aussi la préparation du paquet et le recyclage de task

#4.3 Inférence

Le chemin génère des images 640x640 NV12, les prétraite avec RGA et les envoie à RKNN Runtime pour tester :

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

Chaque modèle préchauffe 20 images et en mesure 200. Le rapport distingue les latences Infer, prétraitement RGA et étape RKNN.

#5. Explication des métriques

#5.1 Résultats d’encodage

Utilisez Pure FPS pour comparer le service VPU et Pipeline FPS pour la boucle complète non optimisée. Leur écart reflète génération et copies mémoire.

#5.2 Résultats de décodage

Pure Avg/P95 et Pure FPS décrivent l’intervalle matériel après préparation du paquet ; Pipeline FPS couvre la boucle complète.

#5.3 Résultats d’inférence

Inference FPS vient de l’appel série complet Infer ; Preprocess isole RGA et NPU l’étape RKNN. Caméra, réseau, affichage et files applicatives sont exclus.

#6. Évaluation objective

En excluant la génération NV12, les écritures d’entrée et les copies de sortie côté CPU, l’encodage pur 4K H.264/H.265 sur RK3588 atteint environ 64 FPS, le décodage pur 4K MJPG atteint 106.1 FPS et YOLOv8n atteint 33.9 FPS. Les valeurs bout en bout inférieures reflètent surtout la préparation et les transferts mémoire du Pipeline, pas le VPU seul. Bien que le 8K H.265 pur atteigne 32.4 FPS, la boucle complète reste à 18.2 FPS ; un 8K@30 durable exige zero-copy, soumission parallèle et optimisation globale.

#7. Stratégie de déploiement recommandée

  1. Utilisez YOLOv8n par défaut ; pour YOLOv8s/m, échantillonnez les images et utilisez des files bornées.
  2. Les chaînes 4K H.264/H.265 de production doivent utiliser zero-copy ou des tampons partagés et réserver la bande passante mémoire.
  3. N’utilisez pas 32.4 Pure FPS pour revendiquer un 8K@30 bout en bout ; le Pipeline actuel atteint seulement 18.2 FPS.
  4. Le P95 du décodage 8K MJPG dépasse l’intervalle d’une image à 30 FPS ; conservez une marge.
  5. Avant publication, fixez les fréquences si nécessaire, exécutez au moins trois fois et publiez médiane, P95 et température.