2 puntos por GN⁺ 2023-12-16 | 1 comentarios | Compartir por WhatsApp
  • El CEO de Intel, Pat Gelsinger, presentó los chips para centros de datos Core Ultra y 5th Gen Xeon en un evento en New York City, y sostuvo que el dominio de CUDA de Nvidia en el entrenamiento de IA no será eterno
  • Gelsinger citó a MLIR, Google y OpenAI como ejemplos, y considera que la industria se está moviendo hacia una capa de programación Pythonic para hacer que el entrenamiento de IA sea más abierto
  • Intel ve el mercado de inferencia (inference), que no depende de CUDA, como un campo de batalla más importante, y busca competir en la ejecución de modelos después del entrenamiento con Gaudi 3, Xeon y PCs en el edge
  • En el centro de su estrategia de IA está OpenVINO, e Intel prevé un entorno de cómputo híbrido donde algunas operaciones se procesen en la nube y otras en la PC
  • Gelsinger dijo que competirá en el mercado de IA para centros de datos con CPUs, aceleradores y foundry, y afirmó que buscará tanto oportunidades internas de chips como oportunidades comerciales con Nvidia, AMD y otros

La ofensiva de Intel contra el dominio de CUDA

  • Pat Gelsinger presentó los chips para centros de datos Intel Core Ultra y 5th Gen Xeon en un evento en New York City, apuntando directamente a la tecnología CUDA de Nvidia
  • Al responder una pregunta en NASDAQ, dijo que el dominio que Nvidia CUDA tiene en el entrenamiento de IA no será eterno
  • Afirmó: “Toda la industria está motivada para eliminar el mercado de CUDA”
  • Considera que MLIR, Google y OpenAI se están moviendo hacia una capa de programación Pythonic para hacer más abierto el entrenamiento de IA
  • Describió el foso de CUDA como “poco profundo y pequeño”, y sostuvo que la industria intenta incorporar un conjunto más amplio de tecnologías para expandir el entrenamiento, la innovación y la ciencia de datos

Una estrategia que prioriza la inferencia sobre el entrenamiento

  • Intel ve la inferencia como un mercado clave, más que competir solo en entrenamiento
  • Según Gelsinger, una vez que un modelo ya fue entrenado, no existe dependencia de CUDA; lo importante es qué tan bien se puede ejecutar ese modelo
  • Gaudi 3, presentado por primera vez en el escenario, fue señalado como un producto para competir en este frente
  • Xeon y las PCs en el edge también fueron mencionados como ejes de competencia en la misma dirección
  • Esto no significa que Intel abandone el mercado de entrenamiento, pero Gelsinger considera que “fundamentalmente, el mercado de inferencia es donde se define la competencia”

OpenVINO y cómputo híbrido

  • Gelsinger destacó OpenVINO como el estándar central de los esfuerzos de IA de Intel
  • Anticipa un mundo de cómputo híbrido en el que algunas operaciones se procesen en la nube y otras en la PC del usuario
  • Sandra Rivera agregó que Intel puede convertirse en un socio elegido porque cuenta con escala desde el centro de datos hasta la PC
  • Rivera también presentó como fortaleza la capacidad de Intel para producir en grandes volúmenes

Competencia en tres frentes para el mercado de IA en centros de datos

  • Gelsinger afirmó que Intel competirá en todo el mercado de IA para centros de datos de tres maneras: CPUs, aceleradores y foundry
  • Como oportunidades internas se mencionaron chips como TPU, Inferentia y Trainium
  • En cuanto a oportunidades comerciales, la postura es buscar también todas las posibilidades de colaboración con Nvidia, AMD y otros
  • Intel plantea en paralelo una estrategia de competir con sus propios productos y convertirse en un jugador de foundry

Preguntas pendientes sobre el panorama competitivo

  • En la presentación de ese día, Gelsinger mostró una gran confianza y lideró las exposiciones de su equipo
  • Si realmente podrá enfrentarse a CUDA es una cuestión que quedará por verse cuando se expandan más las aplicaciones de los chips presentados por Intel y de los chips que están desarrollando sus competidores

