NVIDIA CUDA
Plataforma y kit de herramientas de computación en GPU de NVIDIA
CUDA es la capa de software que permite a los programadores usar una GPU de NVIDIA para algo más que gráficos. Escribes funciones llamadas kernels, normalmente en C++ o Python, que se ejecutan a la vez en miles de hilos de la GPU, algo que encaja con cargas de trabajo hechas de grandes cantidades de cálculo en paralelo. La simulación científica, el procesamiento de vídeo y, sobre todo, las redes neuronales responden a esa descripción, por lo que CUDA se convirtió en la base del entrenamiento y la inferencia de la IA moderna.
La mayoría de quienes usan CUDA nunca lo escriben directamente. PyTorch, TensorFlow y JAX llaman a las bibliotecas de NVIDIA, entre ellas cuDNN para operaciones de redes neuronales, cuBLAS para álgebra lineal y NCCL para la comunicación entre GPU. TensorRT y herramientas relacionadas optimizan los modelos para su despliegue. Como estas bibliotecas llevan años afinándose, un modelo que corre en CUDA suele ser más rápido de entrada que el mismo código en hardware de otro fabricante. Esa ventaja de software explica en buena parte por qué las GPU de NVIDIA dominan los centros de datos de IA.
CUDA se descarga gratis, pero solo funciona en hardware de NVIDIA, y esa es la crítica principal. El código escrito en CUDA no puede ejecutarse en GPU de AMD o Intel sin portarlo, y muchas empresas intentan evitar esa dependencia. ROCm de AMD, Triton de OpenAI, SYCL y Metal de Apple son las alternativas habituales, y cada una cubre solo una parte de lo que hace CUDA. Para la mayoría de los desarrolladores, el consejo práctico es sencillo: usa un framework que se encargue de CUDA por ti, y baja a escribir kernels solo cuando el perfilado demuestre que necesitas la velocidad extra.