Glosario IA
El diccionario completo de la Inteligencia Artificial
Kernel
Función CUDA ejecutada en la GPU por una gran cantidad de hilos simultáneamente. El kernel se lanza desde la CPU y se ejecuta en paralelo en el dispositivo GPU con una configuración específica de cuadrícula y bloques.
Thread
Unidad de ejecución básica en CUDA, que representa una única secuencia de instrucciones ejecutada en un núcleo de procesador GPU. Los hilos se organizan en bloques y ejecutan el mismo código sobre diferentes datos.
Block
Colección de hilos que pueden comunicarse entre sí a través de una memoria compartida y sincronizar su ejecución. Los bloques se organizan en una cuadrícula y se ejecutan en el mismo Streaming Multiprocessor (SM).
Grid
Conjunto de bloques de hilos que constituyen la configuración de ejecución completa de un kernel CUDA. La cuadrícula representa la estructura jerárquica superior de la organización de hilos en CUDA.
Warp
Grupo de 32 hilos que se ejecutan simultáneamente en modo SIMT (Single Instruction Multiple Thread) en un SM CUDA. Todos los hilos de un warp ejecutan la misma instrucción en el mismo ciclo de reloj.
Shared Memory
Memoria rápida y de pequeño tamaño compartida por todos los hilos de un mismo bloque, permitiendo una comunicación eficiente entre hilos. La memoria compartida es mucho más rápida que la memoria global pero limitada en tamaño por bloque.
Global Memory
Memoria principal accesible por todos los hilos y por la CPU, con gran capacidad pero alta latencia. La memoria global es persistente entre los lanzamientos de kernels y constituye la principal zona de almacenamiento de datos.
CUDA Runtime API
Interfaz de programación de alto nivel que simplifica el desarrollo de aplicaciones CUDA gestionando automáticamente la inicialización, la carga de módulos y la gestión de memoria. Proporciona funciones como cudaMalloc, cudaMemcpy y cudaLaunchKernel.
Stream
Secuencia de operaciones ejecutadas en la GPU en un orden determinado, permitiendo alcanzar el paralelismo entre operaciones de cálculo y transferencias de memoria. Los streams permiten la ejecución concurrente de kernels y solapamiento de transferencias.
Asynchronous Execution
Modo de ejecución CUDA donde las operaciones retornan inmediatamente al CPU sin esperar su finalización en la GPU. La ejecución asíncrona permite solapar cálculos y transferencias para maximizar la utilización de la GPU.
Texture Memory
Memoria optimizada para accesos con localidad espacial 2D o 3D, con almacenamiento en caché automático de datos. La memoria de textura es particularmente eficaz para procesamiento de imágenes y accesos con poca coherencia.
Constant Memory
Memoria de solo lectura optimizada para accesos broadcast donde todos los threads leen el mismo valor simultáneamente. Es particularmente eficaz cuando todos los threads de un warp acceden a la misma dirección.
Occupancy
Medida de la relación entre el número de warps activos y el número máximo de warps que pueden residir en un Streaming Multiprocessor. Una ocupación elevada no garantiza necesariamente mejores rendimientos pero ayuda a enmascarar la latencia.
Atomic Operations
Operaciones de lectura-modificación-escritura ejecutadas atómicamente sobre la memoria global o compartida, garantizando la ausencia de conflictos entre threads. Son esenciales para reducciones y actualizaciones concurrentes de datos.
cuBLAS
Biblioteca CUDA Basic Linear Algebra Subroutines que proporciona implementaciones GPU optimizadas para operaciones de álgebra lineal básica. cuBLAS acelera significativamente los cálculos matriciales y vectoriales en arquitecturas NVIDIA.
cuFFT
Biblioteca CUDA Fast Fourier Transform que ofrece implementaciones GPU de alto rendimiento para transformaciones de Fourier discretas. cuFFT soporta transformaciones 1D, 2D y 3D con diferentes precisiones y tamaños.