Esto es atención flash hacia adelante: `TestPcontig.test_flash_attention` Ni siquiera hay un "fusible" alrededor, el patrón es obvio a partir del flujo de datos. Hacia atrás faltan dos trucos: la salida de q.grad y k.grad juntas y elegir recomputar la matriz de puntuación en lugar de guardarla.
Una vez que la atención de retroceso automática esté en funcionamiento, imagina los otros patrones que esto descubrirá. Para mayor velocidad, estamos trabajando en un pase similar a thunderkittens que descompone todo en mosaicos de 16x16. No más razonamientos sobre "locals," que es la oferta de Triton también.
¿La gente sabe cómo leer estos diagramas? En comparación con las publicaciones con código, estas publicaciones no reciben mucha atención, pero encuentro que el diagrama es mucho más fácil de entender.
11K