Noticias Programación

Programa de aprendizaje profundo en la GPU con Triton

Triton es un nuevo lenguaje similar a Python de OpenAI destinado a facilitar la programación de la GPU al proporcionar una alternativa a CUDA.

El kit de herramientas CUDA de NVIDIA proporciona un entorno de desarrollo para acelerar el procesamiento de aplicaciones aprovechando la potencia de las GPU, pero requiere que el código esté escrito en C ++. Dado que C ++ por defecto no es fácil de usar y difícil de dominar, estas propiedades se aplican posteriormente al kit de herramientas.

¿No sería más fácil usar un lenguaje intuitivo para escribir sus aplicaciones de aprendizaje profundo aceleradas por GPU? Deseo cumplido por Open AI que anunció:

Estamos lanzando Triton 1.0, un lenguaje de programación de código abierto similar a Python que permite a los investigadores sin experiencia en CUDA escribir código de GPU altamente eficiente, generalmente a la par de lo que un experto podría producir.

Actualmente, Triton solo admite GPU NVIDIA Tensor Core como A100. Tuvimos un breve encuentro con las poderosas tarjetas A100 en «GAN Theft Auto – The Neural Network Is The Game», donde la propia Nvdia prestó a dos investigadores una estación DGX mejorada con una computadora equipada con cuatro de las tarjetas GPU A100 de 80 gigabytes. total de 320 gigabytes de VRAM para acelerar su investigación.

Pero para aclarar aún más la afirmación de «alternativa al kit de herramientas CUDA», mientras que Triton permite a los investigadores sin experiencia en CUDA escribir aplicaciones de aprendizaje profundo y procesamiento de GPU sin la necesidad del kit de herramientas CUDA, las GPU a las que se dirigen deben estar habilitadas para CUDA. El soporte de AMD no está incluido en los planes a corto plazo del proyecto. Dicho esto, Triton también requiere que las GPU habilitadas para CUDA posean una capacidad de cómputo (una medida de las especificaciones generales de la GPU y las características disponibles) de 7.0+. Puede encontrar una buena tabla de compatibilidad de GPU aquí.

Cubriendo la parte de hardware.

Desde el punto de vista de la programación, Triton es Python con extensiones para tareas de programación de GPU como la multiplicación de matrices o la suma de vectores. Como muestran los ejemplos de código en línea, simplemente necesita importar Triton como una biblioteca y usar sus funciones en Python:

Publicidad:

Aparte de la lengua, Triton también consta de otras dos partes:

Triton-IR: una representación intermedia (IR) basada en LLVM que proporciona un entorno adecuado para analizar, transformar y optimizar programas a nivel de panel. Triton-JIT: un compilador Just-In-Time (JIT) y un backend de generación de código para compilar programas Triton-IR en un código de bits LLVM eficiente.

Pero al final, la pregunta candente es: ¿intercambia rendimiento por la productividad de los programadores cambiando del kit de herramientas CUDA basado en C ++ a Triton?

Además de hacer que la programación de GPU sea más accesible para todos, los puntos de referencia ya han demostrado que Triton produce núcleos que son hasta dos veces más eficientes que las implementaciones de Torch equivalentes, logrando el máximo rendimiento con alrededor de 25 líneas de código Python. Por otro lado, implementar algo como esto en CUDA requeriría mucho más esfuerzo e incluso podría obtener un rendimiento menor.

Entonces, ¿es posible tener lo mejor de ambos mundos? Este es un sí con Triton.

El proyecto es de código abierto y está disponible en GitHub.
También hay un excelente tutorial para comenzar en Twitch con el autor de Triton de OpenAI, Philippe Tillet. Solo asegúrese de comenzar a mirar desde el minuto 5 en adelante, ya que hay un error que desactiva el sonido primero.

Publicidad:

También puede gustarte...