Esto es atención flash hacia adelante: 'TestPcontig.test_flash_attention' Ni siquiera hay un "fusible" a su alrededor, el patrón es obvio por el flujo de datos. A la inversa le faltan dos trucos: la salida de q.grad y k.grad juntos y la elección de volver a calcular la matriz de puntuación en lugar de guardarla.
Una vez que la atención del flash hacia atrás sea automática, imagina los otros patrones que esto descubrirá. Para la velocidad, estamos trabajando en un pase similar a Thunderkittens que divide todo en mosaicos de 16x16. No más razonamientos sobre "locales", que también es la oferta de Triton.
¿La gente sabe cómo leer estos diagramas? En comparación con las publicaciones con código, estas publicaciones no obtienen mucha tracción, pero encuentro que el diagrama es mucho más fácil de pensar.
11K