Temps de lecture : 6 minutes
Parlons de certification. Toute personne travaillant dans des secteurs critiques pour la sécurité sait que les certifications aux plus hauts niveaux peuvent être une tâche longue, ardue, stressante et difficile à réaliser. Ceci est d’autant plus vrai lorsqu’on parle de certification d’applications logicielles graphique ou de calcul. Dans ce contexte, lorsque vous devez vous frayer un chemin dans le processus de certification, il est utile d'utiliser un pilote d'accélération GPU basé sur Vulkan® SC™, comme VkCore® SC de CoreAVI , qui permet un processus de certification plus fluide. Voyons comment.
Avant d'aborder la manière dont la compilation de pipelines hors ligne peut faciliter la certification d'une application graphique ou de calcul critique pour la sécurité, il est essentiel de considérer certains facteurs clés des logiciels critiques dans le processus de certification : le déterminisme, l’utilisation prédéfinie des ressources et la faible complexité.
Pour simplifier le processus de certification, la spécification Vulkan SC exige que l'état du pipeline graphique ou de calcul soit compilé hors ligne plutôt qu'à l'exécution en utilisant un compilateur de cache de pipeline. Cela diffère d’un pilote Vulkan commercial qui intègre généralement un compilateur de shader capable de traiter les shaders écrits pour l'application en temps réel. En revanche, un pilote Vulkan SC exige que l'intégralité de l'état du pipeline, y compris les shaders, soit préalablement compilé hors ligne l’exécution de l'application Vulkan SC. Cet état précompilé est ensuite chargé par l'application graphique ou de calcul Vulkan SC lors de son exécution. L'utilisation de pipelines précompilés de cette manière élimine les délais associés à la compilation des shaders et au traitement de l'état du pipeline à l'exécution, ce qui peut réduire le temps de démarrage ou d'initialisation d'une application. De plus, le pilote Vulkan SC est complexe et utilise moins de mémoire car il n’a pas besoin d’intégrer un compilateur de shader.
Les systèmes d'exploitation temps réel (RTOS) critiques pour la sécurité imposent généralement des restrictions sur l'allocation de mémoire dynamique et offrent un support limité pour les bibliothèques de langages de programmation, en plus d'autres contraintes. Étant donné que les chaînes d'outils de compilation sont généralement complexes, un environnement contraint comme celui d’un RTOS sécuritaire peut ne pas être suffisant pour pouvoir exploiter toutes les fonctionnalités d'une chaîne d'outils de compilation. Déplacer la compilation hors ligne permet d’effectuer cette tâche sur un autre système d'exploitation différent, offrant ainsi la possibilité d’utiliser pleinement les fonctionnalités d'une chaîne d'outils de compilation sophistiquée.
Vous vous demandez peut-être comment fonctionne la compilation de pipelines hors ligne. Voici une explication du fonctionnement du compilateur :
1. Entrées des données du pipeline :
Le compilateur reçoit les informations relatives à l'état du pipeline graphique ou de calcul spécifiées dans un format particulier. La spécification Vulkan SC exige que le format JSON soit utilisé à cette fin.
2. Production d’un binaire spécifique CPU :
Le compilateur génère un fichier binaire spécifique au GPU qui peut être chargé dans une application Vulkan SC au moment de l'exécution.
3. Lecture par le pilote Vulkan SC :
Le pilote Vulkan SC lit le binaire chargé et configure l'état de rendu de l'application en conséquence.
Ceci est différent d'un pilote Vulkan commercial dans les aspects suivants :
De plus, dans le domaine de l’aéronautique, la compilation hors ligne présente un avantage significatif : le code du compilateur de pipeline n'a pas besoin d'être certifié comme logiciel embarqué pour le vol. Toutefois, il pourrait être nécessaire de le qualifier comme outil de développement.
La norme DO-178C indique que les outils doivent être qualifiés uniquement s'ils facilitent les processus du cycle de vie de sécurité et que leurs sorties ne sont pas vérifiées conformément au processus de vérification logicielle. Dans le cas des compilateurs de pipeline, les sorties deviennent une partie intégrante du pipeline graphique utilisé par l'application pour restituer les images. Comme toutes les sorties graphiques de l'application doivent déjà être vérifiées conformément à la norme DO-178C, un compilateur de pipeline hors ligne ne nécessite pas de qualification en tant qu’outil.
Bien que la conformité aux réglementations de certification puisse être complexe, certaines approches, comme la compilation hors ligne, permettent de simplifier et de rendre le processus de certification plus flexible et efficace.
- Déterminisme : Un logiciel est déterministe lorsque la sortie produite pour une entrée donnée est fiable dans un délai strict.
- Utilisation prédéfinie des ressources : Cela signifie que l’utilisation des ressources CPU ou GPU est limitée par une borne supérieure connue.
- Faible complexité : Bien que cela ne soit pas une exigence stricte pour la certification, cela contribue à réduire le temps et les efforts nécessaires pour y parvenir.
Pour simplifier le processus de certification, la spécification Vulkan SC exige que l'état du pipeline graphique ou de calcul soit compilé hors ligne plutôt qu'à l'exécution en utilisant un compilateur de cache de pipeline. Cela diffère d’un pilote Vulkan commercial qui intègre généralement un compilateur de shader capable de traiter les shaders écrits pour l'application en temps réel. En revanche, un pilote Vulkan SC exige que l'intégralité de l'état du pipeline, y compris les shaders, soit préalablement compilé hors ligne l’exécution de l'application Vulkan SC. Cet état précompilé est ensuite chargé par l'application graphique ou de calcul Vulkan SC lors de son exécution. L'utilisation de pipelines précompilés de cette manière élimine les délais associés à la compilation des shaders et au traitement de l'état du pipeline à l'exécution, ce qui peut réduire le temps de démarrage ou d'initialisation d'une application. De plus, le pilote Vulkan SC est complexe et utilise moins de mémoire car il n’a pas besoin d’intégrer un compilateur de shader.
Les systèmes d'exploitation temps réel (RTOS) critiques pour la sécurité imposent généralement des restrictions sur l'allocation de mémoire dynamique et offrent un support limité pour les bibliothèques de langages de programmation, en plus d'autres contraintes. Étant donné que les chaînes d'outils de compilation sont généralement complexes, un environnement contraint comme celui d’un RTOS sécuritaire peut ne pas être suffisant pour pouvoir exploiter toutes les fonctionnalités d'une chaîne d'outils de compilation. Déplacer la compilation hors ligne permet d’effectuer cette tâche sur un autre système d'exploitation différent, offrant ainsi la possibilité d’utiliser pleinement les fonctionnalités d'une chaîne d'outils de compilation sophistiquée.
Vous vous demandez peut-être comment fonctionne la compilation de pipelines hors ligne. Voici une explication du fonctionnement du compilateur :
1. Entrées des données du pipeline :
Le compilateur reçoit les informations relatives à l'état du pipeline graphique ou de calcul spécifiées dans un format particulier. La spécification Vulkan SC exige que le format JSON soit utilisé à cette fin.
2. Production d’un binaire spécifique CPU :
Le compilateur génère un fichier binaire spécifique au GPU qui peut être chargé dans une application Vulkan SC au moment de l'exécution.
3. Lecture par le pilote Vulkan SC :
Le pilote Vulkan SC lit le binaire chargé et configure l'état de rendu de l'application en conséquence.
Ceci est différent d'un pilote Vulkan commercial dans les aspects suivants :
- Le pilote inclut un compilateur de shaders capable de traiter un shader temps réel.
- Les shaders sont compilés en tant qu’élément de l'état du pipeline, qui est défini en ligne dans une application Vulkan.
De plus, dans le domaine de l’aéronautique, la compilation hors ligne présente un avantage significatif : le code du compilateur de pipeline n'a pas besoin d'être certifié comme logiciel embarqué pour le vol. Toutefois, il pourrait être nécessaire de le qualifier comme outil de développement.
La norme DO-178C indique que les outils doivent être qualifiés uniquement s'ils facilitent les processus du cycle de vie de sécurité et que leurs sorties ne sont pas vérifiées conformément au processus de vérification logicielle. Dans le cas des compilateurs de pipeline, les sorties deviennent une partie intégrante du pipeline graphique utilisé par l'application pour restituer les images. Comme toutes les sorties graphiques de l'application doivent déjà être vérifiées conformément à la norme DO-178C, un compilateur de pipeline hors ligne ne nécessite pas de qualification en tant qu’outil.
Bien que la conformité aux réglementations de certification puisse être complexe, certaines approches, comme la compilation hors ligne, permettent de simplifier et de rendre le processus de certification plus flexible et efficace.