Ouvrir le menu Fermer le menu

Comment la compilation hors ligne peut faciliter la certification ?

trait de séparation
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é.

  • 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.
Déplacer la compilation des pipelines hors ligne permet aux logiciels graphiques ou de calcul critiques pour la sécurité de mieux répondre à ces critères.

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.
Déplacer la compilation du pipeline en dehors de l'application permet également d'ajouter des fonctionnalités supplémentaires à la chaîne d'outils du compilateur hors ligne sans affecter les logiciels qui utilisent les pipelines précompilés.

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.

0

Ces articles peuvent vous intéresser

image blog article

CoreAVI renforce le support des calculs et de l'IA sur les GPU AMD

CoreAVI poursuit ainsi sa politique d’investissement dans le portefeuille de produits d’AMD.

image blog article

La sécurité et la sûreté des logiciels automobiles doivent encore être améliorées

Cet article pointe l’augmentation des défauts logiciels potentiellement mortels, mais il existe néanmoins une résistance générale dans l'industrie à la gestion de la qualité, de la sûreté et de la sécurité du logiciel.

image blog article

Solutions avioniques de Intel® et CoreAVI

Les pilotes d’accélération GPU certifiables de CoreAVI et les processeurs multicœurs avancés de Intel Corporation avec Airworthiness Evidence Package sont la combinaison parfaite!