A nyílt forráskódú eszközök megkerülik az Nvidia beépített korlátozásait

Elhangzik: A használt RTX 3090 vált az otthoni mesterséges intelligencia modellek futtatásához használt kártyává, leginkább azért, mert 24 GB memória sokkal kevesebbe kerül egy játékkártyán, mint egy munkaállomáson. Ez az alku azonban azzal jár, hogy az Nvidia a saját adatlapjaiban nyomtat. A GeForce kártyákon az AI matematika egyik leggyakoribb fajtája pontosan félsebességgel fut. Néhány nyílt forráskódú projekt most azt állítja, hogy megszünteti ezt a korlátozást az RTX 20-, 30- és 40-sorozatú kártyákon.

A határ a tenzormagokban él. Amikor megszorozzák az FP16 vagy BF16 számokat, és összeadják az eredményeket a nagyobb pontosságú FP32-ben, a GeForce kártyák ezeket az utasításokat az FP16 akkumulációs mód felével adják ki. Ez az FP32 mód a leginkább edzett, és rengeteg következtetésre lehet támaszkodni. Az Nvidia ugyanazokra a lapkákra épített munkaállomáskártyák – például az RTX A6000 – teljes sebességgel futtatják.

Az első javítás a GitHub felhasználótól, Zagittától származik, aki közzétette a „gpu-unlock”-t az RTX 30-as sorozatú kártyákhoz. Ez egy Linux kernelmodul, amely az Nvidia illesztőprogramjának betöltése előtt indul el. Ekkor átír két sebességválasztó regisztert a GPU-n, és alaphelyzetbe állítja a kártyát. Az Nvidia szokásos illesztőprogramja ezután a szokásos módon veszi át az irányítást, így senkinek sem kell VBIOS-t flashelnie vagy illesztőprogramot javítania.

Egy 450 W-os RTX 3090 Ti-n a fejlesztő mátrixszorzó tesztjei azt mutatják, hogy a BF16 átviteli sebessége 87,5-ről 157,4 TFLOPS-ra emelkedett. A TF32 is majdnem megduplázódott. Az FP16 kisebb, 35%-os növekedést ért el.

Más fejlesztők azóta adaptálták a modult a fennmaradó két generációhoz. A gpu-unlock-ada nevű verzió megduplázta az RTX 4090 FP16 utasítási sebességét 165,6-ról 331,6 TFLOPS-ra. Ez azonban egy nyers kibocsátási arány – a README előre szól – tehát a független tulajdonos által tesztelt kártyák valódi mátrixos munkaterhelése kisebb, 12-34%-os növekedést mutatott.

A régebbi oldalon a turing-unlock az RTX 2080 Ti-t célozza meg, és a 22 GB-os memóriával módosított kártyák egyikén tesztelték, amelyek népszerűek a pénztárcakészítők körében. A fejlesztője a mátrix méretétől függően 36-64%-kal gyorsabb FP16 mátrix matematikát mért. A BF16 itt nem érvényes, mivel a Turingnek sosem volt hardvere hozzá.

Sajnos a játékosok nem igazán fognak észrevenni különbséget, mivel a játékok alig érintik ezt a fajta matematikát. A Chatbot token sebessége sem változik, főleg azért, mert a szöveg generálását a memória sávszélessége korlátozza, nem pedig a nyers számítás. Az azonnali feldolgozás azonban állítólag 14-36%-kal gyorsabb. A képgenerálás és a finomhangolás hasznot húzhat a legtöbben, mivel mindkettő nagymértékben támaszkodik az FP32-ben akkumuláló tenzor matematikára.

Egyelőre a támogatás nagyrészt a Linuxra korlátozódik, eltekintve néhány kísérleti Windows-porttól, amelyeket bizonyos hardvereken érvényesítenek.

Zagitta nagyon valószínűtlennek tartja a hardveres sérülést, rámutatva, hogy a kártyán megszokott fojtás és energiagazdálkodás megmarad. A README turing-feloldó funkciója óvatosabb, figyelmeztetve, hogy a tenzormagok sok energiát vesznek fel, és a teljes lefutásuk károsíthatja a hardvert.