DeepSeek V3 podrobnosti o papíru: Jak obejít monopol CUDA!

Dva nedávno vydané modely DeepSeek, DeepSeek-V3 a DeepSeek-R1, dosahují výkonu srovnatelného s podobnými modely od OpenAI za mnohem nižší cenu.

Podle zpráv zahraničních médií se jim za pouhé dva měsíce podařilo na clusteru 2 048 grafických procesorů H800 vycvičit jazykový model MoE s 671 miliardami parametrů, což je desetkrát efektivnější než špičková umělá inteligence.

Tohoto průlomu nebylo dosaženo pomocí CUDA, ale díky velkému množství jemných optimalizací a použití programování PTX (paralelní spouštění vláken), které je podobné asembleru společnosti NVIDIA.

DeepSeek byla nucena vydat se jinou cestou než OpenAI a další společnosti, které se spoléhají na hrubou výpočetní sílu při hardwarových omezeních. Využila řadu technologických inovací, aby snížila energetické nároky modelu a zároveň dosáhla zvýšení výkonu.

Několik nadšených komentářů od uživatelů internetu:

"Pokud v tomto světě existují skupiny lidí, kteří jsou natolik blázniví, že říkají věci jako 'CUDA je příliš pomalá!

Geniální geekové vyladili PTX, aby maximalizovali výkon GPU

NVIDIA PTX (Parallel Thread Execution) je architektura prostřední sady instrukcí navržená speciálně pro její GPU, která se nachází mezi vysokoúrovňovými programovými jazyky GPU (jako je CUDA C/C++) nebo jinými jazykovými frontendy a nízkoúrovňovým strojovým kódem (streaming assembly nebo SASS).

PTX je nízkoúrovňová architektura instrukční sady, která představuje GPU jako datově paralelní výpočetní zařízení a umožňuje jemné optimalizace, jako je alokace registrů a ladění na úrovni vláken a svazků vláken, které nejsou možné v jazycích, jako je CUDA C/C++.

Když je PTX převeden do SASS, je optimalizován pro konkrétní generaci grafických procesorů NVIDIA.

Při trénování modelu V3 společnost DeepSeek překonfigurovala grafický procesor NVIDIA H800:

Ze 132 jader proudového procesoru jich bylo 20 přiděleno pro komunikaci mezi servery, především pro kompresi a dekompresi dat, aby se překonal limit připojení procesoru a zvýšila se rychlost zpracování transakcí.

Za účelem maximalizace výkonu implementovala společnost DeepSeek také pokročilé algoritmy pipeliningu prostřednictvím dodatečných jemných úprav na úrovni vláken/svazků vláken.

Tyto optimalizace jdou daleko za úroveň běžného vývoje CUDA, ale jejich údržba je nesmírně náročná. Právě tato úroveň optimalizace však plně demonstruje vynikající technické schopnosti týmu DeepSeek.

V dokumentu V3 jsou výslovně uvedeny podrobnosti o PTX

Je to proto, že pod dvojím tlakem globálního nedostatku GPU a omezení ze strany USA musely společnosti jako DeepSeek hledat inovativní řešení.

Naštěstí se jim v této oblasti podařilo dosáhnout významného pokroku.

Jeden z vývojářů se domnívá, že "nízkoúrovňové programování GPU je správný směr. Čím více optimalizací, tím nižší náklady, resp. výkonnostní rozpočet, který lze bez dalších výdajů využít pro další pokrok."

Tento průlom měl významný dopad na trh a někteří investoři se domnívají, že nový model sníží poptávku po výkonném hardwaru, což může ovlivnit prodejní výsledky společností, jako je NVIDIA.

Veteráni v oboru, včetně bývalého generálního ředitele společnosti Intel Pata Gelsingera, však věří, že aplikace umělé inteligence mohou plně využít veškerý dostupný výpočetní výkon.

Gelsinger považuje tento průlom společnosti DeepSeek za nový způsob, jak zabudovat schopnosti umělé inteligence do levných zařízení pro masový trh.

PTX a CUDA

Znamená tedy příchod DeepSeek, že vývoj špičkových LLM již nevyžaduje velké klastry GPU?

Budou obrovské investice společnosti Google do výpočetních zdrojů, OpenAI, Meta a xAI nakonec přijdou vniveč? Mezi vývojáři AI panuje všeobecná shoda, že tomu tak není.

