Intel avanza oneAPI como el próximo paso crucial

Intel promueve oneAPI como siguiente paso clave

El auge de la inteligencia artificial “generativa” se trata de escalar, es decir, la idea de agregar más recursos a un programa de computadora para obtener mejores resultados. Como mencionó Ilya Sutskever, cofundador y científico jefe de OpenAI, “Tenía una creencia muy fuerte de que más grande es mejor” cuando fundó la compañía que crearía ChatGPT.

Esa idea de cada vez más recursos de cómputo ha llevado a una carrera por desarrollar los chips más potentes para la inteligencia artificial, incluyendo no solo las nuevas GPUs de Nvidia, sino también Habana Labs de Intel, que ha mostrado resultados impresionantes en pruebas de referencia; y Advanced Micro Devices, y startups como Cerebras Systems.

También: ¿Puede la inteligencia artificial generativa resolver el problema no resuelto más grande de la ciencia de la computación?

Esa prisa por desarrollar chips ha creado un problema muy práctico: ¿Cómo se supone que los desarrolladores deben desarrollar para un universo en expansión de tipos de chips que tienen capacidades únicas y entornos de programación únicos?

“Tenemos GPUs, tenemos TPUs, tenemos FPGAs, todas estas cosas tienen diferentes y maravillosos puntos de diseño en el mercado, pero si piensas en la experiencia del desarrollador, es como, Oh, ¿cómo lo programas?” dice Joe Curley, vicepresidente y director general de productos de software y ecosistema en Intel en una entrevista con ENBLE.

Los chips siempre dependen de las herramientas de desarrollo disponibles para utilizar esos chips; no importa qué tan bueno sea un chip, es solo un montón de silicio si no hay nada con lo que programar para él.

La respuesta de Intel es oneAPI, una especificación de programación de código abierto, cuyo código fuente se publica en GitHub, y que tiene como objetivo permitir a los desarrolladores lograr el procesamiento paralelo de numerosos tipos de chips sin conocer todos los detalles de cada uno de ellos.

También: Ampliando ChatGPT: ¿Pueden los complementos de chatbot de IA realmente cambiar el juego?

La semana pasada fue una gran semana para oneAPI, ya que se anunció que la especificación se está reformulando como la Unified Acceleration Foundation, o UXL, que es alojada por la Joint Development Foundation de la Linux Foundation. UXL cuenta con miembros fundadores líderes en el mundo de los chips, como ARM Holdings, Qualcomm, Fujitsu y Samsung, y también Google.

Rod Burns, líder del Comité Directivo de UXL, llamó a la presentación la semana pasada de UXL, un “momento crucial para la computación heterogénea”.

Vicepresidente de Intel, Joe Curley

“Todo lo que es oneAPI es un modelo de programación de software que intenta crear una capa de abstracción común que te permite programar diferentes marcas de aceleradores a través de lenguajes comunes e interfaces de bibliotecas comunes”, dijo Curley.

Intel ha estado enviando su propia implementación de la especificación de código abierto desde diciembre de 2020. Los componentes de oneAPI incluyen un lenguaje de paralelización multiplataforma, llamado DPC++, que es una adaptación de un lenguaje de programación de código abierto llamado SYCL, construido sobre el lenguaje de programación C++, y gestionado por Khronos Group.

También: ¿Cómo funciona realmente ChatGPT?

En junio del año pasado, Intel adquirió la startup CodePlay de Edimburgo, Escocia, un proveedor de compiladores paralelos. Esa adquisición trajo a Intel experiencia en compilación cruzada de dispositivos para SYCL.

oneAPI también tiene una selección de bibliotecas para diferentes funciones, como por ejemplo, oneDNN, para acelerar las primitivas de multiplicación de matrices.

Se pueden ver más detalles sobre la especificación de oneAPI en la página de especificaciones de la tecnología.

La tecnología del compilador y las bibliotecas permiten diferentes enfoques de programación de IA. Uno es partir del punto de vista de un científico de datos y simplemente trabajar hacia abajo desde marcos populares de IA como PyTorch y TensorFlow, y utilizar bibliotecas para paralelizar ese código.

También: Nvidia domina los benchmarks de IA, pero Intel presenta una competencia significativa

El objetivo de oneAPI, según Curley, es “apuntar” a una parte del continuo de programación paralela que nunca ha sido estandarizada.

En muchas ocasiones en la computación paralela, dijo Curley, “se comienza con lenguajes completamente abstractos, Python, pasando por alguna infraestructura de bibliotecas que te da acceso a la aceleración,” y todo se hace automáticamente para el científico de datos, dijo Curley. En el otro extremo del espectro, el programador en C++ o Fortran da pistas explícitas a un compilador para paralelizar el código para una GPU.”

