Mesterséges intelligencia, magyarul.
Az eredeti közleményekből.

A PyTorch Inductorra váltott az IBM Spyre gyorsító fordítója

2026. október 13. 14:45Forrás: PyTorch
A PyTorch Inductorra váltott az IBM Spyre gyorsító fordítója
Kép: PyTorch

Az IBM Spyre gyorsító PyTorch-alapú szoftveres környezete a sendnn nevű, külön fejlesztett fordítási rendszerről a PyTorch nyílt forráskódú Inductor backendjére váltott. A torch-spyre fordítója ezzel nagyjából hétszer kisebb lett, miközben a Spyre eltérő hardveres működéséhez jelentős saját kiegészítésekre volt szükség.

A lényeg röviden
  • A torch-spyre a sendnn helyett az Inductor kibővített backendjét használja.
  • Az új fordító körülbelül 7-szer kisebb lett az elődjénél.
  • A Spyre 75 wattos, 32 magos, PCIe-csatlakozású gyorsító.
  • A hardver 128 bájtos stickekben mozgatja az adatokat.
  • A PyTorch és a torch-spyre fejlesztői formalizálják az alkalmazott Inductor-bővítési pontokat.

Az Inductor lett az új alap

A PyTorch 2026. október 13-án közzétett beszámolója szerint a torch-spyre, vagyis az IBM Spyre gyorsítót célzó PyTorch-integráció, a sendnn helyett immár az Inductor kibővített változatát használja a torch.compile fordítási háttérrendszereként. A sendnn teljes egészében külön fejlesztett fordítási stack volt, az Inductor viszont a PyTorch saját, nyílt forráskódú backendje.

A váltás eredményeként létrejött fordító körülbelül 7-szer kisebb az elődjénél. A PyTorch szerint az Inductor nagy része változtatás nélkül használható maradt, a fejlesztési munka pedig főként azokra a pontokra összpontosult, ahol az IBM gyorsítója alapvetően másképp működik, mint egy GPU.

A torch-spyre fordítója két szakaszból áll. Az első az Inductor kiegészítéseivel a torch.compile által előállított gráfot a SuperDSC nevű köztes reprezentációra alakítja. A második, a DeepTools nevű saját fejlesztésű fordító, a SuperDSC-t a Spyre hardverén végrehajtható utasításokká fordítja. A PyTorch bejegyzése az első szakasz, vagyis az Inductor-bővítések működését mutatja be.

A Spyre más adatmozgatást vár el

Az IBM a Spyre-t vállalati következtetési feladatokra tervezett, energiahatékonyságot előtérbe helyező gyorsítóként mutatja be. A PCIe-n csatlakozó eszköz fogyasztása 75 watt, és a leírás szerint nincs szüksége egyedi tápellátásra vagy hűtésre. A gyorsító adatfolyam-alapú felépítésű, 32 kisebb magból áll, amelyeket gyűrűs összeköttetés kapcsol össze. Mindegyik magnak saját, 2 MB-os helyi munkamemóriája van közös gyorsítótár helyett.

A Spyre az adatokat rögzített méretű egységekben, úgynevezett stickekben mozgatja. Egy stick 128 bájt, ami fp16 formátumban 64 értéknek felel meg. Míg egy GPU-s kernel egyedi elemeket címezhet, a Spyre alapvető adatmozgatási és számítási egysége a stick. A fordítónak ezért az indexelést is ehhez kell igazítania.

Az egyes műveletek meghatározzák, hogy a bemeneti és kimeneti tenzorok elemei miként rendezhetők stickekbe. Egy elemenkénti művelet például azt igényli, hogy a bemenetek és a kimenet ugyanazt a stickdimenziót használják. Ha ez nem teljesül, a fordítónak restickify műveletet kell beillesztenie, amely fizikailag újrarendezi az adatokat, és a stickek szerkezetét is átalakítja.

