DeepSeek V3 paperin tiedot: CUDA-monopolin ohittaminen!

DeepSeekin kaksi hiljattain julkaistua mallia, DeepSeek-V3 ja DeepSeek-R1, ovat suorituskyvyltään verrattavissa OpenAI:n vastaaviin malleihin huomattavasti edullisemmin.

Ulkomaisten tiedotusvälineiden mukaan he kouluttivat vain kahdessa kuukaudessa 2 048 H800 GPU:n klusterilla 671 miljardin parametrin MoE-kielimallin, joka on 10 kertaa tehokkaampi kuin huipputekoäly.

Tätä läpimurtoa ei saavutettu CUDA:n avulla, vaan suurella määrällä hienojakoisia optimointeja ja käyttämällä NVIDIAn assembly-tyyppistä PTX-ohjelmointia (parallel thread execution).

DeepSeek on ollut pakko valita eri tie kuin OpenAI ja muut yritykset, jotka luottavat raakaan laskentatehoon laitteiston rajoitteiden puitteissa. Se on käyttänyt useita teknologisia innovaatioita vähentääkseen mallin tehovaatimuksia ja saavuttaakseen samalla suorituskyvyn kasvua.

Joitakin innostuneita kommentteja nettikansalaisilta:

"Tässä maailmassa, jos on olemassa ihmisryhmiä, jotka ovat tarpeeksi hulluja sanoakseen asioita kuten 'CUDA on liian hidas!', niin se on liian hidas.

Nerokkaat nörtit hienosäätävät PTX:ää maksimoidakseen GPU:n suorituskyvyn

NVIDIA PTX (Parallel Thread Execution) on erityisesti NVIDIAn näytönohjaimille suunniteltu keskimmäinen käskykanta-arkkitehtuuri, joka sijoittuu korkean tason GPU-ohjelmointikielten (kuten CUDA C/C++) tai muiden kielten etupäätteiden ja matalan tason konekoodin (streaming assembly tai SASS) väliin.

PTX on matalan tason käskykanta-arkkitehtuuri, joka esittää GPU:n datan rinnakkaislaskentalaitteena, mikä mahdollistaa hienojakoiset optimoinnit, kuten rekisterien allokoinnin ja säikeen/säikeen ja nipun tason virityksen, jotka eivät ole mahdollisia CUDA C/C++:n kaltaisilla kielillä.

Kun PTX muunnetaan SASS:ksi, se optimoidaan tietylle NVIDIAn GPU-sukupolvelle.

Kouluttaessaan V3-mallia DeepSeek konfiguroi NVIDIA H800 -näytönohjaimen uudelleen:

Stream-prosessorin 132 ytimestä 20 varattiin palvelinten väliseen viestintään, pääasiassa tietojen pakkaamiseen ja purkamiseen, jotta prosessorin yhteysraja voitiin rikkoa ja transaktioiden käsittelynopeutta parantaa.

Suorituskyvyn maksimoimiseksi DeepSeek toteutti myös kehittyneitä putkijuoksutusalgoritmeja hienojakoisten säikeiden/säikeiden nippujen tason säätöjen avulla.

Nämä optimoinnit ylittävät huomattavasti tavanomaisen CUDA-kehityksen tason, mutta niitä on erittäin vaikea ylläpitää. Juuri tämä optimointitaso on kuitenkin se, mikä osoittaa DeepSeek-tiimin erinomaiset tekniset valmiudet.

V3-asiakirjassa mainitaan erityisesti PTX:ää koskevia yksityiskohtia.

Tämä johtuu siitä, että DeepSeekin kaltaisten yritysten oli etsittävä innovatiivisia ratkaisuja maailmanlaajuisen GPU-pulan ja Yhdysvaltojen rajoitusten aiheuttaman kaksinkertaisen paineen alla.

Onneksi he ovat tehneet merkittäviä läpimurtoja tällä alalla.

Eräs kehittäjä uskoo, että "matalan tason GPU-ohjelmointi on oikea suunta. Mitä enemmän optimointia, sitä alhaisemmat kustannukset eli suorituskykybudjetti, jota voidaan käyttää muuhun edistymiseen ilman lisäkustannuksia."

Tämä läpimurto on vaikuttanut merkittävästi markkinoihin, ja jotkut sijoittajat uskovat, että uusi malli vähentää suorituskykyisten laitteistojen kysyntää, mikä voi vaikuttaa NVIDIAn kaltaisten yritysten myyntituloksiin.

Alan veteraanit, kuten Intelin entinen toimitusjohtaja Pat Gelsinger, uskovat kuitenkin, että tekoälysovellukset voivat hyödyntää kaikkea käytettävissä olevaa laskentatehoa.

Gelsinger pitää DeepSeekin läpimurtoa uutena tapana sisällyttää tekoälyominaisuudet edullisiin laitteisiin massamarkkinoille.

PTX ja CUDA

Tarkoittaako DeepSeekin tulo siis sitä, että huippuluokan LLM:n kehittäminen ei enää vaadi suuria GPU-klustereita?

Onko Googlen valtavat investoinnit laskentaresursseihin, OpenAI, Meta ja xAI menevät lopulta hukkaan? Tekoälyn kehittäjät ovat yleisesti sitä mieltä, että näin ei ole.

