AI-hardware en softwarestack

Welke uitspraak over het basisprincipe van snelle attention-implementaties zoals FlashAttention is juist?

  1. 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
  2. BDe attentionberekening wordt weggelaten en er wordt een benaderd antwoord gegeven
  3. 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.

Dit onderwerp oefenen Naar de onderwerppagina

Meer vragen over AI-hardware en softwarestack

  1. Wat is het belangrijkste doel van "operator fusion" (samenvoegen van bewerkingen) in AI-berekeningen?
  2. Het optellen van een bias en het toepassen van ReLU op het resultaat van een matrixproduct, eerst drie aparte kernels, zijn samengevoegd tot één kernel. Wat neemt hierdoor hoofdzakelijk af?
  3. Welke uitspraak over de belangrijkste taak van AI-compilers zoals XLA, TVM en de compilerfunctie van PyTorch is juist?
  4. Welke uitspraak over de "rekengraaf" (computational graph) in AI-frameworks en -compilers is juist?
  5. Welke uitspraak over ONNX is juist?

Vergelijkingen bij dit onderwerp