एआई शब्दावली
आर्टिफिशियल इंटेलिजेंस का पूर्ण शब्दकोश
Work-item
Unité élémentaire d'exécution dans OpenCL, analogue à un thread dans d'autres modèles de parallélisme. Chaque work-item exécute une instance du kernel avec des identifiants uniques pour accéder à différentes portions des données.
Work-group
Collection de work-items qui partagent des ressources spécifiques et peuvent synchroniser leur exécution via des barrières. Les work-groups constituent l'unité de scheduling pour les unités de calcul OpenCL et optimisent l'utilisation de la mémoire locale.
NDRange
Espace d'indexation N-dimensionnel définissant la grille complète de work-items à exécuter pour un kernel. Le NDRange détermine comment les données sont partitionnées en work-groups et work-items pour le calcul parallèle.
Context
Environnement d'exécution OpenCL contenant les devices, les objets mémoire et les commandes associées. Le context assure la cohérence des ressources partagées entre les devices d'une même plateforme OpenCL.
Command Queue
Mécanisme ordonnant les opérations OpenCL (transferts mémoire, exécution de kernels) vers un device spécifique. Les commandes peuvent être exécutées en ordre ou hors ordre selon les paramètres de création de la queue.
Memory Model
Structure hiérarchique de mémoire OpenCL comprenant les espaces global, local, private et constant. Ce modèle optimise l'accès aux données selon leur localisation et leur fréquence d'utilisation par les work-items.
Local Memory
Mémoire partagée entre les work-items d'un même work-group, offrant des accès très rapides pour la coopération. Elle permet d'implémenter des algorithmes efficaces comme les réductions et les patterns d'accès irréguliers.
Private Memory
Espace mémoire exclusif à chaque work-item, généralement implémenté avec des registres ou stack locale. Elle stocke les variables temporaires et garantit l'isolation entre work-items concurrents.
Event Objects
Synchronisation fine-grained des commandes OpenCL permettant de définir des dépendances entre opérations. Les events facilitent l'optimisation du parallélisme en créant des graphes d'exécution complexes.
Platform Model
Abstraction OpenCL définissant un host connecté à un ou plusieurs devices via un driver. Le platform model standardise l'interaction entre CPU hôte et accélérateurs pour garantir la portabilité du code.
Buffer Object
Conteneur mémoire OpenCL pour stocker des données linéaires accessibles par les kernels. Les buffers supportent diverses stratégies d'allocation et de transfert entre host et device pour optimiser les performances.
SVM (Shared Virtual Memory)
Extension OpenCL 2.0 permettant le partage de pointeurs entre host et device avec un espace d'adressage virtuel unique. SVM élimine les transferts explicites et simplifie la programmation pour les architectures intégrées.
SPIR (Standard Portable Intermediate Representation)
Format intermédiaire binaire OpenCL permettant la distribution de kernels sans code source. SPIR garantit la portabilité entre différentes implémentations OpenCL tout en préservant les optimisations spécifiques aux devices.
Vector Types
Types de données SIMD natifs d'OpenCL (float4, int8, etc.) optimisant les opérations vectorielles sur les architectures parallèles. Les vector types exploitent nativement les unités SIMD des GPUs pour maximiser le débit de calcul.
Barrier Synchronization
Primitive de synchronisation forçant tous les work-items d'un work-group à atteindre un point avant de continuer. Les barriers garantissent la cohérence des données partagées en mémoire locale lors des algorithmes coopératifs.