On kuitenkin varmaa, että tietojenkäsittelyssä ja algoritmien optimoinnissa on vielä valtavasti potentiaalia, ja tulevaisuudessa syntyy varmasti lisää innovatiivisia optimointimenetelmiä.

DeepSeekin V3-mallin avoimen lähdekoodin myötä yksityiskohdat paljastetaan yksityiskohtaisesti sen teknisessä raportissa.

Raportissa dokumentoidaan DeepSeekin suorittamat syvälliset optimoinnit. Lyhyesti sanottuna optimoinnin aste voidaan tiivistää muotoon "he ovat rakentaneet koko järjestelmän alusta alkaen uudelleen".

Kuten edellä mainittiin, kun DeepSeek koulutti V3:a H800-grafiikkasuorittimen avulla, se mukautti grafiikkasuorittimen laskentayksiköt (streaming multiprocessor cores, SM) vastaamaan erityistarpeita.

Kaikkiaan 132 SM:stä 20:lle osoitettiin nimenomaan palvelinten välisiä viestintätehtäviä eikä laskentatehtäviä.

Tämä mukautus tehdään PTX-tasolla (parallel thread execution), joka on NVIDIAn näytönohjaimen matalan tason käskykanta.

PTX toimii lähellä assembler-kielen tasoa ja mahdollistaa hienojakoiset optimoinnit, kuten rekisterien jakamisen ja säikeen/säikeen nippujen tason virityksen. Tällainen hienosäätö on kuitenkin monimutkaista ja vaikeaa ylläpitää.

Tämän vuoksi kehittäjät käyttävät yleensä mieluummin korkean tason ohjelmointikieliä, kuten CUDAa, joka tarjoaa riittävät suorituskykyoptimoinnit useimpiin rinnakkaisohjelmointitehtäviin ja poistaa tarpeen matalan tason optimoinneille.

Kehittäjien on kuitenkin turvauduttava PTX:ään, kun halutaan maksimoida GPU-resurssien tehokkuus ja saavuttaa erityiset optimointivaatimukset.

Tekniset esteet ovat kuitenkin edelleen olemassa

Internet-käyttäjä Ian Cutress sanoi tässä yhteydessä: "Deepseekin PTX:n käyttö ei poista CUDA:n teknisiä esteitä."

CUDA on korkean tason kieli. Se helpottaa kirjastojen ja rajapintojen kehittämistä NVIDIAn GPU:n kanssa ja tukee nopeaa iteratiivista kehitystä.

CUDA voi optimoida suorituskykyä hienosäätämällä taustalla olevaa koodia (eli PTX:ää), ja peruskirjastot ovat jo valmiina. Suurin osa tuotantotason ohjelmistoista on tällä hetkellä rakennettu CUDA:n varaan.

PTX muistuttaa enemmän suoraan ymmärrettävää GPU:n kokoonpanokieltä. Se toimii matalalla tasolla ja mahdollistaa mikrotason optimoinnin.

Jos päätät ohjelmoida PTX:llä, se tarkoittaa, että mitään edellä mainituista sisäänrakennetuista CUDA-kirjastoista ei voi käyttää. Tämä on hyvin työläs tehtävä, joka vaatii syvällistä asiantuntemusta laitteisto- ja suoritusaikakysymyksistä.

Jos kehittäjät kuitenkin ymmärtävät täysin, mitä ovat tekemässä, he voivat todellakin saavuttaa paremman suorituskyvyn ja optimoinnin suoritusaikana.

Tällä hetkellä NVIDIAn ekosysteemin valtavirta on edelleen CUDA:n käyttö.

Kehittäjät, jotka haluavat saada laskennallisesta kuormituksestaan lisää 10-20% suorituskykyä tai energiatehokkuutta, kuten yritykset, jotka käyttävät malleja pilvessä ja myyvät token-palveluja, ovat todellakin optimoineet CUDA-tasolta PTX-tasolle. He ovat valmiita investoimaan aikaa, koska se on sen arvoista pitkällä aikavälillä.

On huomattava, että PTX on yleensä optimoitu tietylle laitteistomallille, ja sitä on vaikea siirtää eri laitteistojen välillä, ellei mukautuslogiikkaa ole kirjoitettu erikseen.

Lisäksi laskentaytimen manuaalinen virittäminen vaatii paljon sitkeyttä, rohkeutta ja erityistä kykyä pysyä rauhallisena, koska ohjelmassa saattaa esiintyä muistinhakuvirhe 5 000 syklin välein.

Tietenkin niissä tilanteissa, joissa PTX:ää todella tarvitaan, ja niiden kehittäjien osalta, jotka saavat tarpeeksi palkkaa näiden asioiden hoitamisesta, ilmaisemme täyden ymmärryksemme ja kunnioituksemme.

Kaikkien muiden kehittäjien on suositeltavaa jatkaa CUDA:n tai muiden CUDA:han (tai MLIR:ään) perustuvien kehittyneiden muunnelmien käyttöä.

Samankaltaisia viestejä

Vastaa

Sähköpostiosoitettasi ei julkaista. Pakolliset kentät on merkitty *