Ugrás a tartalomra

AVX2

Architektúra-hivatkozásFeex

Az AVX2 256 bites egész műveletekkel és további adatmozgató utasításokkal bővíti az x86 vektoros feldolgozást. Egy kompatibilis processzor, engedélyezett AVX-állapot, valamint olyan szoftver egyaránt szükséges hozzá, amely ténylegesen az AVX2 kódútvonalat választja ki.

Amit tudni érdemes

Az AVX2 256 bites egész műveletekkel és további adatmozgató utasításokkal bővíti az x86 vektoros feldolgozást. Egy kompatibilis processzor, engedélyezett AVX-állapot, valamint olyan szoftver egyaránt szükséges hozzá, amely ténylegesen az AVX2 kódútvonalat választja ki.

Hogyan működik

Az AVX2 számos csomagolt egészműveletet tesz elérhetővé a 256 bites YMM-regisztereken, és olyan funkciókat vezet be, mint az egész típusú gather műveletek, a változó mértékű eltolások és a tágabb permutációk. Egy 256 bites egész vektor tartalmazhat 32 bájtot, 16 szót, 8 duplaszót vagy 4 négyszerezett szót (quadword); az utasítás határozza meg a sávok értelmezését. Egyes műveletek egymástól függetlenül hajtódnak végre a 128 bites feleken belül, így a széles regiszter nem jelent automatikusan korlátlan mozgást az összes sáv között.

Ahol hasznos

Egy képfeldolgozó könyvtár kezelhet 32 bájtelemből álló vektort, miközben egy adatbáziskernel 8 darab 32 bites egészet hasonlít össze. Ez az adatkapacitást szemlélteti, nem pedig a garantált gyorsulást. A gather műveletek továbbra is a memórialokalitástól függnek, a ciklusok teljesítményét pedig az aritmetikai szélesség helyett továbbra is korlátozhatják gyorsítótár-tévesztések, elágazások vagy adatkonverziók.

A támogatás és az engedélyezés ellenőrzése

Először végezze el az AVX hardveres és az OSXSAVE/XCR0 ellenőrzéseket. Ezután ellenőrizze, hogy a CPUID támogatja-e a 7-es leafet, majd vizsgálja meg a CPUID.07H.00H:EBX 5. bitjét. A tesztelést a tényleges vendég- vagy konténerkörnyezetben végezze el, és lehetőség szerint használja az alkalmazás által támogatott diagnosztikai felületet.

A programnak tartalmaznia kell a megfelelő implementációt, és futásidőben ki is kell választania azt. A hardveres lekérdezés, az operációs rendszer által engedélyezett regiszterállapot és a bináris fordítási alapja különálló ellenőrzéseket jelentenek. Egy virtuális gép szándékosan kevesebb funkciót tehet elérhetővé, mint a gazdagépe, és a konténer nem ad hozzá új utasításokat a gazdagép processzorához.

Amit a funkció nem biztosít

Az AVX2 nem vonja maga után közvetlen architekturális következményként az FMA támogatását. Önmagában nem igazolja az AVX-512, a hardveres MI-gyorsítás vagy az x86-64-v3 jogosultságot sem. Egy globálisan AVX2-re fordított bináris már a tartalék dispatcher lefutása előtt összeomolhat, ha az inicializáló kód nem támogatott utasításokat tartalmaz.

Kompatibilitás és teljesítmény a gyakorlatban

A teljes munkaterhelést reprezentatív adatokkal mérje fel. A szélesebb vektorok csökkenthetik az utasítások számát, miközben a memóriaforgalom, a szinkronizálás vagy az átalakítás költségei változatlanok maradhatnak. Az utasítás-késleltetés, az átviteli sebesség és a fogyasztási viselkedés a pontos mikroarchitektúrától és a működési körülményektől függ.

Gyakorlati ellenőrzőlista

  1. Rögzítse az érintett processzor vagy platform pontos modelljét, valamint az alkalmazás, az operációs rendszer és a futtatókörnyezet verzióját. Őrizze meg a tényleges hiba vagy követelmény pontos szövegezését.
  2. Ellenőrizze az adott modellhez tartozó gyártói referenciát, majd vizsgálja meg a tényleges képességet és az engedélyezett állapotot abban a környezetben, ahol a program fut.
  3. Vesse össze a kiválasztott bináris vagy háttérrendszer minden követelményét. Egy hasonló elnevezésű funkció, álnév vagy tág technológiai címke nem elegendő.
  4. Győződjön meg arról, hogy az alkalmazás a kívánt implementációt választotta ki. Használja annak dokumentált diagnosztikai eszközeit és egy támogatott tartalék megoldást, ha a követelmények nem teljesülnek.
  5. Egyszerre csak egy támogatott módosítást hajtson végre, és ismételje meg ugyanazt a munkaterhelést. Tartsa elérhetően az eredeti konfigurációt és a helyreállítási útvonalat.

Ha a funkció szerepel a listán, de a szoftver nem tudja használni

Kezdje a hibát jelző pontos komponenssel. A hardveradatbázis a rögzített képességet írja le; az operációs rendszer vagy a hipervizor ettől eltérő tényleges környezetet tehet elérhetővé. Az érvénytelen utasítás miatti hiba (illegal-instruction) esetén a ténylegesen hibát okozó utasítást és a bináris összeállítást is vizsgálni kell, mivel az adatsérülés vagy egy nem kapcsolódó, nem támogatott utasítás is hasonló tünetet produkálhat.

Telepítse az adott platformhoz támogatott alkalmazás-, illesztőprogram- vagy futtatókörnyezet-verziót, és szükség esetén használja a gyártó által dokumentált alapértelmezett vagy tartalék változatot. Egy szoftverfrissítés nem hozhat létre olyan utasítást, amellyel a processzor nem rendelkezik. A firmware- és biztonságipolitika-módosítások során a rendszer gyártójának eljárását és egy helyreállítási tervet kell követni egy általános optimalizálási recept helyett.

A magyarázat forrásai és hatóköre

Intel 64 and IA-32 Architectures Software Developer's Manual · Linux kernel: XSTATE funkciók használata a felhasználói térben · x86-64 psABI: processzorarchitektúra és mikroarchitektúra-szintek

Ezek a hivatkozások az architekturális viselkedést és a szoftverkövetelményeket határozzák meg. Nem ellenőrzik függetlenül a hivatkozott hardvermodell oldalán található összes funkcióértéket. A modell támogatásához használja az adott oldal gyártói bizonyítékait, és ellenőrizze a tényleges rendszerkonfigurációt. Ez a cikk nem tartalmaz teljesítménytesztet, tanúsítást vagy független felülvizsgálati dátumot.

Források és ellenőrzés

Szerkesztői jogtulajdonos: Feex. Független felülvizsgálati dátum nincs rögzítve. Hogyan kutatunk.

Hasznos volt ez a cikk?

Egy igen vagy nem is elég. Válasszon egy indokot, ha szeretne, vagy írjon egy rövid megjegyzést.

Hasznos volt ez a cikk?