Compute Capability (también conocido como 'SM version' o 'CUDA Capability') es un número de versión principal.menor (ej. 8.6) que especifica las características de hardware de una GPU NVIDIA y el conjunto de instrucciones que soporta. Cada nueva versión introduce mejoras en la arquitectura, como un mayor número de Streaming Multiprocessors (SMs), unidades de ejecución especializadas (Tensor Cores, RT Cores), mayor ancho de banda de memoria, o nuevas instrucciones atómicas. Este valor es crucial para los desarrolladores de CUDA, ya que define el subconjunto de características de la plataforma que pueden utilizar en sus kernels y bibliotecas.
Este concepto es fundamental en el ecosistema de NVIDIA CUDA. Por ejemplo, una GPU con Compute Capability 7.0 (arquitectura Volta) introdujo los Tensor Cores, esenciales para la aceleración de cargas de trabajo de Machine Learning. Las GPUs con Compute Capability 8.0 (arquitectura Ampere) mejoraron significativamente el rendimiento de los Tensor Cores y la eficiencia energética, además de introducir la capacidad de ejecutar múltiples kernels simultáneamente en el mismo SM. Herramientas como PyTorch, TensorFlow o bibliotecas de HPC como cuBLAS y cuDNN utilizan la Compute Capability para compilar y ejecutar código optimizado para la arquitectura subyacente, aprovechando características específicas como instrucciones de precisión mixta o memoria compartida asíncrona.
Para un Arquitecto de Sistemas, entender la Compute Capability es vital para la toma de decisiones estratégicas en el diseño de infraestructuras de cómputo acelerado. Afecta directamente la selección de hardware, la planificación de la capacidad y la optimización de costos. Elegir una GPU con una Compute Capability inadecuada puede resultar en la imposibilidad de ejecutar ciertas cargas de trabajo (ej. modelos de IA que requieren Tensor Cores), o en un rendimiento subóptimo. Un arquitecto debe considerar los trade-offs entre el costo de hardware más reciente (con mayor Compute Capability y nuevas características) y la compatibilidad con el software existente, así como la vida útil esperada de la infraestructura. La Compute Capability también influye en la portabilidad del código y la estrategia de actualización de la flota de GPUs, asegurando que las inversiones en software puedan aprovechar las mejoras de hardware futuras.