AI-hardware en softwarestack
Welke uitspraak over het basisprincipe van snelle attention-implementaties zoals FlashAttention is juist?
- ADe berekening wordt in tegels (tiles) verdeeld en verloopt in het geheugen op de chip, zonder de grote n×n-tussentabel naar HBM te schrijven, waardoor lees- en schrijfacties van het geheugen afnemen
- BDe attentionberekening wordt weggelaten en er wordt een benaderd antwoord gegeven
- CDe attention wordt op de CPU berekend
Antwoord en toelichting tonen
Antwoord: A. De berekening wordt in tegels (tiles) verdeeld en verloopt in het geheugen op de chip, zonder de grote n×n-tussentabel naar HBM te schrijven, waardoor lees- en schrijfacties van het geheugen afnemen
Bij een eenvoudige implementatie wordt de n×n-tabel naar HBM geschreven, voor de softmax opnieuw gelezen en daarna nogmaals voor het product met Value, zodat het lezen en schrijven van geheugen de prestaties bepaalt. FlashAttention verdeelt Query en Key/Value in blokken die in het gedeelde geheugen worden geladen en voert de berekening in één doorgang uit terwijl de softmax stapsgewijs wordt bijgewerkt, zonder de tabel naar HBM te schrijven. Het rekenwerk blijft gelijk, maar het lezen en schrijven van geheugen neemt sterk af, zodat het sneller wordt.