Wat is INT8?

Geheel getal van 8 bits met teken (−128 tot 127). Bij AI-inferentie leiden het omzetten (kwantiseren) van gewichten en activaties naar INT8 met een schaalfactor tot sterk lagere reken- en geheugenlast, en kleine gehele-getalschakelingen kunnen het snel verwerken.

Japanse benaming: INT8

“INT8” komt voor in 5 oefenvragen uit 3 onderwerpen, bijv. Computerarithmetiek, AI-hardware en softwarestack, GPU-programmeren.

Vakgebied: Computerarithmetiek

Nu oefenen: vragen over INT8

Wat is het belangrijkste voordeel van het omzetten (kwantiseren) van gewichten van FP32 naar INT8 bij AI-inferentie?

  1. ADe rekennauwkeurigheid is altijd hoger dan bij FP32
  2. BDe hoeveelheid data wordt een vierde, en de berekening gaat sneller en zuiniger
  3. CDe modelprestaties nemen altijd toe, ook zonder opnieuw te trainen
Antwoord en toelichting tonen

Antwoord: B. De hoeveelheid data wordt een vierde, en de berekening gaat sneller en zuiniger

Wanneer 32-bits gewichten 8 bit worden, wordt het geheugengebruik en de hoeveelheid uit te lezen data een vierde, wat veel effect heeft bij inferentie met beperkte geheugenbandbreedte. Bovendien zijn vermenigvuldigers voor gehele getallen van 8 bit veel kleiner en zuiniger dan drijvendekommavermenigvuldigers, zodat met hetzelfde oppervlak en vermogen meer bewerkingen mogelijk zijn. Daar staat tegenover dat slechts 256 waarden kunnen worden weergegeven, wat fouten veroorzaakt en de nauwkeurigheid enigszins kan verlagen. De nauwkeurigheid of prestaties nemen niet altijd toe.

Gegevens met een waardebereik van −6,35 tot 6,35 worden gekwantiseerd naar symmetrisch INT8 (−127 tot 127) rond 0. Met de schaal gelijk aan "grootste absolute waarde ÷ 127", door welk geheel getal wordt 1,0 weergegeven?

  1. A1
  2. B127
  3. C20
Antwoord en toelichting tonen

Antwoord: C. 20

De schaal is 6,35 ÷ 127 = 0,05, dus het gehele getal 1 komt overeen met het reële getal 0,05. Om een reële waarde in een geheel getal om te zetten wordt gedeeld door de schaal en afgerond op het dichtstbijzijnde gehele getal: 1,0 ÷ 0,05 = 20. Terugrekenen geeft 20 × 0,05 = 1,0. 1 is de fout waarbij de reële waarde ongewijzigd als geheel getal wordt genomen, en 127 is het gehele getal dat bij de maximale waarde 6,35 hoort. Als er grote uitschieters buiten het bereik zijn, wordt de schaal grof en daalt de precisie, zodat de keuze van de maximale waarde (kalibratie) belangrijk is.

“INT8” in de toelichting

Vragen met “INT8” (5)

  1. Wat is het belangrijkste voordeel van het omzetten (kwantiseren) van gewichten van FP32 naar INT8 bij AI-inferentie?
  2. Gegevens met een waardebereik van −6,35 tot 6,35 worden gekwantiseerd naar symmetrisch INT8 (−127 tot 127) rond 0. Met de schaal gelijk aan "grootste absolute waarde ÷ 127", door welk geheel getal wordt 1,0 weergegeven?
  3. Wat is het doel van "kalibratie" bij post-training quantization waarbij activaties naar INT8 worden gekwantiseerd?
  4. Welke uitspraak over de kenmerken van de tensor cores (matrixrekeneenheden) van recente GPU's is juist?
  5. Welke uitspraak over waar op moet worden gelet bij een waarde als "○○ TOPS" als prestatie van een AI-versneller is juist?

Verwante termen

Inferentie (inference) Post-training quantization (PTQ) Numerieke apertuur (NA) GPU Tensor core FP8 TOPS Afronden naar even (round to nearest even) bfloat16 Booth-algoritme

Naar de woordenlijst