Elérhető az NVIDIA nvmath-python 1.0, Pythonból is gyorsíthatók a CUDA-X műveletek

Az NVIDIA kiadta az nvmath-python 1.0-s verzióját, amely Pythonos absztrakciós réteget biztosít a CUDA-X és NVPL matematikai könyvtáraihoz. A csomaggal a számítások CPU-n, CUDA-kompatibilis GPU-n, valamint több GPU-t és több csomópontot használó környezetben is futtathatók.
- Megjelent az NVIDIA nvmath-python 1.0-s verziója.
- A könyvtár CPU-n, GPU-n és elosztott, több csomópontos rendszereken is használható.
- Támogatja a NumPy, CuPy és PyTorch mellett történő használatot.
- Az univerzális ritka tenzor saját, alkalmazásra szabott ritka formátumok létrehozását teszi lehetővé.
- Az állapottartó API-k és a menthető tervek ismétlődő futtatásoknál használhatók.
Pythonos hozzáférés az NVIDIA matematikai könyvtáraihoz
Az NVIDIA Developer oldalon 2026. július 30-án bemutatott nvmath-python célja, hogy a Python tudományos és mérnöki felhasználói a CUDA-X teljesítményét alacsony szintű C vagy C++ interfészek használata nélkül érhessék el. Az 1.0-s kiadás általánosan elérhetővé vált.
A könyvtár többek között a cuFFT, cuBLASLt, cuDSS, cuSPARSE, cuTENSOR és cuBLASMp könyvtárak fölé épülő Pythonos réteget kínál. A CPU-s végrehajtást az NVIDIA Grace és más ARM v8 alapú rendszerekhez az NVPL, x86-os gazdagépeken pedig az Intel MKL támogatja. Elosztott környezetben a cuBLASMp, a cuSOLVERMp és a cuFFTMp könyvtárak használhatók.
Az nvmath-python nem általános célú tömbkönyvtárak kiváltására készült. Nem biztosít például indexelést, szeletelést vagy redukciót, helyette a CUDA-X optimalizált matematikai rutinjait teszi könnyebben elérhetővé a már használt könyvtárak és keretrendszerek számára.
NumPy, CuPy és PyTorch mellett is használható
A csomag a pip, a conda, az uv és a pixi segítségével telepíthető. A felhasználó választhat teljes függőségfeloldást vagy minimális telepítést, utóbbi például folyamatos integrációs és szállítási környezetben, illetve csak CPU-t használó rendszereknél lehet hasznos. Külön kiválasztható a CPU-s háttér, az eszköz- és az elosztott API-k támogatása, valamint a kísérő tömbkönyvtár is, például a NumPy, a CuPy vagy a PyTorch.
A végrehajtási és memóriahelyet a bemeneti adatok is meghatározhatják. Az NVIDIA példája szerint ugyanaz az FFT-művelet NumPy-tömbön CPU-s, CuPy-tömbön pedig GPU-s adatokkal dolgozhat. Az nvmath-python a bemenet alapján következtet a végrehajtási térre, de ez külön is megadható. A naplózás közben megmutathatja, honnan származnak az operandusok, és hol történik a feldolgozás, így láthatóvá válhatnak a memóriahelyek közötti adatátvitelek is.
Általános és célzott API-k különböző feladatokra
Az nvmath-python API-jai két fő csoportba tartoznak. Az általános API-k egységes felületet kínálnak eltérő végrehajtási és memóriahelyek, valamint operandustípusok mellett. Emiatt azonban csak a széles körben közös beállításokat teszik elérhetővé.
A célzott API-k szűkebb működési tartományra készültek, cserébe több konfigurációt és hardverspecifikus optimalizációt kínálnak. Az ilyen felületek az advanced almodulokban találhatók. Az NVIDIA példája szerint a fejlett mátrixszorzás a GPU-n végzett, sűrű operandusokra épülő D=f(AB+C) összetett művelethez ad részletes beállításokat, míg az általános változat CPU-n és GPU-n, sűrű és strukturált operandusokkal is működhet.
A fejlesztők így az adott feladathoz választhatnak: a célzott API akkor lehet indokolt, ha egy művelet teljesítményszűk keresztmetszetet jelent, az általános felület pedig akkor, ha a szélesebb hordozhatóság fontosabb.
Saját ritka formátum és újrafelhasználható tervek
Az 1.0-s verzió egyik kiemelt újdonsága az univerzális ritka tenzor, vagyis a universal sparse tensor, röviden UST. Ezzel a felhasználók tartományspecifikus nyelven hozhatnak létre az alkalmazásukhoz optimalizált ritka adatformátumot, anélkül, hogy azt külön kódban kellene megvalósítaniuk.
A könyvtár állapottartó API-kat is kínál. Ezek lehetővé teszik a tervezéshez és automatikus hangoláshoz kapcsolódó költségek szétosztását ismétlődő végrehajtások között. Az automatikusan hangolt tervek lemezre menthetők, majd újra felhasználhatók különböző munkamenetekben vagy homogén rendszerekre történő telepítéskor.
A numba-cuda integráció JIT-fordított egyedi kernelek és visszahívások használatát teszi lehetővé FFT, GEMM, sűrű közvetlen megoldók és véletlenszám-generálás mellett. Ez az NVIDIA szerint lehetőséget ad alacsony aritmetikai intenzitású műveletek összevonására.
NVIDIA Developer: Run High-Performance Core Math at Scale with NVIDIA nvmath-python


