Odpověď na názor

Odpovídáte na názor k článku Xeony Granite Rapids v AI výpočtech až třikrát rychlejší při použití instrukcí AMX. Názory mohou přidávat pouze registrovaní uživatelé. Nově přidané názory se na webu objeví až po schválení redakcí.

  • 26. 9. 2025 1:25

    Lael Ophir

    Aha. Na prvním místě je možné AMX používat na obou HT threadech jednoho jádra. Nedojde k problému, jenom jde dolů výkon. Vizte kapitolu 20.17.2 v linku.
    https://kib.kiev.ua/x86docs/Intel/Intel-OptimGuide/355308-003.pdf

    Na druhém místě mi nebylo jasné, jak se scheduler dozví, že thread použil AMX. Při vytvoření threadu se v registru XCR0 zakáže podpora AMX (a obdobně to funguje u AVX). Když thread poprvé použije AMX instrukci, dojde na trap (NMI) #NM (Device Not Available, 0x07, původně používaný když není k dispozici matematický koprocesor), kernel následně v nt!KiNpxNotAva­ilableFault zapíše do struktury KTHREAD flag HasUsedAVX512, AMX povolí, a navrátí řízení na příslušnou instrukci. Tím se zároveň zapne podpora AMX u instrukcí použitých při přepínání kontextu, ze skupiny XSAVE/XRSTOR. Konkrétně XSAVES má formu optimalizace, kde ukládá kompaktní formu. No a zbytek je černá magie scheduleru: thread s flagem HasUsedAVX512 se nechává co nejdéle běžet na konkrétním fyzickém jádru, na druhý HT thread se nevěší AMX ani latency-sensitive workload, atd. Vše psáno v kontextu Windows; na Linuxu to bude nejspíš dost podobné.

    Takže ano, převážně jste měl pravdu. Díky za nasměrování na zajímavý topic.