La famille Jetson Orin de modules de développement Edge/IA/robotique mono-SoC propose 6 options disponibles pour tout niveau de complexité. Cependant, jusqu’à présent, il n’était possible d’utiliser qu’un seul module à la fois. Dans cet article, découvrez comment le nouveau kit de développement Jetson AGX Orin permet de répartir les efforts de développement sur plusieurs modules pour rationaliser les processus et maximiser l'efficacité.
Avec l'annonce du Jetson Orin Nano cette semaine au GTC, toute la gamme de modules Jetson Orin est désormais révélée. Avec jusqu'à 40 TOPS de performances d'IA, les modules Orin Nano établissent la nouvelle norme pour l'IA d'entrée de gamme, tout comme Jetson AGX Orin redéfinit déjà la robotique et d'autres cas d'utilisation autonomes avec 275 TOPS de performances de calcul de classe serveur.
Tous les modules Jetson Orin et le kit de développement Jetson AGX Orin sont basés sur une architecture SoC unique avec un GPU NVIDIA Ampere Architecture, un processeur hautes performances et les derniers accélérateurs. Cette architecture partagée signifie que vous pouvez développer un logiciel pour un module Jetson Orin, puis le déployer facilement sur n'importe lequel des autres.
Vous pouvez commencer le développement dès aujourd'hui pour n'importe quel module Jetson Orin en utilisant le kit de développement Jetson AGX Orin. La capacité du kit de développement à émuler nativement les performances de n'importe lequel des modules vous permet de commencer dès maintenant et de raccourcir votre délai de mise sur le marché. Le kit de développement peut émuler avec précision les performances de n'importe quel module Jetson Orin en configurant les fonctionnalités matérielles et les horloges pour qu'elles correspondent à celles du module cible.
Les équipes de développement bénéficient de la simplicité de n'avoir besoin que d'un seul type de kit de développement, quels que soient les modules ciblés pour la production. Cela simplifie également l’infrastructure CI/CD. Que vous développiez pour la robotique, l'analyse vidéo ou tout autre cas d'utilisation, la capacité de ce kit de développement unique apporte de nombreux avantages.
Transformez le kit de développement Jetson AGX Orin en n'importe quel module Jetson Orin
En une seule étape, vous pouvez transformer un kit de développement Jetson AGX Orin en n'importe quel module Jetson Orin. Des fichiers de configuration de flashage sont fournis pour ce processus.
L'émulation du module Jetson Orin sur le kit de développement Jetson AGX Orin suit les mêmes étapes que celles mentionnées pour flasher un kit de développement Jetson AGX Orin à l'aide des utilitaires de flashage. Après avoir placé votre kit de développement en mode de récupération forcée, l'outil de ligne de commande flash.sh est utilisé pour le flasher avec une nouvelle image. Par exemple, la commande suivante flashe le kit de développement avec sa configuration par défaut :
$ sudo ./flash.sh jetson-agx-orin-devkit mmcblk0p1
La commande exacte que vous utilisez doit être modifiée avec le nom de la configuration flash appropriée pour votre module Jetson Orin ciblé en cours d'émulation. Par exemple, pour émuler un module Jetson Orin NX 16 Go, utilisez la commande suivante :
$ sudo ./flash.sh jetson-agx-orin-devkit-as-nx-16gb mmcblk0p1
Le tableau 1 répertorie les modules Jetson Orin et la commande flash.sh appropriée pour chacun.
| Module Jetson Orin à émuler | Commande de flashage |
| Jetson AGX Orin 64 Go | sudo ./flash.sh jetson-agx-orin-devkit mmcblk0p1 |
| Jetson AGX Orin 32 Go | sudo ./flash.sh jetson-agx-orin-devkit-as-jao-32gb mmcblk0p |
| Jetson Orin NX 16 Go |
sudo ./flash.sh jetson-agx-orin-devkit-as-nx16gb mmcblk0p1
|
| Jetson Orin NX 8 Go |
sudo ./flash.sh jetson-agx-orin-devkit-as-nx8gb mmcblk0p1
|
| Jetson Orin Nano 8 Go* |
sudo ./flash.sh jetson-agx-orin-devkit-as-nano8gb mmcblk0p1
|
| Jetson Orin Nano 4 Go |
sudo ./flash.sh jetson-agx-orin-devkit-as-nano4gb mmcblk0p1
|
Les configurations de flashage pour les modules Jetson Orin Nano ne sont pas encore incluses dans NVIDIA JetPack, depuis la version 5.0.2. Utilisez ces nouvelles configurations après les avoir téléchargées et appliqué un correctif de superposition sur NVIDIA JetPack 5.0.2 conformément aux instructions trouvées dans le fichier téléchargé.
Pour plus d'informations sur les configurations de flashage utiles pour l'émulation, consultez « Configurations de flashage pour l'émulation ».
Une fois le flashage terminé, terminez le démarrage et la configuration initiaux. Vous pouvez ensuite installer le reste des composants NVIDIA JetPack à l'aide de SDK Manager ou simplement en utilisant un gestionnaire de packages sur le kit de développement en cours d'exécution :
sudo apt update sudo apt install nvidia-jetpack
Le kit de développement est maintenant en cours d'exécution, et NVIDIA JetPack est installé. Votre kit de développement Jetson AGX Orin émule désormais les performances et la puissance du module Jetson Orin spécifié.
Émulez avec précision n'importe quel module Jetson Orin
Cette émulation native est précise car elle configure le kit de développement pour qu'il corresponde aux fréquences d'horloge, au nombre de cœurs GPU et CPU et aux accélérateurs matériels disponibles avec le module cible.
Par exemple, lors de l'émulation du module Jetson Orin NX 16 Go :
- Le kit de développement GPU est configuré avec 1024 cœurs CUDA et 32 cœurs Tensor avec une fréquence maximale de 918 MHz.
- Le complexe CPU est configuré avec huit cœurs Arm Cortex-A78AE fonctionnant à 2 GHz.
- La DRAM est configurée à 16 Go avec une bande passante de 102 Go/s.
- Le système offre les mêmes profils d’alimentation pris en charge par le module Jetson Orin NX 16 Go.
Ouvrez l'interface utilisateur graphique de Jetson Power à partir du menu supérieur du bureau et vous verrez que le système a été configuré avec précision selon le module cible émulé. Vous pouvez configurer les horloges maximales en exécutant la commande suivante, et l'interface utilisateur graphique de Jetson Power affichera la modification.
sudo jetson_clocks
La figure 2 montre l'interface utilisateur graphique de Jetson Power après avoir configuré les horloges maximales lorsque le kit de développement Jetson AGX Orin est flashé sur un module Jetson AGX Orin 64 Go émulé par rapport à lorsqu'il est flashé pour émuler un module Jetson Orin NX 16 Go.
En exécutant divers échantillons fournis avec NVIDIA JetPack, vous pouvez voir que les performances sont ajustées pour correspondre à celles du module émulé. Par exemple, l'échantillon d'analyse comparative fourni avec la bibliothèque VPI peut être utilisé pour afficher les performances du processeur, du GPU et du PVA pour les modules Jetson AGX Orin 64 Go, Jetson Orin NX 16 Go et Jetson Orin Nano 8 Go après avoir configuré le kit de développement Jetson AGX Orin pour émuler le module respectif.
Pour exécuter l’exemple d’analyse comparative VPI, utilisez les commandes suivantes :
cd /opt/nvidia/vpi2/samples/05-benchmark sudo cmake . sudo make sudo ./vpi_sample_05_benchmark
L'échantillon d'analyse comparative VPI génère la latence en millisecondes pour l'algorithme gaussien. Le tableau 2 présente les résultats pour chacun des modules ciblés.
|
Algorithme : 5X5 Filtre gaussien Taille de l'image d'entrée : 1920 x 1080 Format d'entrée : U16 |
Émulé comme Jetson AGX Orin 64 Go | Émulé comme Jetson Orin NX 16 Go | Émulé comme Jetson Orin Nano 8 Go |
| Exécution sur CPU | 0.331 | 0.492 | 0.838 |
| Exécution sur GPU | 0.065 | 0.143 | 0.210 |
| Exécution sur PVA | 1.169 | 1.888 | – |
De même, vous pouvez exécuter des échantillons multimédias pour l’encodage et le décodage.
Pour le décodage, exécutez les commandes suivantes :
cd /usr/src/jetson_multimedia_api/samples/00_video_decode sudo make sudo ./video_decode H264 --disable-rendering --stats --max-perf <input file>
Pour encoder, exécutez les commandes suivantes :
cd /usr/src/jetson_multimedia_api/samples/01_video_encode sudo make sudo ./video_encode input.yuv 1920 1080 H264 out.h264 -fps 30 1 -ifi 1000 -idri 1000 --max-perf --stats
Le tableau 3 indique les valeurs de FPS après l'exécution de ces échantillons d'encodage et de décodage avec des flux vidéo H.264 1080P 30FPS.
| Exemple d'encodage/décodage | Émulé comme Jetson AGX Orin 64 Go | Émulé comme Jetson Orin NX 16 Go | Émulé comme Jetson Orin Nano 8 Go |
| Encoder | 178 | 142 | 110* |
| Décoder | 400 | 374 | 231 |
*Jetson Orin Nano n'inclut pas de NVEncoder. Pour le tableau 3, l'encodage pour Jetson Orin Nano a été effectué sur le CPU à l'aide de ffmpeg. La fréquence de 110 FPS est atteinte en utilisant quatre cœurs de CPU. Une fréquence de 73 FPS a été obtenue avec deux cœurs de CPU, contre une fréquence de 33 FPS avec un seul cœur de CPU.
Pour démontrer la précision de l'émulation, nous avons exécuté quelques tests de référence de modèles d'IA sur le kit de développement Jetson AGX Orin émulé en tant que Jetson AGX Orin 32 Go. Nous l'avons ensuite comparé aux résultats obtenus en exécutant les mêmes tests sur le véritable module Jetson AGX Orin 32 Go. Comme vous pouvez le constater à partir des résultats, la différence entre les performances émulées et réelles est insignifiante.
Bien que le kit de développement Jetson AGX Orin comprenne un module de 32 Go, il offre le même niveau de performances et est livré avec 275 TOPS correspondant au Jetson AGX Orin 64 Go. Aucune configuration de flashage spéciale n'est requise pour l'émulation de Jetson AGX Orin 64 Go, mais vous devez utiliser la configuration de flashage appropriée pour émuler Jetson AGX Orin 32 Go sur Jetson AGX Orin Developer Kit.
| Modèle | Jetson AGX Orin 32 Go émulé | Jetson AGX Orin 32 Go réel |
| PeopleNet (V2.5) | 327 | 320 |
| Reconnaissance d'action 2D | 1161 | 1151 |
| Reconnaissance d'action 3D | 70 | 71 |
| Réseau LPR | 2776 | 2724 |
| Réseau de caméras embarquées | 1321 | 1303 |
| BodyPose Net | 359 | 363 |
Réalisez le développement de bout en bout de n'importe quel module Jetson Orin
Vous pouvez travailler avec l'ensemble de la pile logicielle Jetson tout en émulant un module Jetson Orin. Des frameworks tels que NVIDIA DeepStream, NVIDIA Isaac et NVIDIA Riva fonctionnent en mode émulation, et des outils comme TAO Toolkit fonctionnent comme prévu avec les modèles pré-entraînés de NGC. La pile logicielle est indépendante de l’émulation et les performances correspondent précisément à celles de la cible émulée.
Si vous développez un cas d'utilisation robotique ou un pipeline d'IA de vision, vous pouvez effectuer dès aujourd'hui un développement de bout en bout pour n'importe quel module Jetson Orin à l'aide du kit de développement Jetson AGX Orin et du mode d'émulation.
Développez des applications robotiques avec NVIDIA Isaac ROS pour n'importe quel module Jetson Orin. Utilisez simplement la bonne configuration de flashage pour flasher et démarrer votre développement ROS. La figure 5 montre l'exécution d'Isaac ROS Stereo Disparity DNN sur le kit de développement Jetson AGX Orin émulé en tant que Jetson Orin Nano 8 Go.
Développez des pipelines d'IA de vision à l'aide de DeepStream sur le kit de développement Jetson AGX Orin pour n'importe quel module Jetson Orin. Ça marche, tout simplement !
La figure 6 montre un pipeline IVA exécutant la détection de personnes à l'aide de DeepStream sur le kit de développement Jetson AGX Orin émulé comme Jetson Orin Nano 8 Go avec quatre flux de H.265 1080P 30 FPS.
Accédez au marché plus rapidement avec le kit de développement Jetson AGX Orin
Grâce à la prise en charge de l'émulation, vous pouvez passer à la production plus rapidement en démarrant et en terminant le développement de votre application sur le kit de développement Jetson AGX Orin. Achetez le kit et démarrez votre développement.
