Introduction à NVIDIA DeepStream Graph Composer

Effectué

Nous avons précédemment présenté le kit de développement logiciel (SDK) NVIDIA DeepStream. Les développeurs peuvent l’utiliser pour créer des applications Intelligent Video Analytics (IVA) optimisées capables d’ingérer plusieurs sources d’entrée vidéo, d’appliquer une inférence en cascade sur les trames traitées et de produire des données de télémétrie qui peuvent être publiées sur des services cloud comme Microsoft Azure.

Nous avons examiné le développement d’applications avec le kit de développement logiciel (SDK) NVIDIA DeepStream à l’aide d’une approche pilotée par les fichiers de configuration. Cette méthode est une stratégie très favorable au développement IVA, mais NVIDIA Graph Composer va plus loin dans cette approche. Vous pouvez l’utiliser pour générer des pipelines compatibles DeepStream à l’aide d’un éditeur visuel avec des composants de glisser-déplacer. À l’aide de ce mécanisme, vous pouvez encore simplifier le développement tout en visualisant les relations entre les composants dans un graphique interactif.

Screenshot that shows the NVIDIA DeepStream Graph Composer application.

Les composants disponibles peuvent vous sembler familiers en raison des groupes de configuration que nous avons utilisés précédemment. Ces composants et les groupes de configuration découlent des fonctions fournies dans les bibliothèques C du kit de développement logiciel (SDK) DeepStream. Ces composants sont mis à la disposition de l’application Composer à l’aide d’un registre local qui extrait et stocke les extensions fournies par NVIDIA. L’application Composer permet également d’importer des extensions personnalisées afin de prendre en charge les composants.

Une fois qu’un graphique est prêt pour la production, un outil container-builder inclus permet aux développeurs d’empaqueter les graphiques Composer dans des charges de travail de conteneur capables de s’exécuter sur des appareils x86 ou ARM64. Vous pouvez utiliser cette fonctionnalité avec Graph Composer pour créer des pipelines IVA conteneurisés qui peuvent être déployés sur des appareils de type serveur ou de périphérie.

Le processus complet de ce workflow est illustré ici.

Diagram that shows an NVIDIA DeepStream Graph Composer workflow.

Intégrer des charges de travail conteneurisées Graph Composer avec des services Azure IoT

En empaquetant les charges de travail de DeepStream Graph Composer dans des conteneurs, les applications IVA peuvent s’exécuter dans des scénarios de la périphérie vers le cloud avec diverses fonctionnalités, notamment :

  • Messages d’appareil-à-cloud.
  • Messages cloud-à-appareil.
  • Analyse des appareils.
  • Mises à jour à distance.
  • Déploiement évolutif via l’intégration à Azure IoT Edge.

Cette offre de service vous permet d’instrumenter un appareil compatible avec un runtime qui fournit l’orchestration de charges de travail conteneurisées et une connectivité sécurisée à un point d’ingestion appelé hub IoT.

Le runtime IoT Edge s’exécute sur l’appareil physique où les charges de travail conteneurisées sont connues sous le nom de modules. Ces modules peuvent communiquer les uns avec les autres à l’aide du routage des messages. Par exemple, un module peut produire des données de télémétrie et un autre agréger des messages à partir des premiers messages à l’aide d’Azure Stream Analytics en périphérie. Les messages de ce module peuvent ensuite être publiés directement dans le cloud par le biais d’une connexion à un hub IoT.

Diagram that shows an Azure IoT Edge runtime.

Avec les appareils inscrits et gérés en toute sécurité à partir d’un hub IoT, il est possible de déployer en toute transparence des charges de travail mises à jour sur des appareils et de surveiller l’état de connectivité d’une flotte entière. Dès lors, vous pouvez mettre vos applications DeepStream Graph Composer applications en production avec prise en charge de toutes les étapes du cycle de vie de développement de logiciels. Ces domaines incluent la prise en charge du plug-in pour Azure DevOps, la possibilité de modifier les charges de travail en cours d’exécution à l’aide des jumeaux de moduleet les déploiements ciblés basés sur les métadonnées d’appareil.

Diagram that shows an Azure IoT Hub cloud interface.

Dans ce module, nous allons découvrir comment développer des applications à l’aide de DeepStream Graph Composer. Nous allons ensuite empaqueter cette sortie dans une charge de travail conteneurisée. Enfin, nous allons préparer ce conteneur pour la production en le publiant sur une instance Azure Container Registry. Dans le module de suivi, nous verrons comment extraire cette charge de travail à partir d’un registre de conteneurs sécurisé et la déployer sur un appareil incorporé optimisé par NVIDIA exécutant IoT Edge.

Essayez ceci

Imaginez que vous ayez été chargé de développer une application IVA pour compter le nombre de personnes qui entrent dans un restaurant. Supposons maintenant que le PDG apprécie votre preuve de concept et que vous souhaitiez déployer cette application sur 1 000 emplacements à travers le monde ! Comment pouvez-vous concevoir une stratégie pour mener à bien un tel déploiement ? Quels outils pouvez-vous utiliser pour accélérer le cycle de développement et de test ?