A stickdimenziók kiosztása ezért a teljes számítási gráfot érintő optimalizációs feladat. A torch-spyre által választott tenzorelrendezés a teljesítményre is hatással van. A PyTorch mérése szerint egy, már a gyorsító memóriájában lévő, kötegelt mátrixszorzásnál a bemeneti és kimeneti tenzorok csempézésének módosítása a kernel futási idejét 29 és 69 százalék közötti mértékben csökkentette különböző kötegméretek és alakok mellett.

A fordítónak a memóriát és a magokat is meg kell terveznie

A Spyre magonkénti scratchpad memóriát használ, amely gyors, de korlátozott méretű. Mögötte a globális eszközmemória található, és az adatok mozgatása nem automatikus. A scratchpad és a számítási egységek közötti, valamint az eszközmemóriából a scratchpadba irányuló minden adatmozgáshoz a fordítónak külön utasításokat kell előállítania.

Ha a fordító nem tervezi meg egy érték scratchpadban tartását, azt vissza kell írni az eszközmemóriába, majd a következő használatkor ismét be kell tölteni. A PyTorch szerint a Spyre feladatainál gyakran az adatmozgatás jelenti a szűk keresztmetszetet, ezért a scratchpad előzetes megtervezése a fordító egyik központi feladata.

A hardver harmadik fontos eltérése, hogy a magok statikus adatfolyamú gépként működnek. Nincs olyan, GPU-khoz hasonló futásidejű ütemező, amely menet közben egyensúlyozza a terhelést a számítási egységek között. A munkát ezért már fordításkor fel kell osztani a magok között.

A PyTorch bővítési pontjaira építettek

A torch-spyre több ponton egészíti ki az Inductor feldolgozási folyamatát. Saját műveletfelbontásokat használ a Spyre-re optimalizált primitív műveletsorok előállításához, majd ezekhez alsó szintű leképezéseket regisztrál. A legfontosabb munka a CustomPreSchedulingPasses szakaszban történik, ahol a csempézésről, az elrendezésről, a munkamegosztásról és a scratchpad kiosztásáról születnek döntések.

Ez a rész jelenleg az Inductor GraphLowering.codegen() metódusának monkey patch alapú módosításán keresztül kapcsolódik a rendszerhez. A PyTorch saját, későbbi bővítési pontja, a _pre_fusion_custom_pass, túl későn futna, mert addigra a köztes reprezentáció SchedulerNodes elemekké alakult, és az Inductor már nem támogatja a gráf nagy léptékű átírását.

A PyTorch és a torch-spyre fejlesztői most azon dolgoznak, hogy formalizálják a használt bővítési pontokat. A cél, hogy más, a fő kódfán kívül fejlesztett hardveres backendek is hasonlóan profitálhassanak az Inductor infrastruktúrájából.

Kövesd az AI Hírek oldalát a FacebookonA legfontosabb MI-hírek magyarul, rögtön a megjelenés után a hírfolyamodban.Követem

Kapcsolódó hírek

A PyTorch natív eszközként kezeli az IBM Spyre gyorsítót
Fejlesztőknek2026. október 8. 14:45

A PyTorch natív eszközként kezeli az IBM Spyre gyorsítót

Az IBM Spyre adatfolyam-alapú AI-gyorsító natív PyTorch-eszközzé válik a torch-spyre integrációjával. A megoldás a tenzorok eszközön tartását, a párhuzamos adatmozgatást…

Fejlesztőknek
Fejlesztőknek2026. október 7. 00:57

A PyTorch FBTriton kerneljei gyorsítják a táblás embeddingeket

A PyTorch bemutatta az FBTriton kerneltervezését, amely a Table-Batched Embedding műveleteit gyorsítja ajánlórendszerekben. A Triton-alapú megoldás a vállalat mérései…

Fejlesztőknek
Fejlesztőknek2026. október 2. 21:55

A Helion gyorsíthatja a vLLM LLM-inferenciáját NVIDIA GPU-kon

A PyTorch Helion-alapú lineáris backendet integrált a vLLM-be, hogy automatikus hangolással javítsa a nagy nyelvi modellek következtetési teljesítményét. Az NVIDIA…