Glosario IA
El diccionario completo de la Inteligencia Artificial
Work-item
Unidad elemental de ejecución en OpenCL, análoga a un hilo en otros modelos de paralelismo. Cada work-item ejecuta una instancia del kernel con identificadores únicos para acceder a diferentes porciones de los datos.
Work-group
Colección de work-items que comparten recursos específicos y pueden sincronizar su ejecución mediante barreras. Los work-groups constituyen la unidad de planificación para las unidades de cálculo OpenCL y optimizan el uso de la memoria local.
NDRange
Espacio de indexación N-dimensional que define la cuadrícula completa de work-items a ejecutar para un kernel. El NDRange determina cómo se particionan los datos en work-groups y work-items para el cálculo paralelo.
Context
Entorno de ejecución OpenCL que contiene los dispositivos, los objetos de memoria y los comandos asociados. El context asegura la coherencia de los recursos compartidos entre los dispositivos de una misma plataforma OpenCL.
Command Queue
Mecanismo que ordena las operaciones OpenCL (transferencias de memoria, ejecución de kernels) hacia un dispositivo específico. Los comandos pueden ejecutarse en orden o fuera de orden según los parámetros de creación de la cola.
Memory Model
Estructura jerárquica de memoria OpenCL que comprende los espacios global, local, privado y constante. Este modelo optimiza el acceso a los datos según su localización y frecuencia de uso por los work-items.
Local Memory
Memoria compartida entre los work-items de un mismo work-group, que ofrece accesos muy rápidos para la cooperación. Permite implementar algoritmos eficientes como reducciones y patrones de acceso irregulares.
Private Memory
Espacio de memoria exclusivo para cada work-item, generalmente implementado con registros o pila local. Almacena variables temporales y garantiza el aislamiento entre work-items concurrentes.
Event Objects
Sincronización de grano fino de comandos OpenCL que permite definir dependencias entre operaciones. Los events facilitan la optimización del paralelismo creando grafos de ejecución complejos.
Platform Model
Abstracción OpenCL que define un host conectado a uno o varios devices a través de un driver. El platform model estandariza la interacción entre CPU host y aceleradores para garantizar la portabilidad del código.
Buffer Object
Contenedor de memoria OpenCL para almacenar datos lineales accesibles por los kernels. Los buffers soportan diversas estrategias de asignación y transferencia entre host y device para optimizar el rendimiento.
SVM (Shared Virtual Memory)
Extensión OpenCL 2.0 que permite compartir punteros entre host y device con un espacio de direccionamiento virtual único. SVM elimina las transferencias explícitas y simplifica la programación para arquitecturas integradas.
SPIR (Standard Portable Intermediate Representation)
Formato intermedio binario OpenCL que permite la distribución de kernels sin código fuente. SPIR garantiza la portabilidad entre diferentes implementaciones OpenCL preservando las optimizaciones específicas de los devices.
Vector Types
Tipos de datos SIMD nativos de OpenCL (float4, int8, etc.) que optimizan las operaciones vectoriales en arquitecturas paralelas. Los vector types explotan nativamente las unidades SIMD de los GPUs para maximizar el rendimiento de cálculo.
Barrier Synchronization
Primitiva de sincronización que fuerza a todos los work-items de un work-group a alcanzar un punto antes de continuar. Las barriers garantizan la coherencia de los datos compartidos en memoria local durante algoritmos cooperativos.