Wat is Rekenintensiteit (arithmetic intensity)?

Waarde die het aantal bewerkingen deelt door het aantal bytes dat uit het geheugen wordt gelezen of geschreven. Hoe groter, hoe eerder de berekening compute-bound is en hoe kleiner, hoe eerder memory-bound.

Japanse benaming: 演算強度

“Rekenintensiteit (arithmetic intensity)” komt voor in 8 oefenvragen uit 3 onderwerpen, bijv. AI-hardware en softwarestack, CPU en architectuur, Prestatiemeting en profiling.

Vakgebied: AI-hardware en softwarestack

Nu oefenen: vragen over Rekenintensiteit (arithmetic intensity)

Welk model toont met de rekenintensiteit (aantal bewerkingen per byte) op de horizontale as of de prestaties van een programma worden begrensd door rekenprestaties of door geheugenbandbreedte?

  1. AWet van Amdahl
  2. BRoofline-model
  3. CPoissonmodel
Antwoord en toelichting tonen

Antwoord: B. Roofline-model

In het roofline-model staat op de horizontale as de rekenintensiteit (aantal bewerkingen per uit het geheugen gelezen byte) en op de verticale as de prestaties. Taken met een lage rekenintensiteit worden begrensd door de geheugenbandbreedte (schuine lijn) en taken met een hoge rekenintensiteit door de piekrekenprestaties (horizontale lijn). Bij een bandbreedte van 1 TB/s en een rekenprestatie van 100 TFLOPS zijn taken met een rekenintensiteit lager dan 100 FLOP/byte bijvoorbeeld door het geheugen begrensd. Het model wordt gebruikt om te bepalen in welke richting verbetering moet worden gezocht (hergebruik van gegevens of efficiëntere berekening).

Bij het product van twee N×N-FP16-matrices (2 bytes) worden de twee ingangen eenmaal gelezen en het resultaat eenmaal geschreven. Hoeveel bedraagt de rekenintensiteit (aantal bewerkingen per byte) ongeveer?

  1. A1/3
  2. BN/3
  3. C3N
Antwoord en toelichting tonen

Antwoord: B. N/3

Het aantal bewerkingen is 2N³ en voor geheugentoegang gaat het om 3N² elementen van drie matrices, bij FP16 6N² bytes. De rekenintensiteit is 2N³ ÷ 6N² = N/3, bij N = 1024 circa 340. Bij matrixproducten neemt het aantal berekeningen per byte toe naarmate ze groter zijn, zodat de prestaties van de rekeneenheden gemakkelijk kunnen worden benut. Bewerkingen zoals elementgewijze optelling hebben daarentegen een rekenintensiteit onder 1, waarbij de geheugenbandbreedte de snelheid bepaalt.

“Rekenintensiteit (arithmetic intensity)” in de toelichting

Vragen met “Rekenintensiteit (arithmetic intensity)” (8)

  1. Welk model toont met de rekenintensiteit (aantal bewerkingen per byte) op de horizontale as of de prestaties van een programma worden begrensd door rekenprestaties of door geheugenbandbreedte?
  2. Bij het product van twee N×N-FP16-matrices (2 bytes) worden de twee ingangen eenmaal gelezen en het resultaat eenmaal geschreven. Hoeveel bedraagt de rekenintensiteit (aantal bewerkingen per byte) ongeveer?
  3. Een versneller met een piekprestatie van 100 TFLOPS en een geheugenbandbreedte van 2 TB/s voert een bewerking uit met een rekenintensiteit van 10 FLOP/byte. Welke prestatie is volgens het roofline-model haalbaar?
  4. Waarom is de berekening van een volledig verbonden laag (product van gewichtsmatrix en vector) gemakkelijk geheugenbegrensd wanneer er maar één ingang is (batchgrootte 1)?
  5. Waarom neemt de efficiëntie van de totale verwerking bij inferentie gemakkelijk toe als de batchgrootte (het aantal gezamenlijk verwerkte ingangen) wordt vergroot?
  6. De inferentie van een groot taalmodel bestaat uit een fase waarin de invoertekst gezamenlijk wordt verwerkt (prefill) en een fase waarin per token de uitvoer wordt gemaakt (decode). Welke combinatie van wat de prestaties van elke fase hoofdzakelijk bepaalt is juist (bij een kleine batch)?
  7. Waarom kosten elementgewijze bewerkingen zoals ReLU en layer normalization in AI-berekeningen gemakkelijk veel tijd in verhouding tot het aantal bewerkingen?
  8. Wat is de juiste richting om de prestaties te verhogen wanneer met het roofline-model blijkt dat een bewerking zich in het gebied bevindt dat door de geheugenbandbreedte wordt begrensd?

Verwante termen

Roofline-model Batchgrootte Inferentie (inference) GPU Prefill Numerieke apertuur (NA) Via AI-compiler All-reduce Attention

Naar de woordenlijst