“Donde entra oneAPI es, en cierto modo, un paso más abajo, lo que significa que sé que estoy escribiendo para un acelerador, sé que voy a utilizar un acelerador, por lo que quiero apuntar a ese dispositivo y quiero escribir un código óptimo y realmente me importa el rendimiento”, dijo Curley.

“Ahí es donde realmente encaja algo como oneAPI, y la dificultad es que, en esa parte del continuo, nunca ha habido un esfuerzo exitoso de estandarización”, dijo. Existe CUDA de Nvidia, que domina la construcción de frameworks para IA y que no es abierto.

También: ¿Puede la IA programar? Solo en pequeños pasos

“CUDA es un lenguaje propiedad de una empresa y tienen sus intereses, y estoy seguro de que hacen un buen trabajo con él, pero su interés no es construir una comunidad diversa”, observó Curley.

“OpenCL lo intentó, tuvo algunos éxitos, pero muchos desarrolladores encontraron que OpenCL era engorroso: muchos archivos de encabezado, no era demasiado productivo.”

La forma de trabajar de OpenCL, también mantenida por el Grupo Khronos, estaba dividida, observó Curley. “Tenías una página de host y una página de acelerador, y tenías que pensar de manera diferente” respecto a los dos dispositivos.

“Lo que hace Sickle es crear un lenguaje de una sola página mucho más intuitivo que dice ‘oye, estoy escribiendo código, quiero que se ejecute este código C++ en ese dispositivo de esta manera'”, explicó Curley, “en lugar de decir ‘voy a tener un código de host y un código de dispositivo y gestionar estos dos y luego unirlos al final'”.

También: Cómo utilizar ChatGPT para escribir código

“Por lo tanto, lo que hace es proporcionar una respuesta abierta y productiva para esa parte del continuo, antes de llegar a la persona que está escribiendo en ensamblador y cosas así”, dijo Curley.

Curley describió a SYCL como proveniente de “un inicio más moderno” que los esfuerzos anteriores de cómputo paralelo, al “haber aprendido mucho de lo que las personas han aprendido de programar aceleradores durante los últimos 13 años”.

Los objetivos de oneAPI son consistentes con lo que Wei Li, vicepresidente y gerente general de IA y análisis de Intel, dijo el año pasado a ENBLE que es la meta de la compañía de utilizar “el software como un puente para llegar a la IA en todas partes”, superando los obstáculos técnicos.

La adquisición de CodePlay aportó tecnología para lograr un enfoque más sencillo para la compilación multiplataforma. “Sobre nuestra pila de compilación, han proporcionado un complemento que se integra directamente en nuestra cadena de herramientas para permitirte generar código para una GPU de AMD o Nvidia”, dijo Curley.

También: Surge un nuevo rol para los líderes de software: supervisar la IA generativa

“Por lo tanto, si estás empezando desde cero hoy, tenemos un entorno en el que no tienes que escribir para una persona y luego cambiar, puedes escribir en el lenguaje SYCL y luego portarlo a cualquier dispositivo que desees.”

Esa facilidad de uso no se trata solo de aliviar la carga de programación, dijo Curley; también se trata de la portabilidad del código, lo cual tiene su propio atractivo.

“Eso es realmente importante para una clase de clientes en sistemas industriales, personas que están implementando esto en aviones o algo que puede tener una vida útil de 20 o 30 años, donde no quieres estar atado a un lenguaje o a una sola compañía por razones prácticas de mantenimiento”, observó Curley.

¿Cómo se enfrentará oneAPI al liderazgo de más de una década que CUDA ha tenido en el mercado y a la tremenda base instalada de GPUs de Nvidia?

También: La IA es excelente en programación, pero hay algunas advertencias importantes

“Si tienes la opción de construir sobre una cadena de herramientas abierta o una cadena de herramientas cerrada, en general, lo abierto gana”, es una forma de verlo, dijo Curley.

Al mismo tiempo, estas cosas llevan tiempo.

“Es nuevo”, dijo sobre oneAPI, “y estamos realmente al comienzo de nuestro viaje”. En el caso de “ese otro lenguaje”, como se refiere a CUDA, “durante los primeros 8 o 9 años, fue en gran medida un lenguaje de nicho y, incluso hoy en día, sigue siendo realmente solo para profesionales en ciertos espacios”.

“La idea aquí es que, si podemos hacer algo que sea un poco más omnipresente, un poco más abierto, un poco más parecido a C++, entonces, honestamente, se crea una gran alternativa”.