Új specifikációs nyelv ígér megoldást a gépi tanulási kernelek eltérő viselkedésére
A „Kernel Contracts” nevű keretrendszer nyolc részből álló szerződéseket vezet be, amelyekkel a fejlesztők pontosan meghatározhatják a kernelek számítási elvárásait a heterogén hardverek között.

Formális specifikációs nyelvet mutatott be az ArXiv ML egy tanulmányában, amely a gépi tanulási (ML) kernelek viselkedésének egységesítését célozza különböző hardverplatformokon — írja a kutatást ismertető dokumentum.
A kutatók szerint a jelenlegi helyzetben a kernelek implicit szerződésekkel működnek, amelyek nincsenek dokumentálva. Ez okozza, hogy például egy AMD GPU-n más eredményt adhat egy mátrixszorzás, mint egy NVIDIA kártyán, vagy egy fúziós attention kernel csendben konvertálhatja az akkumulátort, ami eltérő viselkedést eredményezhet.
A Kernel Contracts felépítése
A javasolt „Kernel Contracts” specifikációs nyelv nyolc fő részből áll: azonosító, hatókör, előfeltétel, utófeltétel, tolerancia, referencia-oracle, mérési protokoll és megsértési aláírás. Ezek a komponensek lehetővé teszik a fejlesztők számára, hogy részletesen leírják, mit kell számítania egy kernelnek, és milyen körülmények között.
A tanulmány tizenkét szerződésosztályt is bemutat, amelyek olyan hibamódokat fednek le, mint a precíziós problémák, a sorrendiségi eltérések, a fordítóprogram által okozott anomáliák vagy a kivételes értékek kezelése. Minden osztály empirikus bizonyítékokon alapul, amelyek a publikált kutatásokból származnak.
A Kernel Contracts hatása a hardvergyártókra
Ez a formális keretrendszer segíthet feloldani a vitákat, amikor két kernel eltérően viselkedik, mivel egyértelműen meghatározza a megsértett szerződést. A kutatás szerint a hardvergyártók, például az AMD és az NVIDIA, profitálhatnak a szabványosított kernel-szerződésekből, és a fejlesztők számára is előnyös lesz a pontosabb kernel-specifikáció 2024-től kezdve.