CUDA sigue siendo un enorme foso para Nvidia
El foso de CUDA y el lock-in
- Muchos sostienen que CUDA tiene menos que ver con el lenguaje y más con el ecosistema que lo rodea: bibliotecas, herramientas e integración profunda con marcos como PyTorch, TensorFlow, JAX y servidores de inferencia.
- Las restricciones de la EULA de CUDA (por ejemplo, sobre la ingeniería inversa para objetivos que no sean de NVIDIA) se citan como un factor que refuerza el lock-in.
- Algunos ven esto como un monopolio de software perjudicial, similar al dominio pasado de los navegadores o las tiendas de aplicaciones; otros creen que los monopolios son transitorios y que la sociedad acaba beneficiándose de la innovación aunque una sola empresa se enriquezca.
Papel del software y del ecosistema
- Tema recurrente: los competidores de hardware subestimaron lo crítico que es el software.
- NVIDIA se trató a sí misma como una empresa de stack completo y muy centrada en software durante unos 20 años, construyendo bibliotecas (cuBLAS, cuDNN, etc.), compiladores, depuradores, perfiladores e integración estrecha con la investigación y la industria.
- El verdadero foso se describe como “base instalada + integraciones”, no solo la sintaxis de CUDA.
Críticas a AMD/Intel/ROCm
- Se critica ampliamente a AMD e Intel por:
- Invertir poco en equipos de software, herramientas y documentación.
- Mala estabilidad de controladores, soporte de dispositivos limitado y regresiones (por ejemplo, ROCm solo admite un conjunto reducido de GPUs, problemas en APU y en piezas de cloud).
- Abandonar o infrafinanciar proyectos de compatibilidad con CUDA y capas de traducción.
- Algunos argumentan que deberían aumentar masivamente la contratación de software, financiar la integración directa en todos los principales proyectos OSS y lanzar tarjetas de consumo con mucha VRAM para tentar a quienes se cambien.
Dificultad de programar GPU
- Escribir CUDA de alto rendimiento se describe como algo extremadamente especializado:
- Requiere un conocimiento profundo de algoritmos, hardware, jerarquías de memoria, concurrencia y múltiples generaciones de GPU.
- Incluso muchos “programadores CUDA” solo logran un rendimiento básico; cerrar la brecha con las propias bibliotecas de NVIDIA se considera trabajo de nivel olímpico.
- Otros señalan que ciertas cargas de trabajo de nicho aún pueden superar a las bibliotecas de NVIDIA con kernels personalizados, especialmente fuera de la ruta principal de optimización.
Frameworks de alto nivel vs CUDA de bajo nivel
- La mayoría de los usuarios de ML escriben PyTorch, etc., no CUDA, pero esos propios frameworks y muchos métodos de vanguardia (por ejemplo, variantes personalizadas de atención, álgebra lineal especializada) dependen de kernels CUDA afinados a mano.
- CUDA sigue siendo central para HPC no orientado a ML, procesamiento de señales y computación científica.
Competencia, China y alternativas
- Algunos creen que LLVM/OpenMP, ONNX, TVM, Metal o nuevos lenguajes (por ejemplo, Mojo) podrían erosionar CUDA con el tiempo.
- Otros argumentan que, sin una cultura sostenida, bien financiada y prioritaria en software (ya sea en AMD, Intel o en China), esas alternativas seguirán siendo incompletas y de segunda categoría.