DeepSeek V3 detaljer om papiret: Hvordan man omgår CUDA-monopolet!

DeepSeeks to nyligt udgivne modeller, DeepSeek-V3 og DeepSeek-R1, opnår en ydeevne, der kan sammenlignes med lignende modeller fra OpenAI til en meget lavere pris.

Ifølge udenlandske medierapporter har de på bare to måneder trænet en MoE-sprogmodel med 671 milliarder parametre på en klynge af 2.048 H800 GPU'er, hvilket er 10 gange mere effektivt end den bedste AI.

Dette gennembrud blev ikke opnået ved hjælp af CUDA, men gennem et stort antal finkornede optimeringer og brugen af NVIDIA's assembly-lignende PTX-programmering (parallel thread execution).

DeepSeek har været tvunget til at gå en anden vej end OpenAI og andre virksomheder, der er afhængige af brutal computerkraft under hardwarebegrænsninger. De har brugt en række teknologiske innovationer til at reducere modellens strømforbrug og samtidig opnå en bedre ydeevne.

Nogle begejstrede kommentarer fra netbrugere:

"Hvis der i denne verden er nogen grupper af mennesker, der er skøre nok til at sige ting som 'CUDA er for langsomt!

Geniale nørder finjusterer PTX for at maksimere GPU-ydelsen

NVIDIA PTX (Parallel Thread Execution) er en arkitektur med mellemliggende instruktionssæt, der er designet specielt til GPU'erne, og som ligger mellem GPU-programmeringssprog på højt niveau (såsom CUDA C/C++) eller andre sprogfrontends og maskinkode på lavt niveau (streaming assembly eller SASS).

PTX er en instruktionsarkitektur på lavt niveau, der præsenterer GPU'en som en dataparallel computerenhed, der muliggør finkornet optimering som f.eks. registerallokering og tuning på tråd/trådbundt-niveau, der ikke er mulig med sprog som CUDA C/C++.

Når PTX konverteres til SASS, er det optimeret til en bestemt generation af NVIDIA GPU'er.

Ved træning af V3-modellen omkonfigurerede DeepSeek NVIDIA H800 GPU'en:

Af de 132 stream-processorkerner blev 20 allokeret til kommunikation mellem servere, primært til datakomprimering og -dekomprimering, for at bryde processorens forbindelsesgrænse og forbedre transaktionsbehandlingshastigheden.

For at maksimere ydeevnen har DeepSeek også implementeret avancerede pipelining-algoritmer gennem yderligere finkornede justeringer på tråd/trådbundt-niveau.

Disse optimeringer går langt ud over niveauet for konventionel CUDA-udvikling, men er ekstremt vanskelige at vedligeholde. Men det er netop dette optimeringsniveau, der fuldt ud demonstrerer DeepSeek-teamets enestående tekniske evner.

V3-papiret nævner specifikt detaljer om PTX

Det skyldes, at virksomheder som DeepSeek under det dobbelte pres fra en global GPU-mangel og amerikanske restriktioner var nødt til at finde innovative løsninger.

Heldigvis har de gjort betydelige gennembrud på dette område.

En udvikler mener, at "GPU-programmering på lavt niveau er den rigtige retning. Jo mere optimering, jo lavere omkostninger eller præstationsbudget, der kan bruges til andre fremskridt uden yderligere udgifter."

Dette gennembrud har haft en betydelig indvirkning på markedet, og nogle investorer mener, at den nye model vil reducere efterspørgslen efter højtydende hardware, hvilket kan påvirke salgsresultaterne for virksomheder som NVIDIA.

Men brancheveteraner, herunder Intels tidligere CEO Pat Gelsinger, mener, at AI-applikationer kan udnytte al tilgængelig computerkraft fuldt ud.

Gelsinger ser DeepSeeks gennembrud som en ny måde at integrere AI-funktioner i billige enheder til massemarkedet.

PTX og CUDA

Betyder ankomsten af DeepSeek så, at udviklingen af banebrydende LLM ikke længere kræver GPU-klynger i stor skala?

Vil Googles enorme investeringer i computerressourcer, OpenAIEr Meta og xAI i sidste ende spildt? Den generelle enighed blandt AI-udviklere er, at det ikke er tilfældet.

