DeepSeek V3 papír részletek: Hogyan kerüljük meg a CUDA monopóliumot!

A DeepSeek két nemrég megjelent modellje, a DeepSeek-V3 és a DeepSeek-R1 az OpenAI hasonló modelljeihez hasonló teljesítményt nyújtanak, jóval alacsonyabb költségek mellett.

Külföldi médiajelentések szerint mindössze két hónap alatt 671 milliárd paramétert tartalmazó MoE nyelvi modellt képeztek ki egy 2048 H800 GPU-ból álló klaszteren, ami 10-szer hatékonyabb, mint a legjobb mesterséges intelligencia.

Ezt az áttörést nem a CUDA használatával, hanem számos finomhangolt optimalizálással és az NVIDIA assembly-szerű PTX (párhuzamos szálvégrehajtás) programozásának alkalmazásával sikerült elérni.

DeepSeek kénytelen volt más utat választani, mint az OpenAI és más vállalatok, amelyek hardveres korlátok között a nyers erővel történő számítási teljesítményre támaszkodnak. Egy sor technológiai újítással csökkentette a modell energiaigényét, miközben teljesítménynövekedést ért el.

Néhány lelkes hozzászólás a netezők részéről:

"Ebben a világban, ha vannak olyan embercsoportok, akik elég őrültek ahhoz, hogy olyan dolgokat mondjanak, mint 'A CUDA túl lassú!

Zseniális geekek finomhangolják a PTX-et a GPU teljesítményének maximalizálása érdekében

Az NVIDIA PTX (Parallel Thread Execution) egy középső utasításkészlet-architektúra, amelyet kifejezetten a GPU-khoz terveztek, és a magas szintű GPU-programozási nyelvek (például CUDA C/C++) vagy más nyelvi frontendek és az alacsony szintű gépi kód (streaming assembly vagy SASS) között helyezkedik el.

A PTX egy olyan alacsony szintű utasításkészlet-architektúra, amely a GPU-t adatpárhuzamos számítási eszközként mutatja be, lehetővé téve az olyan finomszemcsés optimalizálásokat, mint a regiszterkiosztás és a szál/szál-köteg szintű hangolás, amelyek az olyan nyelvekkel, mint a CUDA C/C++, nem lehetségesek.

Amikor a PTX-et SASS-ba konvertálják, az NVIDIA GPU-k egy bizonyos generációjára optimalizálják.

A V3 modell kiképzésekor a DeepSeek újrakonfigurálta az NVIDIA H800 GPU-t:

A 132 stream processzormagból 20-at a szerverek közötti kommunikációra, főként az adattömörítésre és -dekompresszióra osztottak ki, hogy áttörjék a processzor kapcsolati korlátját és javítsák a tranzakciók feldolgozási sebességét.

A teljesítmény maximalizálása érdekében a DeepSeek fejlett pipelining algoritmusokat is megvalósított, további finomabb szál/szálköteg szintű beállítások révén.

Ezek az optimalizációk messze túlmutatnak a hagyományos CUDA fejlesztés szintjén, de rendkívül nehéz karbantartani őket. Az optimalizálásnak éppen ez a szintje azonban teljes mértékben bizonyítja a DeepSeek csapatának kiemelkedő technikai képességeit.

A V3-as dokumentum kifejezetten megemlíti a PTX-re vonatkozó részleteket.

Ennek oka, hogy a globális GPU-hiány és az amerikai korlátozások kettős nyomása alatt az olyan vállalatoknak, mint a DeepSeek, innovatív megoldásokat kellett keresniük.

Szerencsére jelentős áttörést értek el ezen a területen.

Az egyik fejlesztő úgy véli, hogy "az alacsony szintű GPU-programozás a helyes irány. Minél több az optimalizálás, annál alacsonyabb a költség, illetve a teljesítménybüdzsé, amely további kiadások nélkül felhasználható más előrelépésekre".

Ez az áttörés jelentős hatással volt a piacra, és egyes befektetők úgy vélik, hogy az új modell csökkenteni fogja a nagy teljesítményű hardverek iránti keresletet, ami hatással lehet az olyan vállalatok értékesítési teljesítményére, mint az NVIDIA.

Az iparág veteránjai, köztük Pat Gelsinger, az Intel korábbi vezérigazgatója azonban úgy vélik, hogy az AI-alkalmazások teljes mértékben kihasználhatják az összes rendelkezésre álló számítási teljesítményt.

Gelsinger úgy látja, hogy a DeepSeek áttörése új módot jelent a mesterséges intelligencia képességek tömegpiacra szánt, alacsony költségű eszközökbe való beágyazására.

PTX és CUDA

A DeepSeek megjelenése tehát azt jelenti, hogy az élvonalbeli LLM fejlesztéséhez már nincs szükség nagyméretű GPU-klaszterekre?

