T-Head publica un fork de Triton con backend para sus procesadores PPU

Fuentes: T-Head ships a Triton fork with backend support for its PPU hardware

El repositorio t-head/triton-for-sail es un fork del compilador y lenguaje Triton que añade un backend específico para los procesadores PPU desarrollados por T-Head Semiconductor, utilizados en su SDK SAIL. Está pensado para dos generaciones de Tensor Core: PPU0010, con instrucciones MMAv1, y PPU0015, con MMAv2. La programación se realiza con la misma interfaz Python de Triton upstream; el backend PPU se encarga de forma transparente de la compilación y ejecución sobre el hardware, siguiendo el flujo estándar ttir → ttgir → llir → hgbin con pases específicos en cada etapa.

Entre las optimizaciones clave se incluyen la carga asíncrona de datos mediante la unidad AIU, que solapa la precarga de tiles con el cómputo MMA para ocultar la latencia de la memoria global; un layout swizzled en memoria compartida que elimina conflictos de banco y alinea los datos con el formato de operandos de los Tensor Core; y la compilación de tl.dot sobre instrucciones MMA nativas, con soporte de precisión baja y mixta (FP8 en formatos E5M2 y E4M3, FP16 y BF16).

El backend incorpora además una nueva API, aiu_load, que mueve datos de memoria global a memoria compartida con la AIU. Se ofrece en tres variantes: tl.aiu_load directa, make_block_ptr junto con aiu_load y advance para punteros por bloques, y make_tensor_descriptor. Las restricciones de uso exigen alineación de 32 bytes, dimensiones múltiplos concretos según el eje y tipos de datos compatibles en función del modelo de PPU empleado. El repositorio incluye ejemplos de kernels matmul que muestran cómo integrar estas primitivas en código Triton estándar.