Llegamos a ustedes gracias a:



Noticias

OpenAI estrena Triton para el aprendizaje automático en la GPU

[03/08/2021] OpenAI, la empresa sin ánimo de lucro cuya misión declarada es el avance ético de la IA, ha publicado la primera versión del lenguaje Triton, un proyecto de código abierto que permite a los investigadores escribir proyectos de aprendizaje profundo impulsados por la GPU sin necesidad de conocer los entresijos de la programación de la GPU para el aprendizaje automático.

Triton 1.0 utiliza Python (3.6 y superior) como base. El desarrollador escribe el código en Python utilizando las librerías de Triton, que luego se compilan en JIT para ejecutarse en la GPU. Esto permite la integración con el resto del ecosistema Python, actualmente el mayor destino para el desarrollo de soluciones de aprendizaje automático. También permite aprovechar el propio lenguaje Python, en lugar de reinventar la rueda desarrollando un nuevo lenguaje específico para el dominio.

Las librerías de Triton ofrecen un conjunto de primitivas que, recordando a NumPy, proporcionan una variedad de operaciones matriciales, por ejemplo, o funciones que realizan reducciones en matrices según algún criterio. El usuario combina estas primitivas en su propio código, añadiendo el decorador @triton.jit compilado para ejecutarse en la GPU. En este sentido, Triton también se asemeja a Numba, el proyecto que permite compilar en JIT código Python numéricamente intensivo en ensamblador nativo de máquina para acelerar su ejecución.

Algunos ejemplos sencillos de Triton son un núcleo de adición vectorial y una operación softmax fusionada. Este último ejemplo, según se afirma, puede ejecutarse muchas veces más rápido que el softmax fusionado nativo de PyTorch para operaciones que pueden realizarse íntegramente en la memoria de la GPU.

Triton es un proyecto joven y actualmente solo está disponible para Linux. Su documentación es aún mínima, por lo que los primeros desarrolladores que lo adopten tendrán que examinar detenidamente el código fuente y los ejemplos. Por ejemplo, la función triton.autotune, que puede utilizarse para definir parámetros para optimizar la compilación JIT de una función, aún no está documentada en la sección de la API de Python para la biblioteca. Sin embargo, triton.autotune se demuestra en el ejemplo de multiplicación de matrices de Triton.