Construimos sin querer un compilador LLVM para JAX

El equipo de PennyLane, una biblioteca de software cuántico, estaba desarrollando Catalyst, un compilador cuántico basado en MLIR, cuando descubrió que su infraestructura podía ejecutar código JAX clásico sin necesidad de instrucciones cuánticas. El decorador @qjit acepta funciones JAX puras con Num

Portar nanochat a TPU: lo que se mantiene de PyTorch y lo que se rompe

El desarrollador tucan9389 ha portado nanochat, el proyecto de entrenamiento de modelos de chat de Andrej Karpathy pensado para nodos de 8 GPU H100, a TPU usando JAX, Flax y Pallas. El objetivo del puerto, bautizado nanochat-jax, es conservar al máximo la configuración y arquitectura originales y ve

Cómo obtener gradientes exactos de código Fortran gracias a LFortran y Enzyme

El blog Tesseract presenta una cadena de compilación experimental que permite derivar automáticamente código Fortran heredado y obtener gradientes exactos sin reescribirlo en JAX o PyTorch. La propuesta combina LFortran, LLVM y Enzyme, un sistema de diferenciación automática que opera a nivel de LLV

Cómo definir nuevos tipos en JAX con hijax

JAX trabaja de forma natural con arrays y, cuando se necesitan datos agregados, ofrece los pytrees como mecanismo estándar para empaquetar varios arrays en una sola estructura que el sistema aplana y reconstruye de forma transparente. Sin embargo, hay casos en los que esa transparencia resulta contr

Sufijos de forma: una convención para nombrar tensores con claridad

Character.AI ha compartido una convención interna, vigente desde 2022, que añade al nombre de cada tensor un sufijo con las letras de sus dimensiones. El objetivo es que cualquier variable revele de un vistazo la forma del tensor con el que se trabaja, sin necesidad de rastrear el código. La regla

TycoonLE: entorno JAX de planificación económica en logística

TycoonLE (Tycoon Learning Environment) es un entorno de aprendizaje por refuerzo (RL) diseñado para la planificación económica a largo plazo en el ámbito de la logística y el transporte. Desarrollado con JAX, permite que agentes de RL asignen capital, construyan rutas de transporte, muevan cargas, g

Gráficos 3D en el navegador: JAX impulsa la innovación

Un desarrollador ha logrado implementar un renderizador de ray-marching en navegadores web utilizando la biblioteca JAX de Google. Esta innovadora demostración, publicada en benoit.paris, permite generar imágenes 3D directamente en el navegador a través de código Python, aprovechando la capacidad de

Google mejora su modelo de predicción de series temporales

Google Research ha lanzado TimesFM 2.5, una versión mejorada de su modelo de predicción de series temporales. El modelo, disponible en GitHub, se basa en una arquitectura 'decoder-only' y está diseñado para ofrecer pronósticos más precisos y eficientes. TimesFM 2.5 reduce el número de parámetros de

Flash Attention en TPUs: desafíos y aprendizaje

Este artículo explora los desafíos encontrados al intentar portar el algoritmo Flash Attention, optimizado para GPUs con el lenguaje Triton, a un TPU (Tensor Processing Unit). El objetivo era aprovechar la potencia gratuita de los TPUs ofrecidos en Colab. La experiencia reveló que la transición no f

Anvil: R más rápido con nuevo framework de cálculo

Un nuevo framework para R, llamado Anvil, promete acelerar significativamente los cálculos numéricos. Desarrollado por R-Xla, Anvil utiliza compilación Just-In-Time (JIT) y diferenciación automática hacia atrás para ejecutar programas a gran velocidad, permitiendo su ejecución en diferentes hardware

Rust en GPU: Async/await facilita la programación

VectorWare ha anunciado un hito significativo en la programación de GPU: la capacidad de utilizar las características `async/await` de Rust directamente en la GPU. Esto representa un avance importante hacia la visión de la empresa de facilitar a los desarrolladores la creación de aplicaciones de alt