AVX-512
AVX-512 je porodica x86 vektorskih proširenja s opmask registrima i podrškom za 512-bitne operacije. Njegova osnova i pojedinačni podskupovi moraju se provjeriti odvojeno; jedna oznaka AVX-512 nije potpuna specifikacija kompatibilnosti.
Šta trebate znati
AVX-512 je porodica x86 vektorskih proširenja s opmask registrima i podrškom za 512-bitne operacije. Njegova osnova i pojedinačni podskupovi moraju se provjeriti odvojeno; jedna oznaka AVX-512 nije potpuna specifikacija kompatibilnosti.
Kako radi
Arhitektura dodaje ZMM vektorsko stanje i k opmask registre. Maskirane operacije mogu odabrati pojedinačne trake (lanes), uz ponašanje spajanja (merging) ili postavljanja na nulu (zeroing) specifično za instrukciju. AVX512F predstavlja temelj; AVX512BW, DQ, CD i VL pokrivaju različite dodatne mogućnosti. AVX512VL omogućava relevantne operacije na užim vektorima, tako da AVX-512 kod ne obrađuje nužno 512 bita pri svakoj instrukciji.
Gdje je korisno
Maskirana numerička petlja može obraditi svoj konačni parcijalni vektor bez zasebnog skalarnog repa kada odabrane instrukcije podržavaju potrebnu semantiku maskiranja. Aplikacija koja koristi bajtovske operacije, detekciju konflikata ili određeni aritmetički format mora zatražiti tačno te podskupove. AVX-512 VNNI i AVX-VNNI koriste različita kodiranja i numeraciju.
Kako provjeriti podršku i omogućavanje
Nakon provjera za AVX, verifikujte specifične bitove mogućnosti u CPUID leaf 7 koje program zahtijeva. Za AVX-512 stanje, XCR0 mora omogućiti XMM, YMM, opmask, gornje ZMM i visoko ZMM stanje: bitove 1, 2, 5, 6 i 7. Često 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 izvršavanja. Popisivanje hardvera, stanje registara omogućeno od strane OS-a i kompajlirana osnovna linija binarne datoteke zasebne su provjere. Virtuelna mašina može namjerno izložiti manje funkcija od svog domaćina, a kontejner ne dodaje instrukcije procesoru domaćina.
Šta ova funkcija ne uspostavlja
Nemojte izvoditi zaključak o svakom AVX-512 podskupu na osnovu AVX512F, naziva generacije procesora ili x86-64-v4. Frekvencija, potrošnja energije i propusnost izvršavanja variraju u zavisnosti od implementacije i radnog opterećenja. Sama oznaka u bazi podataka ne može utvrditi da li firmver, politika hibridnih jezgara ili hipervizor izlaže upotrebljivu mogućnost trenutnom procesu.
Kompatibilnost i performanse u praksi
Izmjerite kompletno radno opterećenje s reprezentativnim podacima. Širi vektori mogu smanjiti broj instrukcija, ostavljajući memorijski saobraćaj, sinhronizaciju ili troškove konverzije nepromijenjenim. Kašnjenje instrukcije, propusnost i ponašanje potrošnje energije zavise od tačne mikroarhitekture i radnih uslova.
Praktična lista za provjeru verifikacije
- Zabilježite tačan model procesora ili platforme te verzije aplikacije, OS-a i runtime okruženja koji se koriste. Sačuvajte formulaciju stvarne greške ili zahtjeva.
- Provjerite referencu proizvođača za taj tačan model, a zatim pregledajte efektivnu sposobnost i omogućeno stanje u okruženju u kojem se program izvršava.
- Uporedite svaki zahtjev odabrane binarne datoteke ili pozadinskog sistema. Slično imenovana funkcija, pseudonim ili široka tehnološka oznaka nisu dovoljni.
- Potvrdite da je aplikacija odabrala predviđenu implementaciju. Koristite njenu dokumentiranu dijagnostiku i podržanu rezervnu varijantu kada zahtjevi nisu ispunjeni.
- Pravite jednu po jednu podržanu promjenu i ponavljajte isto radno opterećenje. Zadržite izvornu konfiguraciju i dostupan put oporavka.
Ako je funkcija navedena, ali je softver ne može koristiti
Počnite od tačne komponente koja otkazuje. Baza podataka hardvera opisuje zabilježenu sposobnost; operativni sistem ili hipervizor mogu izložiti drugačije efektivno okruženje. Greška nevažeće instrukcije (illegal-instruction) također zahtijeva istragu stvarne instrukcije koja uzrokuje grešku i binarne verzije, jer oštećenje ili nepovezana nepodržana instrukcija mogu proizvesti sličan simptom.
Instalirajte verziju aplikacije, drajvera ili runtime okruženja podržanu za tačnu platformu i po potrebi koristite proizvođačevu dokumentiranu osnovnu ili rezervnu verziju. Ažuriranje softvera ne može stvoriti instrukciju koja procesoru nedostaje. Promjene firmvera i sigurnosnih pravila trebaju pratiti proceduru proizvođača sistema i plan oporavka, a ne generički recept za optimizaciju.
Izvori i obim ovog objašnjenja
Intel 64 and IA-32 Architectures Software Developer's Manual · Linux kernel: korištenje XSTATE funkcija u korisničkom prostoru · x86-64 psABI: nivoi arhitekture i mikroarhitekture procesora
Ove reference uspostavljaju arhitekturno ponašanje i softverske zahtjeve. One ne verifikuju nezavisno svaku vrijednost funkcije na povezanoj stranici modela hardvera. Za podršku modela koristite dokaze proizvođača s te stranice i provjerite efektivnu konfiguraciju sistema. Ovaj članak ne pruža benchmark, certifikaciju ili datum nezavisnog pregleda.
Izvori i provjera
Uredničko vlasništvo: Feex. Nije zabilježen datum nezavisne provjere. Kako istražujemo.
- Intel 64 and IA-32 Architectures Software Developer's Manual · Tomovi 1 i 2 opisuju navedene porodice instrukcija i CPUID; Tom 3 opisuje kontrole stanja, straničenja, VMX-a i zaštite. Dokumentacija arhitekture ne utvrđuje podršku za određeni model.
- Linux kernel: korištenje XSTATE funkcija u korisničkom prostoru · Vektorsko stanje omogućeno od strane OS-a, dinamički omogućeno stanje pločica, zahtjevi steka signala i AMX tok dozvola. Ponašanje specifično za Linux nije obećanje za drugi OS.
- x86-64 psABI: nivoi arhitekture i mikroarhitekture procesora · Mašinski interfejs, arhitektura procesora: tabela osnovnih i kumulativnih v2/v3/v4 mogućnosti, provjere stanja operativnog sistema i preporuke za implementaciju.
Da li je ovaj članak bio koristan?
Dovoljno je da odgovorite sa da ili ne. Izaberite razlog ako želite ili dodajte kratku napomenu.
Hvala. To nam pomaže da poboljšamo ovu stranicu.