AVX-512
AVX-512 je obitelj x86 vektorskih proširenja s opmask registrima i podrškom za 512-bitne operacije. Njezina osnova i pojedinačni podskupovi moraju se provjeriti zasebno; jedna oznaka AVX-512 nije potpuna specifikacija kompatibilnosti.
Što trebate znati
AVX-512 je obitelj x86 vektorskih proširenja s opmask registrima i podrškom za 512-bitne operacije. Njezina osnova i pojedinačni podskupovi moraju se provjeriti zasebno; jedna oznaka AVX-512 nije potpuna specifikacija kompatibilnosti.
Kako funkcionira
Arhitektura dodaje vektorsko stanje ZMM i k opmask registre. Maskirane operacije mogu odabrati pojedinačne staze, uz ponašanje spajanja (merging) ili postavljanja na nulu (zeroing) ovisno o instrukciji. AVX512F je temelj; AVX512BW, DQ, CD i VL pokrivaju različite dodatne mogućnosti. AVX512VL omogućuje relevantne operacije na užim vektorima, pa kod AVX-512 ne obrađuje nužno 512 bitova pri svakoj instrukciji.
Gdje je korisno
Maskirana numerička petlja može obraditi svoj konačni djelomični vektor bez zasebnog skalarnog repa kada odabrane instrukcije podržavaju potrebnu semantiku maskiranja. Aplikacija koja koristi bajtne operacije, detekciju konflikata ili određeni aritmetički format mora zatražiti točno te podskupove. AVX-512 VNNI i AVX-VNNI koriste različita kodiranja i enumeraciju.
Kako provjeriti podršku i omogućavanje
Nakon provjera za AVX, verificirajte specifične bitove značajki u CPUID leaf 7 koje program treba. Za stanje AVX-512, XCR0 mora omogućiti stanja XMM, YMM, opmask, gornji ZMM i visoki ZMM: bitove 1, 2, 5, 6 i 7. Uobičajeno korištena maska je E6H. Provjerite OSXSAVE prije XGETBV i koristite dispečer koji provjerava svaki potrebni podskup.
Program mora sadržavati odgovarajuću implementaciju i odabrati je u vrijeme izvođenja. Hardversko pobrojavanje, stanje registara omogućeno u OS-u i kompilirana osnova binarne datoteke zasebne su provjere. Virtualni stroj može namjerno izložiti manje značajki od svog domaćina, a kontejner ne dodaje instrukcije CPU-u domaćina.
Što ova značajka ne utvrđuje
Nemojte izvoditi svaki podskup AVX-512 iz AVX512F, naziva generacije procesora ili x86-64-v4. Frekvencija, potrošnja energije i propusnost izvršavanja variraju ovisno o implementaciji i radnom opterećenju. Oznaka u bazi podataka sama po sebi ne može utvrditi izlažu li firmware, pravila za hibridne jezgre ili hipervizor upotrebljivu značajku trenutnom procesu.
Kompatibilnost i performanse u praksi
Izmjerite cjelokupno radno opterećenje s reprezentativnim podacima. Širi vektori mogu smanjiti broj instrukcija, dok memorijski promet, sinkronizacija ili troškovi pretvorbe ostaju nepromijenjeni. Latencija instrukcija, propusnost i ponašanje potrošnje energije ovise o točnoj mikroarhitekturi i radnim uvjetima.
Praktičan kontrolni popis za provjeru
- Zabilježite točan model procesora ili platforme te verzije aplikacije, OS-a i izvršnog okruženja. Sačuvajte formulaciju stvarne pogreške ili zahtjeva.
- Provjerite proizvođačevu referencu za taj točan model, a zatim pregledajte stvarnu sposobnost i omogućeno stanje u okruženju u kojem se program izvodi.
- Usporedite svaki zahtjev odabrane binarne datoteke ili pozadinskog sustava. Slično nazvana značajka, pseudonim ili široka tehnološka oznaka nisu dovoljni.
- Potvrdite da je aplikacija odabrala predviđenu implementaciju. Koristite njezinu dokumentiranu dijagnostiku i podržanu zamjensku opciju kada zahtjevi nisu ispunjeni.
- Napravite jednu po jednu podržanu promjenu i ponovite isto radno opterećenje. Zadržite izvornu konfiguraciju i put oporavka dostupnima.
Ako je značajka navedena, ali je softver ne može koristiti
Počnite s točnom komponentom koja zakazuje. Hardverska baza podataka opisuje zabilježenu sposobnost; operacijski sustav ili hipervizor mogu izložiti drukčije stvarno okruženje. Pogreška nedopuštene instrukcije također zahtijeva istragu stvarne instrukcije koja uzrokuje pogrešku i binarne građe, jer oštećenje ili nepovezana nepodržana instrukcija mogu proizvesti sličan simptom.
Instalirajte verziju aplikacije, upravljačkog programa ili izvršnog okruženja podržanu za točnu platformu i upotrijebite proizvođačevu dokumentiranu osnovnu ili zamjensku građu ako je potrebno. Softversko ažuriranje ne može stvoriti instrukciju koja procesoru nedostaje. Promjene u firmwareu i sigurnosnim pravilima trebaju slijediti postupak proizvođača sustava i plan oporavka, a ne generički recept za optimizaciju.
Izvori i opseg ovog objašnjenja
Intel 64 and IA-32 Architectures Software Developer's Manual · Linux kernel: korištenje značajki XSTATE u korisničkom prostoru · x86-64 psABI: razine arhitekture i mikroarhitekture procesora
Ove reference utvrđuju arhitekturno ponašanje i softverske zahtjeve. One ne verificiraju neovisno svaku vrijednost značajke na povezanoj stranici hardverskog modela. Za podršku modela upotrijebite proizvođačeve dokaze s te stranice i provjerite stvarnu konfiguraciju sustava. Ovaj članak ne pruža mjerilo performansi, certifikaciju ili datum neovisnog pregleda.
Izvori i provjera
Uredničko vlasništvo: Feex. Nije zabilježen datum neovisnog pregleda. Kako istražujemo.
- Intel 64 and IA-32 Architectures Software Developer's Manual · Svesci 1 i 2 opisuju imenovane obitelji instrukcija i CPUID; Svezak 3 opisuje stanje, straničenje, VMX i kontrole zaštite. Dokumentacija arhitekture ne utvrđuje podršku za određeni model.
- Linux kernel: korištenje značajki XSTATE u korisničkom prostoru · Vektorsko stanje omogućeno u OS-u, dinamički omogućeno stanje pločica, zahtjevi za stogom signala i tijek dopuštenja za AMX. Ponašanje specifično za Linux nije obećanje o drugom OS-u.
- x86-64 psABI: razine arhitekture i mikroarhitekture procesora · Strojno sučelje, arhitektura procesora: osnovna i kumulativna tablica značajki za v2/v3/v4, provjere stanja OS-a i preporuke za implementaciju.
Je li ovaj članak bio koristan?
Dovoljno je odgovoriti s da ili ne. Odaberite razlog ako želite ili dodajte kratku bilješku.
Hvala. To nam pomaže poboljšati ovu stranicu.