Khronos a annoncé OpenCL 3.0 et ce sont des fonctionnalités plus notables

Préoccupation de Khronos, qui est responsable du développement des spécifications pour la famille OpenGL, Vulkan et OpenCL, a annoncé l'achèvement du développement des spécifications OpenCL 3.0 qui définissent des API et des extensions de langage C pour organiser le calcul parallèle multiplateforme à l'aide de processeurs multicœurs, de GPU, de FPGA, de DSP et d'autres puces spécialisées.

Ceux-ci sont utilisé des supercalculateurs et des serveurs cloud aux puces qui peut être trouvé sur les appareils mobiles et la technologie embarquée. Le standard OpenCL est complètement ouvert. Des sociétés telles qu'IBM, NVIDIA, Intel, AMD, Apple, ARM, Electronic Arts, Qualcomm, Texas Instruments et Toshiba ont participé aux travaux sur la norme.

Au stade actuel de la spécification, le statut est provisoire, ce qui implique la possibilité de raffinement en fonction des commentaires envoyés via GitHub. Une fois les commentaires pris en compte, la spécification recevra le statut final et la suite de tests finale sera publiée pour vérifier la compatibilité des implémentations existantes.

Fonctionnalités d'OpenCL 3.0

L'API OpenCL 3.0 couvre désormais toutes les versions d'OpenCL (1.2, 2.x), sans fournir de spécifications distinctes pour chaque version. OpenCL 3.0 offre la possibilité d'étendre les fonctionnalités de base grâce à l'intégration de spécifications supplémentaires, qui sera organisé sous forme d'options, sans bloquer le caractère monolithique d'OpenCL 1.2 / 2.X.

Seules les fonctionnalités conformes à OpenCL 1.2 sont déclarées obligatoires et toutes les fonctionnalités proposées dans le cahier des charges OpenCL 2.x sont classés comme facultatifs. Cette approche simplifiera la création d'implémentations spécialisées conformes à OpenCL 3.0 et élargira la gamme de périphériques sur lesquels OpenCL 3.0 peut être utilisé.

Par exemple, les fabricants peuvent implémenter la prise en charge d'OpenCL 3.0 sans se rendre compte des fonctionnalités individuelles d'OpenCL 2.x. Pour accéder aux fonctionnalités linguistiques facultatives, OpenCL 3.0 ajoute un système de requête de test qui vous permet d'évaluer le support pour les éléments API individuels ainsi que pour les macros spéciales.

Unification avec spécifications publié précédemment facilite le transfert d'applications vers OpenCL 3.0. Les applications OpenCL 1.2 pourront fonctionner sur des appareils prenant en charge OpenCL 3.0 sans modification. Les applications OpenCL 2.x ne nécessiteront pas non plus de changements de code, mais si l'environnement OpenCL 3.0 fournit les fonctionnalités nécessaires (pour garantir la portabilité à l'avenir, il est recommandé aux applications OpenCL 2.x d'ajouter des requêtes de test pour évaluer la compatibilité avec l'openCL 2. x fonctions utilisées).

Développeurs de contrôleurs avec les implémentations OpenCL ils pourront facilement mettre à niveau leurs produits vers OpenCL 3.0, en ajoutant uniquement le traitement des demandes pour la présence de certains appels d'API, et en augmentant progressivement les fonctionnalités au fil du temps.

La spécification OpenCL 3.0 est alignée sur environnement, extensions et spécifications de Vue intermédiaire universelle SPIR-V, qui utilise également l'API Vulkan. La prise en charge de la spécification SPIR-V 1.3 est incluse dans le noyau OpenCL 3.0 en option. En utilisant la représentation intermédiaire SPIR-V pour les cœurs de calcul, la prise en charge des opérations avec des sous-groupes a été ajoutée.

Ajoutée prise en charge de l'expansion pour effectuer des opérations DMA asynchrones, compatible avec les puces de type DSP avec accès direct à la mémoire. Le DMA asynchrone vous permet d'utiliser des transactions DMA pour transférer des données entre la mémoire globale et locale en mode asynchrone, en parallèle avec les calculs effectués ou d'autres opérations de transfert de données.

La spécification des extensions de programmation parallèle pour C a été mise à jour vers la version 3.0 et le développement des extensions de langage OpenCL pour C ++ a été abandonné au profit du projet "C ++ for OpenCL".

C ++ pour OpenCL est un compilateur basé sur Clang / LLVM qui traduit les noyaux C ++ et OpenCL C en représentation SPIR-V intermédiaire ou en code machine de bas niveau. Grâce à la traduction vers SPIR-V, la compilation des applications C ++ est également organisée à l'aide de la bibliothèque de modèles SYCL, ce qui simplifie la création d'applications parallèles.

Pour traduire OpenCL via l'API Vulkan, le compilateur clspv est proposé, qui convertit les noyaux OpenCL en vue Vulkan SPIR-V et la couche clvk pour permettre à l'API OpenCL de fonctionner au-dessus de Vulkan.

source: https://www.khronos.org


Laisser un commentaire

Votre adresse e-mail ne sera pas publiée. Les champs obligatoires sont marqués avec *

*

*

  1. Responsable des données : AB Internet Networks 2008 SL
  2. Finalité des données: Contrôle du SPAM, gestion des commentaires.
  3. Légitimation: votre consentement
  4. Communication des données: Les données ne seront pas communiquées à des tiers sauf obligation légale.
  5. Stockage des données: base de données hébergée par Occentus Networks (EU)
  6. Droits: à tout moment, vous pouvez limiter, récupérer et supprimer vos informations.