A Hugging Face Kernels projekt már a Helion keretrendszert is támogatja
A Hugging Face Kernels projekt már támogatja a Heliont, így a fejlesztők hordozható, nagy teljesítményű gépi tanulási kerneleket készíthetnek, hangolhatnak és terjeszthetnek. A PyTorch bemutatója szerint a felhasználók ezeket előre hangolt konfigurációkkal is betölthetik, így a futtatáskor nincs szükség újrahangolásra.
- A Hugging Face Kernels projekt támogatja a Heliont.
- A Helion PyTorch-alapú, csempézett DSL gépi tanulási kernelekhez.
- A kernelek forrásként, előre fordítás nélkül kerülhetnek a felhasználó gépére.
- A fejlesztők előre hangolt konfigurációs döntési fákat is közzétehetnek.
- A kernelek a Hugging Face Hubról, a get_kernel függvénnyel tölthetők be.
A Helion csempézett programozási modellt használ
A Helion magas szintű, csempézett tartományspecifikus nyelv (DSL) gépi tanulási kernelek írásához. Programozási modelljét gyakran úgy írják le, mint „PyTorch csempékkel”: a kernel PyTorch-tenzorokon dolgozik, a csempeszintű műveleteket pedig hagyományos PyTorch-operátorokkal lehet megadni.
A fejlesztő a hl.tile használatával meghatározza, hogy az iterációs teret csempékre kell bontani, de nem rögzíti előre a csempék méretét vagy az adatok memóriából történő beolvasásának módját. Ezek a döntések a Helion automatikus hangolójának keresési terébe kerülnek.
A rendszer nem csak numerikus paramétereket, például csempeméreteket vizsgál. Keresési stratégiája kiterjedhet a memóriaelérési mintára, a beágyazott ciklusok sorrendjére és lapítására, valamint arra is, hogy egy redukció tartós vagy ciklusos megvalósítást kapjon. A PyTorch szerint emiatt egy Helion-kernel nagy alakválasztékon mérve akár alacsonyabb szintű nyelven kézzel írt kernel teljesítményét is meghaladhatja.
Egységesebb csomagolás a Hugging Face Hubon
A Hugging Face Kernels projekt célja, hogy egységes és reprodukálható csomagolási, illetve buildfolyamatot biztosítson az előre, illetve futás közben fordított kernelekhez. A projekt két fő részből áll. A kernel-builder a fejlesztőknek segít a kernelek csomagolásában és terjesztésében különböző keretrendszer-verziók és rendszerkonfigurációk mellett.
A fogyasztói oldalon a kernels Python-könyvtár szolgál. Ezzel a felhasználók egyszerű paranccsal tölthetnek be kerneleket a Hugging Face Hubról, például a get_kernel( A PyTorch példája szerint a Helion-kernel egyszerű Python-forrásként kerül a Hubra. A kernel az első meghívásakor fordítja le magát, ezért a kernel-builder számára nincs szükség előzetes fordításra. A forráskódot a felhasználó gépére szállítják, ahol a Helion végzi el a további munkát. A fejlesztők a projekt létrehozásakor a kernel-builder init parancsot használhatják, majd a build.toml fájlban rögzíthetik többek között a kernel nevét, licencét, verzióját és a támogatott háttereket. A Helion futásidejű függőségét a python-depends = ["helion"] beállítás jelzi. A közzétett kernel a kernels könyvtár get_kernel függvényével tölthető be. A használathoz telepített Helionra és olyan kernels-verzióra van szükség, amely ismeri ezt a függőséget. A korábbi kiadások a forrás szerint elutasítják a Helion-függőséget. A Helion automatikus hangolása időigényes lehet, ezért a fejlesztők előre hangolt konfigurációkat is közzétehetnek. A folyamat során több, jellemző bemeneti alakzaton hangolják a kernelt, majd a Helion döntési fát készít, amely az egyes alakzatokhoz a legjobb konfigurációt rendeli. A döntési fát a kernel forrásfájlja mellett, egyszerű Python-fájlként lehet tárolni. Betöltéskor a Helion hívásonként kiválasztja a megfelelő konfigurációt, így a felhasználó gépén nincs szükség újrahangolásra. A bemutatott példában a rögzített konfigurációjú dekorátort a helion.aot_kernel(static_shapes=True) használata váltja fel. A PyTorch szeptember 11-i bejegyzése alapján a Helion-támogatás a fejlesztőknek egységes közzétételi folyamatot ad, a felhasználók pedig a Hugging Face Hubról tölthetnek be előre elkészített kerneleket. A megközelítés a különböző hardverekhez és problémaméretekhez igazított konfigurációk újrahasznosítását célozza.Helion-kernel telepítése és használata
Előre hangolt konfigurációk a rövidebb indulásért