Je však jisté, že v oblasti zpracování dat a optimalizace algoritmů je stále obrovský potenciál, který je třeba využít, a v budoucnu se jistě objeví další inovativní metody optimalizace.

Model V3 systému DeepSeek je otevřený a podrobnosti jsou podrobně zveřejněny v jeho technické zprávě.

Zpráva dokumentuje hluboké základní optimalizace provedené nástrojem DeepSeek. Ve zkratce lze stupeň optimalizace shrnout slovy "přestavěli celý systém od základu".

Jak bylo uvedeno výše, při tréninku V3 pomocí grafického procesoru H800 společnost DeepSeek přizpůsobila základní výpočetní jednotky grafického procesoru (streamovací víceprocesorová jádra neboli SM) specifickým potřebám.

Z celkového počtu 132 SM jich bylo 20 přiděleno speciálně na řešení komunikačních úloh mezi servery, nikoli výpočetních úloh.

Toto přizpůsobení se provádí na úrovni PTX (parallel thread execution), což je nízkoúrovňová instrukční sada grafického procesoru NVIDIA.

PTX běží na úrovni blízké jazyku assembleru a umožňuje jemné optimalizace, jako je alokace registrů a ladění na úrovni vláken/vláknových svazků. Toto jemné řízení je však složité a obtížně udržovatelné.

Proto vývojáři obvykle dávají přednost vysokoúrovňovým programovacím jazykům, jako je CUDA, které poskytují dostatečné výkonnostní optimalizace pro většinu paralelních programovacích úloh a eliminují potřebu nízkoúrovňových optimalizací.

Pokud však jde o maximalizaci efektivity prostředků GPU a dosažení specifických požadavků na optimalizaci, musí vývojáři sáhnout po PTX.

Technické překážky však přetrvávají

V této souvislosti uživatel internetu Ian Cutress řekl: "Použití PTX společností Deepseek neodstraňuje technické překážky CUDA."

CUDA je vysokoúrovňový jazyk. Usnadňuje vývoj knihoven a rozhraní s grafickými procesory NVIDIA a podporuje rychlý iterativní vývoj.

CUDA dokáže optimalizovat výkon vyladěním základního kódu (tj. PTX) a základní knihovny jsou již hotové. Většina softwaru na produkční úrovni je v současné době postavena na CUDA.

PTX se více podobá přímo srozumitelnému jazyku assembleru pro GPU. Pracuje na nízké úrovni a umožňuje optimalizaci na mikroúrovni.

Pokud se rozhodnete programovat v PTX, znamená to, že nelze použít žádnou z výše uvedených integrovaných knihoven CUDA. Jedná se o velmi zdlouhavý úkol, který vyžaduje hluboké znalosti hardwaru a problematiky běhu.

Pokud však vývojáři plně rozumí tomu, co dělají, mohou skutečně dosáhnout lepšího výkonu a optimalizace za běhu.

V současné době je hlavním proudem ekosystému NVIDIA stále používání CUDA.

Vývojáři, kteří chtějí ze své výpočetní zátěže získat extra 10-20% výkon nebo energetickou účinnost, jako jsou společnosti, které nasazují modely v cloudu a prodávají tokenové služby, skutečně optimalizovali z úrovně CUDA na úroveň PTX. Jsou ochotny investovat čas, protože se jim to z dlouhodobého hlediska vyplatí.

Je třeba poznamenat, že PTX je obvykle optimalizován pro určitý model hardwaru a je obtížné jej přenášet mezi různým hardwarem, pokud není speciálně napsána logika přizpůsobení.

Ruční ladění výpočetního jádra navíc vyžaduje velkou vytrvalost, odvahu a zvláštní schopnost zachovat klid, protože program může mít každých 5 000 cyklů chybu přístupu do paměti.

Samozřejmě pro ty scénáře, kde je PTX opravdu potřeba, a pro ty vývojáře, kteří jsou dostatečně placeni za to, aby se těmito problémy zabývali, vyjadřujeme plné pochopení a respekt.

Všem ostatním vývojářům doporučujeme nadále používat CUDA nebo jiné pokročilé varianty založené na CUDA (nebo MLIR).

Podobné příspěvky

Napsat komentář

Vaše e-mailová adresa nebude zveřejněna. Vyžadované informace jsou označeny *