Gå til indhold
atlas

Grafikprocessor (GPU)

Også kendt som: GPU

En chip bygget til skærmbilleder, der laver tusindvis af små beregninger på én gang og derfor nu driver det meste AI-arbejde.

Kladde - dette opslag er endnu ikke gennemgået.

Formelt

En processor bestående af tusindvis af simple kerner, der udfører den samme slags talarbejde side om side, med sin egen hurtige hukommelse; neurale netværk passer godt til den, fordi deres arbejde mest består af store tabeller af tal, der ganges sammen.

Forklaret enkelt

Som en skolesal med tusind elever, der hver regner ét let stykke på samme tid, i stedet for én professor, der arbejder sig gennem hele bunken alene.

I praksis

En IT-driftsansvarlig i en region vil køre en åben model internt for hospitalets personale og opdager, at den reelle grænse er hukommelsen på hver GPU - modelvægtene skal kunne ligge der, ellers bliver svarene meget langsomme.

Hvorfor det betyder noget

GPU'er er knappe og dyre, så hvem der kan skaffe dem, afgør, hvem der kan bygge og køre store modeller, hvad AI-tjenester koster, og hvor meget strøm de bruger.

Teknisk uddybning

En moderne GPU er en maskine bygget til gennemløb og består af mange streaming multiprocessors (SM'er i NVIDIAs terminologi; AMD kalder dem compute units). Hver SM planlægger tråde i grupper på 32, kaldet warps, og afvikler dem efter SIMT-princippet (single instruction, multiple threads): alle tråde i en warp udfører den samme instruktion på forskellige data, og forgreninger, der divergerer, afvikles efter hinanden. I stedet for at skjule hukommelseslatens med store caches og out-of-order-afvikling, som en CPU gør, holder GPU'en tusindvis af warps klar og skifter mellem dem hver clockcyklus, så nogle regner, mens andre venter på hukommelsen. Prisen er, at koden skal rumme massiv, regelmæssig dataparallelisme for at køre godt.

Skiftet fra grafik til generel beregning skete gradvist: programmerbare shadere i begyndelsen af 2000'erne, NVIDIAs CUDA-platform i 2006-2007 og AlexNet-resultatet i 2012, trænet på to almindelige forbruger-GPU'er, som viste, at dybe neurale netværk var praktisk mulige på denne hardware. Siden Volta-generationen (2017) har NVIDIAs GPU'er haft dedikerede tensor cores, der udfører små matrix-multiply-accumulate-operationer pr. instruktion med reduceret præcision (FP16, BF16 og på nyere generationer FP8 og FP4), og som står for størstedelen af chippens oplyste FLOPS. Software programmerer sjældent hardwaren direkte; frameworks som PyTorch kalder leverandørbiblioteker (cuBLAS, cuDNN eller ROCm hos AMD) og i stigende grad kernels genereret af compilere.

Ydelse analyseres bedst med roofline-modellen: en kernel er compute-bound, hvis dens aritmetiske intensitet (FLOPs pr. byte flyttet fra hukommelsen) overstiger forholdet mellem maksimal FLOPS og hukommelsesbåndbredde, og ellers memory-bound. Træning med store batches og prefill-fasen i LLM-inferens er overvejende compute-bound; generering token for token med små batches er memory-bound, fordi hvert nyt token kræver, at alle vægte og hele KV-cachen læses fra high-bandwidth memory (HBM). Derfor er det ofte HBM-kapacitet og -båndbredde og ikke maksimal FLOPS, der afgør, hvilken model der kan ligge på hvilket kort, og hvor hurtigt den svarer, og derfor betyder kvantisering og batching så meget.

Modeller, der er større end én enhed, fordeles over flere GPU'er med tensor-, pipeline-, data- eller ekspertparallelisme, hvilket gør forbindelsen mellem chippene afgørende: NVLink og NVSwitch inden for en server og InfiniBand eller RDMA-kompatibelt Ethernet mellem servere. Udbredte misforståelser er, at flere GPU'er altid giver tilsvarende mere fart (kommunikationsomkostninger og hukommelsesgrænser bryder den lineære skalering), og at forbruger- og datacenterkort kan bruges i flæng (de adskiller sig på hukommelsesstørrelse, interconnect, ECC og licensvilkår for brug i datacentre). Sammenlignet med en TPU er GPU'en mere generel og sælges af flere leverandører med et bredt softwareøkosystem, mens TPU'en er en Google-designet accelerator bygget op om systoliske matrixenheder og primært udbydes som cloudtjeneste. I driften er strøm og køling reelle begrænsninger: aktuelle datacenter-GPU'er trækker fra flere hundrede watt til over en kilowatt hver, og tætte racks kræver væskekøling.

Relationer

Kilder og videre læsning

Officiel dokumentation

  • NVIDIA (1999), GeForce 256 announcement - first chip marketed as a "GPU" · NVIDIA

Lærebøger

  • Goodfellow, Bengio & Courville, Deep Learning (ch. 12.1, large-scale deep learning) · MIT Press

Hvor dataene kommer fra

Dette opslag er skrevet af en AI ud fra kilderne ovenfor og er endnu ikke gennemgået af et menneske. Brug det som udgangspunkt, og tjek alt vigtigt mod kilderne.

Se gennemgangskøenForeslå en rettelse på GitHubDette begreb som JSON

Nævnt i

Test dig selv

Indlæser…

Atlas er i beta.