Escriba el código de IA una vez, ejecútelo en cualquier lugar: no es Java, es oneAPI de Intel

De Intel "Mega tendencias en HPC" se reducen a cargas de trabajo de IA, que se ejecutan en muchos tipos de hardware, especialmente en entornos de nube, no en el sitio.

Corporación Intel

El sábado por la tarde (16 de noviembre) en Supercomputing 2019, Intel lanzó un nuevo modelo de programación llamado oneAPI. Intel describe la necesidad de vincular middleware y frameworks directamente a hardware específico como uno de los mayores puntos débiles en el desarrollo de AI / Machine Learning. El modelo oneAPI tiene como objetivo abstraer este acoplamiento estrecho, lo que permite a los desarrolladores centrarse en su diseño real y reutilizar el mismo código cuando cambia el hardware subyacente.

Este tipo de mantra de «escribir una vez, ejecutar en cualquier lugar» recuerda los primeros pasos de Sun en el lenguaje Java. Sin embargo, Bill Savage, gerente general de rendimiento informático de Intel, le dijo a Ars que esta no es una caracterización precisa. Si bien cada enfoque aborda el mismo problema básico (acoplar estrechamente el hardware de la máquina, hacer la vida de los desarrolladores más difícil y obstaculizar la reutilización del código), los enfoques son muy diferentes.

Cuando un desarrollador escribe código Java, la fuente se compila en bytecode y una máquina virtual Java adaptada al hardware local ejecuta ese bytecode. Aunque muchas optimizaciones han mejorado el rendimiento de Java en los más de 20 años desde que se introdujo, sigue siendo significativamente más lento que el código C ++ en la mayoría de las aplicaciones, por lo general entre la mitad y una décima parte más rápido. Por otro lado, una API está destinada a producir un código objeto sencillo sin penalizaciones insignificantes o de rendimiento.

Cuando le preguntamos a Savage sobre el diseño de una API y las expectativas de rendimiento, la distanció firmemente de Java, señalando que no hay código de bytes involucrado. En su lugar, oneAPI es un conjunto de bibliotecas que vinculan las llamadas API independientes del hardware directamente a un código de bajo nivel altamente optimizado que apunta al hardware real disponible en el entorno local. Entonces, en lugar de «Java para inteligencia artificial», la conclusión de alto nivel está más en la línea de «OpenGL / DirectX para inteligencia artificial».

Publicidad

Para una codificación de rendimiento aún mayor dentro de bucles estrechos, oneAPI también presenta una nueva variante de lenguaje llamada «Data Parallel C ++», que permite que incluso código optimizado de muy bajo nivel logre múltiples arquitecturas. Data Parallel C ++ aprovecha y amplía SYCL, una capa de abstracción de «fuente única» para la programación OpenCL.

En su versión actual, un único desarrollador de API todavía necesita centrarse en el tipo de hardware básico para el que está codificando, por ejemplo, CPU, GPU o FPGA. Además de esta dirección básica, oneAPI mantiene el código optimizado para cualquier variante de hardware compatible. Esto permitiría, por ejemplo, a los usuarios de un proyecto desarrollado por una API ejecutar el mismo código en Tesla v100 de Nvidia o en la GPU Ponte Vecchio de Intel lanzada recientemente.

Ponte Vecchio es el primer producto real de la nueva línea de GPU Xe de Intel y está específicamente orientado a la supercomputación HPC y el uso de centros de datos. Aunque ni Savage ni otros ejecutivos de Intel con los que Ars habló tenían plazos o hablaron con productos concretos, una diapositiva de la presentación de Intel Supercomputing 2019 muestra claramente la arquitectura Xe que abarca estaciones de trabajo, dispositivos móviles y uso de juegos, por lo que puede haber momentos interesantes por delante para los rivales en estos espacios.

Savage le dijo a Ars que si bien la versión actual de oneAPI todavía requiere que los desarrolladores codifiquen para una familia de arquitectura específica (CPU, GPU, FPGA, etc.), Intel planea una versión futura para permitir la selección automática del tipo de hardware más adecuado disponible.

El kit de herramientas oneAPI está disponible para su uso y prueba ahora en Intel Devcloud.