A Google hatalmas befektetései a számítástechnikai erőforrásokba, OpenAI, a Meta és az xAI végső soron kárba veszik? A mesterséges intelligencia fejlesztők körében az általános konszenzus szerint nem ez a helyzet.

Az azonban biztos, hogy az adatfeldolgozás és az algoritmusok optimalizálása terén még mindig hatalmas potenciál rejlik, és a jövőben minden bizonnyal további innovatív optimalizálási módszerek jelennek meg.

A DeepSeek V3-as modellje nyílt forráskódú, a részleteket a technikai jelentésben részletesen közzéteszik.

A jelentés dokumentálja a DeepSeek által végzett mélyreható optimalizálásokat. Röviden, az optimalizálás mértéke úgy foglalható össze, hogy "az alapoktól kezdve újjáépítették az egész rendszert".

Amint fentebb említettük, a V3 H800 GPU-val történő képzése során a DeepSeek a GPU számítási magjait (streaming multiprocesszor magok, vagy SM-ek) az egyedi igényeknek megfelelően testre szabta.

Az összesen 132 SM-ből 20-at kifejezetten a kiszolgálók közötti kommunikációs feladatok, nem pedig a számítási feladatok kezelésére különítettek el.

Ez a testreszabás a PTX (parallel thread execution) szinten történik, amely az NVIDIA GPU alacsony szintű utasításkészlete.

A PTX az assembly nyelvhez közeli szinten fut, és lehetővé teszi az olyan finom optimalizálásokat, mint a regiszterkiosztás és a szál/szál-köteg szintű hangolás. Ez a finom vezérlés azonban összetett és nehezen karbantartható.

Ezért a fejlesztők általában inkább olyan magas szintű programozási nyelveket használnak, mint a CUDA, amelyek a legtöbb párhuzamos programozási feladathoz elegendő teljesítményoptimalizálást biztosítanak, és kiküszöbölik az alacsony szintű optimalizálás szükségességét.

Amikor azonban a GPU-erőforrások hatékonyságának maximalizálásáról és a speciális optimalizálási követelmények teljesítéséről van szó, a fejlesztőknek a PTX-hez kell folyamodniuk.

A technikai akadályok azonban továbbra is fennállnak

Ezzel kapcsolatban Ian Cutress internetfelhasználó azt mondta: "A Deepseek PTX használata nem szünteti meg a CUDA technikai akadályait".

A CUDA egy magas szintű nyelv. Megkönnyíti a könyvtárak és interfészek fejlesztését az NVIDIA GPU-kkal, és támogatja a gyors iteratív fejlesztést.

A CUDA az alapul szolgáló kód (pl. PTX) finomhangolásával optimalizálhatja a teljesítményt, és az alapvető könyvtárak már készen állnak. A legtöbb gyártási szintű szoftver jelenleg CUDA-ra épül.

A PTX inkább egy közvetlenül érthető assembly nyelvhez hasonlít a GPU számára. Alacsony szinten működik, és lehetővé teszi a mikroszintű optimalizálást.

Ha a PTX nyelven történő programozást választja, az azt jelenti, hogy a fent említett beépített CUDA könyvtárak egyike sem használható. Ez egy nagyon fáradságos feladat, amely alapos szakértelmet igényel a hardver és a futásidejű kérdések terén.

Ha azonban a fejlesztők teljesen megértik, hogy mit csinálnak, akkor valóban jobb teljesítményt és optimalizálást érhetnek el futásidőben.

Jelenleg az NVIDIA ökoszisztéma főáramát még mindig a CUDA használata jelenti.

Azok a fejlesztők, akik extra 10-20% teljesítményt vagy energiahatékonyságot szeretnének kihozni a számítási terhelésükből, például a modelleket a felhőben telepítő és tokenszolgáltatásokat értékesítő vállalatok, valóban optimalizáltak a CUDA szintről a PTX szintre. Hajlandóak időt befektetni, mert hosszú távon megéri.

Meg kell jegyezni, hogy a PTX rendszerint egy adott hardvermodellre van optimalizálva, és nehéz a különböző hardverek közötti átvitel, hacsak nem írunk külön adaptációs logikát.

Ráadásul a számítási kernel kézi hangolása nagy kitartást, bátorságot és különleges nyugodtságot igényel, mert a programban 5000 ciklusonként előfordulhat memória-hozzáférési hiba.

Természetesen azokban az esetekben, amikor a PTX-re valóban szükség van, és azoknál a fejlesztőknél, akiket eléggé megfizetnek ahhoz, hogy ezekkel a kérdésekkel foglalkozzanak, teljes megértésünket és tiszteletünket fejezzük ki.

Minden más fejlesztő számára ajánlott továbbra is a CUDA vagy más, CUDA-n (vagy MLIR-en) alapuló fejlett változatok használata.

Hasonló hozzászólások

Vélemény, hozzászólás?

Az e-mail címet nem tesszük közzé. A kötelező mezőket * karakterrel jelöltük