🔎
Más
Especiales
Filtros
Dev hace 11 d

Lenguaje de programación de tensores experimental

Lenguaje de programación de tensores experimental

Un nuevo lenguaje de programación experimental para cálculos de tensores ha sido presentado en GitHub. Este lenguaje, denominado "i", se caracteriza por su semántica declarativa, programación explícita y una superficie de código extremadamente pequeña.

El lenguaje "i" tiene como objetivo combinar la capacidad de programación de bajo nivel con la facilidad de uso de un lenguaje de alto nivel. Su modelo de programación se basa en tres conceptos fundamentales: división de bucles, ordenación de bucles y programación de productores de entrada. Estos conceptos permiten la fusión de bucles y operadores, el plegado de almacenamiento y la reescritura de reducciones en línea.

“El lenguaje "i" tiene como objetivo combinar la capacidad de programación de bajo nivel con la facilidad de uso de un lenguaje de alto nivel”

El lenguaje "i" se ha diseñado para ser lo suficientemente flexible como para implementar algoritmos numéricamente estables, como el algoritmo FlashAttention. Este algoritmo es una técnica de atención en bloque que se utiliza en modelos de aprendizaje automático. El lenguaje "i" proporciona una forma concisa y legible de implementar este algoritmo, lo que lo hace atractivo para los desarrolladores de software que trabajan en el campo del aprendizaje automático.

El proyecto "i" se encuentra en una etapa experimental y se está desarrollando de forma abierta en GitHub. Los desarrolladores pueden acceder al código fuente y contribuir al proyecto. El lenguaje "i" tiene un pequeño conjunto de archivos, incluyendo un archivo de configuración y un archivo de documentación. El proyecto también incluye un conjunto de pruebas y ejemplos para demostrar su funcionalidad.

El lenguaje "i" puede ser de interés para los desarrolladores de software que trabajan en el campo del aprendizaje automático y la inteligencia artificial, ya que proporciona una forma flexible y concisa de implementar algoritmos numéricamente estables. Sin embargo, es importante tener en cuenta que el proyecto se encuentra en una etapa experimental y puede requerir más desarrollo y pruebas antes de ser utilizado en producción.