Jim Keller critica el "revoltijo de cosas" en la arquitectura CUDA

Uno de los ingenieros responsables de la arquitectura x86, Jim Keller, criticó la arquitectura CUDA de NVIDIA, diciendo que era un "paquete de cosas". Keller utiliza el término "foso", que se refiere a proyectos que se ejecutan de manera óptima, creando "fosos" competitivos sobre la competencia.
Según el arquitecto de hardware, la arquitectura CUDA está lejos de ser un "foso" y se parece más a un "pantano", donde se aplican varias tecnologías diferentes en un conjunto de trabajo. Técnicamente, la arquitectura x86 en sí sigue el mismo principio, con los numerosos coprocesadores y aceleradores acumulados a lo largo de los años introduciendo más conjuntos de instrucciones para diferentes tareas.
Nadie escribe para CUDA
Pensando en términos de programación, tanto CUDA como x86 combinan componentes especializados para diferentes funciones, por lo que no tiene mucho sentido escribir directamente en un lenguaje básico que cubra todas las funciones. Básicamente, cada desarrollador escribirá código en lenguajes de alto nivel específicos para las tareas de su aplicación.
Esta es en realidad la principal ventaja de las arquitecturas CISC, ya que no es necesario utilizar, ni siquiera conocer, todos los aceleradores integrados en ese chip. Así como en x86 existen aceleradores MMX, AVX2, SSE, FMA3, etc., en CUDA es posible programar específicamente para TensorRT o Triton, por ejemplo.
Las arquitecturas complejas avanzan según la demanda sin descartar componentes anteriores, lo que garantiza que las tecnologías más antiguas seguirán teniendo cierto soporte dentro de una plataforma CISC determinada. Puede que no sea una evolución completamente planificada, pero es ideal para facilitar al máximo el desarrollo de software para ese ecosistema.