Det er dog sikkert, at der stadig er et stort potentiale at udnytte med hensyn til databehandling og algoritmeoptimering, og der vil helt sikkert dukke flere innovative optimeringsmetoder op i fremtiden.

Med V3-modellen af DeepSeek open source er detaljerne beskrevet i detaljer i den tekniske rapport.

Rapporten dokumenterer de dybe underliggende optimeringer, som DeepSeek har udført. Kort sagt kan graden af optimering opsummeres som "de har genopbygget hele systemet fra bunden".

Som nævnt ovenfor tilpassede DeepSeek GPU'ens kerneberegningsenheder (streaming multiprocessorkerner eller SM'er) til specifikke behov, da V3 blev trænet ved hjælp af H800 GPU'en.

Af de i alt 132 SM'er afsatte de specifikt 20 til at håndtere kommunikationsopgaver mellem servere i stedet for computeropgaver.

Denne tilpasning sker på PTX-niveau (parallel thread execution), som er NVIDIA GPU'ens instruktionssæt på lavt niveau.

PTX kører på et niveau tæt på assemblersprog og muliggør finkornet optimering som f.eks. registerallokering og tuning på tråd/tråd-bundt-niveau. Men denne fine kontrol er kompleks og vanskelig at vedligeholde.

Derfor foretrækker udviklere normalt at bruge programmeringssprog på højt niveau som CUDA, der giver tilstrækkelige optimeringer af ydeevnen til de fleste parallelle programmeringsopgaver og eliminerer behovet for optimeringer på lavt niveau.

Men når det drejer sig om at maksimere effektiviteten af GPU-ressourcer og opnå specifikke optimeringskrav, er udviklere nødt til at ty til PTX.

Men der er stadig tekniske barrierer

I den forbindelse sagde internetbrugeren Ian Cutress: "Deepseeks brug af PTX fjerner ikke de tekniske barrierer for CUDA."

CUDA er et sprog på højt niveau. Det gør det lettere at udvikle biblioteker og grænseflader med NVIDIA GPU'er og understøtter hurtig iterativ udvikling.

CUDA kan optimere ydelsen ved at finjustere den underliggende kode (f.eks. PTX), og de grundlæggende biblioteker er allerede færdige. Det meste software på produktionsniveau er i øjeblikket bygget på CUDA.

PTX ligner mere et direkte forståeligt assembler-sprog til GPU'en. Det fungerer på et lavt niveau og giver mulighed for optimering på mikroniveau.

Hvis du vælger at programmere i PTX, betyder det, at ingen af de førnævnte indbyggede CUDA-biblioteker kan bruges. Det er en meget besværlig opgave, som kræver dybtgående ekspertise i hardware- og runtime-problemer.

Men hvis udviklerne fuldt ud forstår, hvad de laver, kan de faktisk opnå bedre ydeevne og optimering på kørselstidspunktet.

I øjeblikket er hovedstrømmen i NVIDIA-økosystemet stadig brugen af CUDA.

Udviklere, der ønsker at få 10-20% ekstra ydelse eller energieffektivitet ud af deres beregningsbelastning, som f.eks. virksomheder, der implementerer modeller i skyen og sælger token-tjenester, har faktisk optimeret fra CUDA-niveauet til PTX-niveauet. De er villige til at investere tid, fordi det er det værd i det lange løb.

Det skal bemærkes, at PTX normalt er optimeret til en bestemt hardwaremodel og er vanskelig at overføre mellem forskellig hardware, medmindre tilpasningslogikken er specialskrevet.

Derudover kræver manuel indstilling af computerkernen en hel del udholdenhed, mod og en særlig evne til at bevare roen, fordi programmet kan have en hukommelsesfejl hver 5.000. cyklus.

For de scenarier, hvor der virkelig er brug for PTX, og for de udviklere, der bliver betalt nok til at beskæftige sig med disse problemer, udtrykker vi selvfølgelig vores fulde forståelse og respekt.

For alle andre udviklere anbefales det at fortsætte med at bruge CUDA eller andre avancerede varianter baseret på CUDA (eller MLIR).

Lignende indlæg

Skriv et svar

Din e-mailadresse vil ikke blive publiceret. Krævede felter er markeret med *