1 comentarios

 
GN⁺ 2023-12-16
Opiniones de Hacker News
  • Como dicen otros comentarios, la clave es CUDA. Intel o AMD también pueden fabricar chips bastante rápido, pero no entienden que el verdadero rival es el software y el ecosistema.
    Por ejemplo, en eBay se puede comprar una MI100 usada con un rendimiento casi igual al de una A100 por una quinta parte del precio, y la razón de que sea tan barata es que, comparada con una GPU de Nvidia, uno termina gastando muchísimo tiempo en hacerla funcionar por incompatibilidades de software.
    Google también apenas ofrece una ruta de compatibilidad más o menos aceptable para investigadores al agregar una interfaz XLA a PyTorch, e Intel hace algo parecido.
    Si una empresa está en este rubro, tendría que crear un enorme conjunto de pruebas, como todos los modelos de Hugging Face, e ir corrigiendo los problemas uno por uno a fuerza bruta para poder vender chips.
    Intel está haciendo lo de siempre: anuncia una iniciativa abierta y luego le da apenas el soporte mínimo; parece bastante probable que OpenVINO termine sin grandes resultados. Da la impresión de que el Triton de OpenAI ya se menciona más.

    • Lo curioso es que gran parte del ecosistema de software de IA en realidad es PyTorch. Ni siquiera hace falta crear y popularizar un framework nuevo, ni dar soporte a un montón de bibliotecas de bajo nivel. Basta con dar buen soporte a PyTorch.
      Si PyTorch funciona bien en GPU de Intel, mucha gente se cambiaría con gusto.
    • No es un problema exclusivo de Intel. Las iniciativas abiertas y los consorcios suelen ser la forma en que los que van atrás se agrupan para intentar obtener una ventaja que no tienen.
      Si tienes cierta edad, habrás visto este patrón repetirse en la industria. La historia de Unix contra Windows NT en los años 90 estuvo llena de movimientos así, y en redes está pasando otra vez lo mismo con UltraEthernet.
      OpenGL quizá fue el enfoque más exitoso, pero apenas funcionó, y no ayudó mucho a los jugadores que no estaban ya en camino de ganar. Ni Unix 95 ni Unix 98 funcionaron.
    • Es muy probable que Nvidia le tenga diez veces más miedo a alguien como https://github.com/ggerganov que a Intel o AMD.
    • Ese es el punto. Hasta que Intel o AMD tomen en serio el lado del software e inviertan dinero de verdad, CUDA no va a desaparecer.
      Lo más probable es que Intel haga ruido sobre iniciativas relacionadas y uno o dos trimestres después recorte fuerte ese departamento.
      Para competir en el terreno de CUDA se necesita un compromiso de varios años y contratación a gran escala, y para eso también hay que subir los sueldos a precio de mercado.
    • Parece que AMD e Intel, y hasta cierto punto Qualcomm, no entienden cómo ganarle a NVIDIA.
      Para quitarle una parte del pastel a NVIDIA no hace falta crear algo mejor que una H100 de inmediato. Hay muchos consumidores que estarían satisfechos con algo al nivel de una 4090, 4080 o incluso 3080, pero a mitad de precio, que se pueda comprar directamente en Amazon, NewEgg, etc., y que no tenga un botón de “consultar precio”.
      AMD e Intel son mucho mejores que NVIDIA en hacer que los chips estén realmente disponibles para comprar, pero eso por sí solo no alcanza.
      Lo que se necesita es un intelcc, amdcc, qualcommcc que acepte y compile exactamente el mismo código que se pasaba a nvcc. Ni siquiera debería cambiar el prototipo de una función, y debería funcionar en el hardware objetivo sin preguntas. Tiene que ser un reemplazo drop-in de CUDA.
      Si eso pasa, recompilar PyTorch y todo lo demás para otros chips se volvería algo trivial.
  • Como dato interesante, más de la mitad de los ingenieros de NVIDIA son ingenieros de software. Jensen construyó deliberada y estratégicamente una pila de software poderosa sobre las GPU, y lo ha hecho durante décadas.
    Hasta que Intel encuentre un CEO tan técnico y estratégico como Jensen, y no solo un ejecutivo que mira números, parece difícil que pueda contraatacar con éxito a CUDA.

    • Llamar “no técnico” a Gelsinger está demasiado alejado de la realidad.
      Gelsinger se unió a Intel en 1979 a los 18 años, coescribió en 1987 un libro de programación del microprocesador 80386 y fue el arquitecto principal del procesador 80486 de cuarta generación lanzado en 1989.
      A los 32 años se convirtió en el vicepresidente más joven de la historia de Intel, y en 2001 fue nombrado CTO, desde donde lideró el desarrollo de tecnologías clave como Wi-Fi, USB, Intel Core, Intel Xeon y 14 proyectos de chips. También inició el Intel Developer Forum, equivalente al WinHEC de Microsoft.
    • Cuando Gelsinger dice “toda la industria”, parece acercarse a una simple realidad. Todos los jugadores excepto Nvidia tienen motivos para reducir la importancia de una tecnología propietaria como CUDA. Eso significa muchos más programadores de los que Nvidia podría contratar.
      Incluso si Intel se tropieza solo, el incentivo para atraer a más fabricantes de chips es enorme. Va a pasar; la única pregunta es si tomará meses, años o una década.
      Personalmente apostaría por el plazo corto. Parece ser, en gran medida, un problema de multiplicación de matrices, y de pronto le está entrando una cantidad enorme de dinero y atención. La estrategia de APU de AMD [0] también está empezando a llegar al mercado de gama alta con MI300A, y es un desarrollo interesante.
      [0] Para quienes no estén siguiendo esta tendencia: AMD ha estado unificando la memoria del sistema y la memoria de la GPU. Si lo entendí bien, en estos chips ya no hace falta “copiar datos a la GPU”. Básicamente, es como si la CPU recibiera una gran extensión para matemáticas de matrices. Antes metían esta tecnología en CPU de bajo costo, por lo que no era útil para cargas de IA, pero ahora la están incorporando en chips grandes.
    • La tendencia a tratar a Pat Gelsinger como un héroe se me hace bastante rara. Por lo que vi en VMware, me pareció más un gestor de números que alguien técnico, y demasiado atrapado en rencores personales o juegos de estatus como para tomar buenas decisiones de liderazgo tecnológico.
      Claro, puede que mi primera impresión haya sido mala. Cuando se anunció la adquisición, lo primero que les dijo a los de Pivotal fue: “ustedes eran nuestros primos, pero ahora son más bien nuestros hijos”, y eso volvió raro todo el ambiente.
    • Esto también fue cierto en Intel durante al menos 10 años, y probablemente desde mucho antes. Es probable que Nvidia haya sido así casi desde que existe.
      Hardware sin software es solo arena cara. Todas las empresas de semiconductores lo saben. De entrada, quien completó todo ese paquete con x86 fue Intel.
      En el ámbito de cómputo con GPU, CUDA es x86. Está en todas partes, es el estándar de facto y algún día será desestabilizado. La pregunta es si tomará 1 año o 10.
  • Sería excelente si lograran crear una cadena de herramientas, un ecosistema y una experiencia de programación mejores que CUDA, y hacer que sean compatibles con el máximo rendimiento en todas las plataformas de cómputo. Todos ganan.
    Hasta entonces, esa afirmación suena un poco ridícula, sobre todo considerando cómo fracasó OpenCL en cuanto a experiencia para programadores y soporte cada vez menor. Lo mismo aplica a los intentos de hacer cómputo general en GPU con compute shaders de DX/GL/Vulkan.
    ¿De verdad están “motivados”? Ya tuvieron años y los resultados han sido desastrosos. No sé si siquiera invirtieron una fracción de lo que se ha invertido en CUDA. Tienen que demostrarlo con dinero, no con palabras.

    • Me gustaría que AMD o Intel simplemente sacaran un CPU enorme de miles de núcleos que pudiera usarse sin un lenguaje de programación de propósito especial.
      No quiero coprocesadores, ni que intenten crear otro lenguaje roto de propósito especial, ya sea C/C++ lleno de casos raros o una copia torpe de Python. Solo pongan más núcleos y permitan usar hilos reales de lenguajes de programación comunes.
    • Me pregunto cuál es el problema con los compute shaders.
  • Intel y AMD tuvieron años para ofrecer funciones similares sobre OpenCL.
    Parece que primero deberían revisar sus propios fracasos.

    • SYCL es una contraparte más cercana a CUDA que OpenCL, e Intel también tiene su propia implementación. Aun así, casi no he visto a nadie escribir algo en SYCL en la práctica.
      Cuando lo revisé para probarlo, había varias implementaciones, y cada una soportaba distintos subconjuntos de sistemas operativos y hardware, así que era bastante caótico.
      https://www.intel.com/content/www/us/en/developer/tools/onea...
    • Deberían tener funciones similares, rendimiento similar o incluso mejor rendimiento, pero ahora no tienen nada de eso.
      La gente no quiere comprar cómputo más lento, aunque tal vez más barato, ni siquiera en hardware Nvidia. Entonces, ¿por qué lo haría en hardware Intel? Además habría que cambiar las apps, así que claramente parece difícil desde el inicio.
      No soy experto en este campo, pero ¿me estoy perdiendo de algo? Si la industria x86 quiere alejarse de lo que ofrece Nvidia, Intel tiene que llenar de alguna forma la casilla de “mejor”.
    • AMD e Intel implementaron OpenCL, y Nvidia también lo implementó. La industria podría haber construido sobre ese lenguaje común.
      En cambio, construyó sobre CUDA y luego se queja de que otros proveedores de hardware no tienen CUDA.
      Creo que fue porque OpenCL era el subconjunto común que varias empresas pudieron acordar que era implementable. He escrito código que compila para CUDA, OpenCL, C++ y OpenMP, y una y otra vez era lo mismo: “¿Qué? ¿OpenCL ni siquiera puede hacer esto? Demonios”.
    • Intel lo intentó hace unos años con OneAPI. Resultó que estaba décadas atrasado, y todavía le está tomando tiempo ponerse al día.
    • A Apple le pasó lo mismo. Como nadie se comprometió de lleno con esta situación, un competidor altamente integrado terminó arrasando el mercado. Viéndolo ahora, es curioso que la propuesta de valor de OpenCL fuera mucho más clara.
  • Me gustaría que alguien que conozca a fondo el campo de la IA explique cuál es el verdadero foso de CUDA.
    Para todos está claro que no es el hardware, sino el software, es decir, el ecosistema CUDA.
    Hace tiempo trabajé un poco con aprendizaje automático, pero a nivel de entrenar y ajustar modelos usaba bibliotecas de alto nivel y, hasta donde sé, esas bibliotecas decidían qué backend usar con algo parecido a un if.
    Entonces, suponiendo que Intel y otros implementaran un competidor práctico, ¿es incorrecto pensar que para muchos usuarios la transición sería fluida? Tal vez no para investigadores o para quienes empujan los límites, pero para la mayoría de las empresas no parece que el costo de migración sea grande.

    • Tu comprensión es correcta, pero la premisa no es nada fácil. La cantidad de trabajo que entra en CUDA es enorme, y NVIDIA no se va a quedar quieta esperando a que sus competidores la alcancen.
    • Esta situación se parece mucho a las primeras guerras de las IBM PC. Al principio existían la IBM PC y varias “compatibles”, pero no eran reemplazos totalmente drop-in sino compatibilidades a medias, así que había que recompilar muchos programas.
      Esos productos también los fabricaban grandes empresas estadounidenses. No buscaban convertir la PC en un producto genérico de consumo masivo, sino una pequeña parte de un mercado grande.
      Los clones reales de PC, es decir, productos puramente compatibles drop-in, se hicieron en Taiwán y dominaron el mercado. Las grandes empresas no quieren un mercado comoditizado, con precios bajos y todos compitiendo en igualdad de condiciones. Una “transición fluida” produce precisamente ese resultado, y por eso estas empresas no la crean.
    • Lo que se necesita es igualar el rendimiento de cómputo por dólar en bibliotecas de alto nivel. Eso es todo.
      Claro, no es tan fácil como decirlo. Incluso las TPU de Google todavía tienen dificultades para igualar a la H100 en operaciones de punto flotante por dólar, y si no usas Jax, también son bastante molestas de usar.
    • Se puede resumir que Nvidia eligió un enfoque de abajo hacia arriba. Empezó con hardware de procesamiento paralelo y construyó encima un entorno de desarrollo.
      Los competidores, en especial Intel, parecen intentar entrar al mercado con un enfoque de arriba hacia abajo. Buscan obtener una parte del mercado de inferencia usando hardware de procesamiento secuencial y, en la práctica, dependen de la innovación que ocurre en Nvidia. CUDA siempre irá un paso adelante.
    • Decir que el foso es el software es incorrecto. El foso sigue siendo principalmente hardware de cómputo con una relación precio-rendimiento muy fuerte y equipos de red muy buenos.
      En el entrenamiento de LLM a gran escala, CUDA no es un foso grande. Se ve en que Anthropic pasó de CUDA a Trainium. Probablemente reescribieron todos los kernels para Trainium.
  • No parece que la gente quiera alejarse de CUDA. En los últimos meses revisé varios modelos y herramientas, y la mayoría son más o menos así
    device = "cuda" if torch.cuda.is_available() else "cpu"
    Todavía no he visto ninguno que implemente el middleware de redes neuronales de AMD: https://www.amd.com/en/developer/zendnn.html

    • No lo he usado directamente, pero entiendo que el backend de aceleración AMD/ROCm para PyTorch sobrecarga los dispositivos y módulos cuda para que ROCm se vea como CUDA en las comprobaciones de funcionalidad
      Quieren que la transición sea fluida y, como el código existente suele comprobar CUDA, hacen lo necesario para que ese código funcione
    • Esto es más bien un problema del huevo y la gallina. Es probable que los desarrolladores de estos proyectos ni siquiera tengan dispositivos AMD relevantes para hacer pruebas. ¿Por qué los tendrían?
      La forma razonable de romper el ciclo sería que AMD contribuyera activamente con código, pruebas e instalaciones fáciles de “funciona de inmediato” en los proyectos populares más importantes para agregar soporte para AMD, y luego vender más hardware. Pero no se ve que AMD esté haciendo eso
    • Parece que no viste el anuncio de MI300X. No necesitas cambiar esa línea para usar AMD
    • zendnn es para CPU. La versión ROCm de PyTorch no requiere cambiar ni una línea de código
      Por eso, incluso al usar una GPU AMD, algo como device = "cuda" sigue funcionando con el mismo significado
  • Intel no hizo nada durante los últimos 10 años. Desperdició miles de millones de dólares en GPUs que apenas funcionan, y se apoyó en su monopolio de CPUs para frenar la innovación mientras solo extraía ganancias
    Al menos Nvidia creó algo que ayudó al avance de la IA, y su apuesta audaz tuvo éxito

  • Tanto Pat Gelsinger como Lisa Su parecen no entender nada de software, y ni siquiera saben delegarlo. Esperan que la “comunidad” haga el software para su hardware extremadamente complejo
    La presentación de Bill Daly de Nvidia [1] muestra que han venido desarrollando hardware y software en conjunto. El modelo de programación CUDA fue una apuesta enorme de hace mucho tiempo, y ganaron con justicia en machine learning/IA
    Si Intel y AMD no cambian radicalmente, el juego se terminó. Van a perder contra ARM y Nvidia
    [1] https://www.youtube.com/watch?v=kLiwvnr4L80

    • No es que no entiendan el problema. Ahora mismo hay una enorme carrera por capturar el mercado, y nadie quiere desperdiciar recursos reinventando la rueda de la computación paralela
      Esto es mucho más difícil de lo que la gente dice
  • El barco ya zarpó hace 10 años. En ese entonces me inscribí en una materia universitaria de cómputo general en GPU, creo que se llamaba algo como “programación paralela heterogénea”, y recién en la primera clase me enteré de que NVIDIA había proporcionado gratis todo el hardware y los materiales
    El resultado fue una clase puramente de CUDA en la que no se mencionaba ninguna alternativa, como esos viejos cursos universitarios de Word y Excel
    Nvidia es realmente buena creando o comprando fosos defensivos
    En PhysX, si no tenías una GPU Nvidia, incluso en CPUs compatibles con SSE caías en una ruta lenta de FPU no optimizada: https://arstechnica.com/gaming/2010/07/did-nvidia-cripple-it... https://www.realworldtech.com/physx87/3/ “Desde el punto de vista de Nvidia, reducir el rendimiento base de la CPU usando instrucciones x87 y un solo hilo hace que la GPU se vea mejor”
    El programa “The Way It’s Meant To Be Played” les pagaba a los estudios para que perjudicaran directamente a AMD. Un ejemplo fue que Ubisoft retiró el parche de DX10.1: https://techreport.com/news/14707/ubisoft-comments-on-assass...
    Con el programa “GameWorks” fueron un paso más allá y les pagaron a los estudios de juegos para que metieran directamente en sus juegos bibliotecas de Nvidia que degradaban el rendimiento: https://techreport.com/review/21404/crysis-2-tessellation-to... https://arstechnica.com/gaming/2015/05/amd-says-nvidias-game... https://wccftech.com/fight-nvidias-gameworks-continues-amd-c...

  • Entiendo perfectamente que NVIDIA tenga incentivos para mantener el dominio de CUDA, y también entiendo que otras empresas como AMD e Intel hayan dejado pasar oportunidades en estas condiciones de mercado.
    Aun así, vale la pena señalar que, cuando este tipo de foso técnico y funcional mantiene un monopolio de facto en ciertos casos de uso, al final los consumidores salen perdiendo.

    • En la mayoría de los casos es cierto, pero con CUDA creo que los consumidores están ganando. CUDA no es un algoritmo complejo secreto y especial solo para las GPU de Nvidia. Es el resultado de que Nvidia haya prestado atención durante 10 años a la experiencia de los desarrolladores en varias industrias.
      CUDA se usa no solo en IA, sino también en física, modelado numérico, criptografía, biología, etc. Nvidia encontró miles de casos de uso, escuchó a sus clientes y construyó la plataforma; luego la IA se convirtió en una enorme fuente de ingresos.
      El problema es que Intel y AMD probablemente seguirán mirando solo la bolsa de dinero de “IA” e ignorarán el resto de la plataforma, que incluye depuración, compiladores, integración de lenguajes, GUI y corrección de bugs.
      Si Intel dijera: “vamos a invertir miles de millones de dólares en OpenCL para garantizar una experiencia de desarrollador y una plataforma de primer nivel, y así eliminar CUDA”, sería prometedor; pero lo que se lee ahora se parece más a “vamos a cambiar algunas llamadas a funciones CUDA en PyTorch”. Eso será divertido solo hasta el momento en que tengas que depurar un problema de rendimiento y te des cuenta de que, en lugar de hablar directamente con un ingeniero de CUDA en GitHub, tienes que mandar un correo a una lista de correo muerta de Intel.
    • AMD, Intel y Khronos son libres de competir con algo mejor. NVIDIA no se los está impidiendo.
      En ese sentido, CUDA es un gran beneficio para los consumidores. Porque las alternativas son realmente pésimas.