AI-hardware en softwarestack
Leer met meerkeuzevragen over AI-hardware en -software, zoals het verschil tussen inferentie en training, kwantisatie, rekenintensiteit en het roofline-model, systolische arrays, operatorfusie en tiling.
AI-hardware en softwarestack: kernpunten
Het grootste deel van de berekeningen in een neuraal netwerk bestaat uit vermenigvuldigingen en optellingen van grote matrices. AI-hardware is daarom gebouwd met veel multiply-accumulate-eenheden en zo veel mogelijk hergebruik van gegevens om het dataverkeer van en naar het geheugen te beperken. Training vergt meer rekenwerk en geheugen dan inferentie en ook getallen met een hogere precisie.
De prestaties worden niet alleen bepaald door het aantal rekeneenheden. Met de rekenintensiteit (aantal bewerkingen per byte aan gegevens) en het roofline-model ziet u of een berekening door rekenkracht of door geheugenbandbreedte wordt beperkt. U leert ook hoe AI-compilers en inferentie-runtimes de kracht van de hardware benutten, met kwantisatie, operatorfusie en tiling.
Alle vragen over AI-hardware en softwarestack (50)
- Welke uitspraak over het verschil tussen "training" en "inferentie" van een neuraal netwerk is juist?
- Welke van de volgende is GEEN reden waarom het geheugen voor training veel groter is dan voor inferentie met hetzelfde model?
- Een model met 7 miljard (7B) parameters wordt getraind waarbij gewichten, gradiënten en de twee toestanden van Adam allemaal in FP32 (4 bytes) worden bijgehouden. Welke waarde benadert het benodigde geheugen, exclusief activaties, het best?
- Hoeveel bedraagt het geheugen voor de gewichten ongeveer wanneer de gewichten van een model met 7 miljard (7B) parameters in FP16 (2 bytes) worden bijgehouden?
- Hoeveel bedraagt het geheugen voor de gewichten ongeveer wanneer het 7B-model uit de vorige vraag van FP16 (circa 14 GB) wordt gekwantiseerd naar 4-bits gehele getallen (INT4)?
- Hoeveel drijvendekommabewerkingen (vermenigvuldigingen en optellingen apart geteld) zijn ongeveer nodig om het product van een M×K-matrix en een K×N-matrix te berekenen?
- 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?
- 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?
- Waarom is de berekening van een volledig verbonden laag (product van gewichtsmatrix en vector) gemakkelijk geheugenbegrensd wanneer er maar één ingang is (batchgrootte 1)?
- Waarom neemt de efficiëntie van de totale verwerking bij inferentie gemakkelijk toe als de batchgrootte (het aantal gezamenlijk verwerkte ingangen) wordt vergroot?
- Welke uitspraak over het nadeel van een te grote batchgrootte bij inferentie is juist?
- 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)?
- Welke uitspraak over de rol van de KV-cache bij de inferentie van grote taalmodellen is juist?
- Welke uitspraak over wat bij de inferentie van grote taalmodellen gemakkelijk een probleem wordt bij lange teksten of grote batches is juist?
- Een model met circa 14 GB aan gewichten in FP16 wordt met batchgrootte 1 gedecodeerd op een GPU met een geheugenbandbreedte van 2 TB/s. Welke waarde benadert de ondergrens van de tijd om één token te genereren het best?
- Hoe neemt de rekenlast van self-attention in een Transformer toe met de lengte n van de invoerreeks?
- Welke uitspraak over het basisprincipe van snelle attention-implementaties zoals FlashAttention is juist?
- Wat is het belangrijkste doel van "operator fusion" (samenvoegen van bewerkingen) in AI-berekeningen?
- 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?
- Welke uitspraak over de belangrijkste taak van AI-compilers zoals XLA, TVM en de compilerfunctie van PyTorch is juist?
- Welke uitspraak over de "rekengraaf" (computational graph) in AI-frameworks en -compilers is juist?
- Welke uitspraak over ONNX is juist?
- Wat is de belangrijkste reden dat inferentie-runtimes zoals TensorRT en ONNX Runtime sneller kunnen zijn dan inferentie rechtstreeks met een trainingsframework?
- Waarom kosten elementgewijze bewerkingen zoals ReLU en layer normalization in AI-berekeningen gemakkelijk veel tijd in verhouding tot het aantal bewerkingen?
- Waarom wordt bij convolutionele neurale netwerken de convolutie soms met methoden zoals im2col omgezet in een matrixproduct?
- Welke uitspraak over het verschil tussen post-training quantization (PTQ) en quantization-aware training (QAT) is juist?
- Wat is het doel van "kalibratie" bij post-training quantization waarbij activaties naar INT8 worden gekwantiseerd?
- Bij de kwantisatie van grote taalmodellen neemt de nauwkeurigheid gemakkelijk af als slechts enkele kanalen grote uitschieters hebben. Welke maatregel is gebruikelijk?
- Waarom maakt W4A16-kwantisatie, waarbij alleen de gewichten 4 bits krijgen en de activaties FP16 blijven, de decode bij de inferentie van grote taalmodellen bijzonder snel?
- Welke uitspraak over pruning (snoeien) van neurale netwerken is juist?
- Welke uitspraak over de "2:4 gestructureerde sparsity" die door de matrixrekeneenheden van GPU's wordt ondersteund is juist?
- Welke uitspraak over knowledge distillation (kennisdestillatie) is juist?
- Welke uitspraak over dataparallellisme bij training met meerdere GPU's is juist?
- Welke uitspraak over tensorparallellisme, waarbij het matrixproduct van een grote laag die niet in het geheugen van één GPU past over meerdere GPU's wordt verdeeld, is juist?
- Waarom wordt bij pipelineparallellisme, waarbij de lagen van het model achtereenvolgens over meerdere GPU's worden verdeeld, de batch in kleine micro-batches verdeeld en doorgestuurd?
- Welke uitspraak over de werking van de all-reduce-communicatie bij gedistribueerde training is juist?
- Welke uitspraak over gradient checkpointing (herberekening van activaties) bij training is juist?
- Wat is de belangrijkste reden waarom een systolic array in AI-versnellers matrixproducten efficiënt kan berekenen?
- Wat is de belangrijkste reden waarom AI-versnellers soms een groot SRAM (tientallen tot honderden MB) op de chip plaatsen?
- Welke uitspraak over "weight stationary" (gewichten vast), een van de dataflow-methoden van AI-versnellers, is juist?
- Welke van de volgende is GEEN voordeel van AI-inferentie in een apparaat zoals een smartphone (edge) in plaats van op een cloudserver?
- Wat is de belangrijkste reden dat een NPU in een SoC van een smartphone bij AI-inferentie energiezuiniger is dan een CPU?
- Welke uitspraak over waar op moet worden gelet bij een waarde als "○○ TOPS" als prestatie van een AI-versneller is juist?
- Welke uitspraak over MFU (Model FLOPs Utilization), een maat voor de efficiëntie van grootschalige training, is juist?
- Wat is een veelgebruikte benadering voor het aantal bewerkingen dat nodig is om een Transformer-model te trainen, bij N parameters en D trainingstokens?
- Wat is een benadering voor het aantal bewerkingen dat nodig is voor inferentie van één token bij een groot taalmodel met N parameters (zonder het attentiongedeelte)?
- Waarom wordt bij de berekening van de softmaxfunctie exp(xi)/Σexp(xj) vaak eerst de maximumwaarde van elke xi afgetrokken?
- Welke uitspraak over het principe van "speculatieve decodering" (speculative decoding), die de inferentie van grote taalmodellen versnelt, is juist?
- Waarom zijn opzoekingen in grote embeddingtabellen, zoals die in aanbevelingssystemen worden gebruikt, lastig te verwerken met AI-hardware?
- Welke volgorde van de AI-softwarestack, van de bovenste laag dicht bij de gebruiker naar de onderste laag dicht bij de hardware, is juist?
Andere onderwerpen in Computersystemen
- Computerarithmetiek IEEE 754, vaste komma, afrondingsfouten
- Instructieset en assembly RISC-V, adresseringsmodi, aanroepconventies
- Compilers Parsing, SSA, optimalisatie, registertoewijzing
- Linker, loader en uitvoerbare formaten ELF, symbolen, relocatie, dynamisch linken
- Besturingssysteem en hardware Interrupts, systeemaanroepen, paginafouten
- Geheugenhiërarchie en prestaties Cache, vervangingsbeleid, drie soorten misses
- Multicore en synchronisatie MESI, atomaire instructies, geheugenbarrières
- GPU-programmeren Warps, gedeeld geheugen, coalescing, occupancy
- Embedded systemen en firmware GPIO, UART/SPI/I2C, RTOS
- Hardwarebeschrijvingstalen en verificatie Verilog, latches, toestandsmachines, testbenches
- Interfaces en busstandaarden PCIe, USB, SerDes, CXL
- Prestatiemeting en profiling Wet van Amdahl, CPI, knelpunten
- Hardwarebeveiliging Side channels, secure boot, TEE, PUF
- Energiebeheer (softwaregestuurd) DVFS, power gating, slaaptoestanden