Az OpenBLAS 0.3.32 továbbfejlesztett felismerést hoz az újabb Intel CPU-khoz

enlightened Ez az oldal a közösségért készül. heart Kövess minket máshol is:  Linux Mint Magyar Közösség a Mastodon-on  Telegram csatorna – csak hírek  Beszélgessünk a Telegram – Linux csevegő csoport  Hírek olvasása RSS segítségével  Linux Mint Hivatalos Magyar Közösség a Facebook-on      Linux Mint Baráti Kör a Facebook-on
wink Ha hasznosnak találod, és szeretnéd, hogy folytatódjon, támogasd a munkát Ko-fi vagy Paypal segítségével. laugh

kami911 képe

Az OpenBLAS 0.3.32-es kiadása megérkezett, és több szempontból is fontos frissítésnek számít az optimalizált, nyílt forráskódú BLAS-könyvtár (Basic Linear Algebra Subprograms) felhasználói számára. A kiadás egyik legnagyobb hozadéka, hogy tovább finomodott a processzorok automatikus felismerése (CPU auto-detection), különösen az újabb Intel generációk esetén, ami közvetlenül hat a teljesítményre: ha a könyvtár pontosan be tudja azonosítani a futtató hardvert, nagyobb eséllyel választja ki a leggyorsabb, adott CPU-ra hangolt kódrészleteket.

A 0.3.32-es verzió már automatikusan felismeri az Intel Arrow Lake H/U processzorokat, valamint az új Core Ultra Series 3 Panther Lake modelleket is. Emellett pótolták az eddig hiányzó Intel Jasper Lake detektálást, és bekerült a Xeon Emerald Rapids támogatása is. A fejlesztők a kód szerkezetén is alakítottak, hogy az automatikus felismerés logikája jobban illeszkedjen a jövőbeli Intel CPU-modellekhez, vagyis várhatóan kevesebb „kézi” utánkövetést igényel majd az új generációk megjelenésekor.

A frissítés nem csak az új CPU-azonosítókat hozza: megújult a CPU-gyorsítótár méretének megfeleltetési táblázata (CPU cache size translation table) is, ami azért lényeges, mert a BLAS jellegű műveleteknél a cache-használat sokszor döntő tényező. Javult továbbá a visszaesési (fallback) CPU-felismerés a régebbi, nem AVX-es Intel processzoroknál, így ezeknél is megbízhatóbban választható ki a megfelelő optimalizáció. Külön említést kapott a GCC 15 fordítóhoz kapcsolódó hibajavítás, valamint több x86_64-es korrekció is, ami a disztribúciók frissülő toolchainjei mellett kifejezetten fontos: egy numerikus könyvtárnál a fordítóváltozások könnyen előhozhatnak rejtett kompatibilitási gondokat.

A 0.3.32 azonban nem csak x86-on erősít. Érkeztek javítások és optimalizációk RISC-V 64 bitre, POWER-re, LoongArch64-re és ARM64-re is. ARM64 oldalon újdonság az automatikus felismerés a Cortex-A725 és X925 magokhoz, valamint a Neoverse V3 processzorok kezdeti támogatása. A szerveres és felhős ARM-vonalon ez különösen érdekes, mert a Neoverse család tipikusan olyan környezetekben jelenik meg, ahol a lineáris algebrai rutinok gyorsasága közvetlenül befolyásolja a tudományos számítások, adatfeldolgozás vagy gépi tanulás teljesítményét. A kiadás emellett új, optimalizált „SSUM és DSUM” rutinokat hoz Neoverse N1-hez, és javítja a „BGEMM és SBGEMM” teljesítményét Neoverse V2-n.

A WebAssembly (WASM) célplatform is fejlődött: a kiadás optimalizált intrinsics-et használó „SGEMM and DGEMM as well as DOT, ROT and SUM” rutinokkal javítja az SGEMM és DGEMM műveletek teljesítményét. Ezek a mátrixszorzási alapműveletek (egyszeres és dupla pontosságú általános mátrixszorzás) a numerikus számítások „munkalovai”, így ha WASM alatt gyorsulnak, az a böngészőben vagy WASM-alapú futtatókörnyezetekben végzett számításigényes feladatoknál is kézzelfogható előrelépést jelenthet.

Érdemes hozzátenni, hogy az OpenBLAS a BLAS/LAPACK ökoszisztéma egyik legelterjedtebb, teljesítményre kihegyezett implementációja Linuxon, és rengeteg szoftver támaszkodik rá közvetve. Tipikusan ilyenek a Python tudományos csomagjai (például NumPy/SciPy), az R környezet, illetve számos gépi tanulási és mérnöki alkalmazás. Emiatt egy „látszólag” alacsony szintű változás, mint a pontosabb CPU-detektálás vagy a cache-paraméterek finomhangolása, a gyakorlatban sok felhasználónál jelenthet gyorsulást anélkül, hogy bármit át kellene írniuk a kódjukban. Különösen igaz ez olyan rendszereknél, ahol ugyanazt a szoftverkörnyezetet többféle hardveren futtatják: a jobb automatikus felismerés kevesebb kézi hangolást és kiszámíthatóbb teljesítményt eredményezhet.

Aki fejlesztőként vagy üzemeltetőként erősen támaszkodik az OpenBLAS-ra, annak a 0.3.32-es verzió elsősorban a frissebb Intel és ARM platformok miatt lehet vonzó, de a GCC 15 és az x86_64-es javítások miatt általános frissítésként is indokoltnak tűnik a közeljövőben, különösen rolling vagy gyorsan frissülő disztribúciók esetén.