1. [Wiki](https://feex.it/wiki/)
2. [Hardver](https://feex.it/wiki/hardware/)
3. [Sistemi i arhitektura](https://feex.it/wiki/hardware/system/)
4. AVX

# AVX

Referenca arhitekture: Feex

AVX, Advanced Vector Extensions, dodaje model vektorskog programiranja sa YMM registrima i VEX-kodiranim instrukcijama, uključujući 256-bitne operacije sa pokretnim zarezom. Zahtijevaju se i podrška procesora i upravljanje stanjem od strane operativnog sistema.

## Šta treba da znate

AVX, Advanced Vector Extensions, dodaje model vektorskog programiranja sa YMM registrima i VEX-kodiranim instrukcijama, uključujući 256-bitne operacije sa pokretnim zarezom. Zahtijevaju se i podrška procesora i upravljanje stanjem od strane operativnog sistema.

## Kako funkcioniše

AVX proširuje vektorske registre na 256 bitova, pri čemu se nižih 128 bitova svakog YMM registra preklapa sa njegovim XMM registrom. Mnoge instrukcije koriste oblik sa tri operanda, što omogućava da se odredište razlikuje od ulaza. Vektor od 256 bita može držati 8 vrijednosti sa pokretnim zarezom jednostruke preciznosti ili 4 vrijednosti dvostruke preciznosti, ali se instrukcije razlikuju po tipovima operanda i ponašanju.

## Đe je korisno

Numerička petlja može sabrati nekoliko nezavisnih vrijednosti sa pokretnim zarezom pomoću jedne vektorske instrukcije. Prevodilac ili biblioteka moraju generisati taj kod i ispravno rasporediti učitavanja, poravnanje, repove i zavisnosti. AVX ne paralelizuje automatski proizvoljan program kroz jezgra, a cjelobrojne operacije na 256 bita zahtijevaju provjeru relevantnog proširenja umjesto pretpostavljanja AVX2.

## Kako provjeriti podršku i omogućenost

Provjerite CPUID.01H:ECX AVX bit 28, XSAVE bit 26 i OSXSAVE bit 27. Tek nakon potvrde OSXSAVE, softver može koristiti XGETBV sa ECX=0 i verifikovati da XCR0 bitovi 1 i 2 omogućavaju XMM i YMM stanje. Koristite održavani dispečer runtime-a umjesto da izvršavate AVX kao eksperiment za detekciju.

Program mora i sadržati odgovarajuću implementaciju i odabrati je tokom izvršavanja. Pobrojavanje hardvera, stanje registara omogućeno u OS-u i kompajlirana osnova binarnog koda su zasebne provjere. Virtuelna mašina može namjerno izložiti manje funkcija od svog domaćina, a kontejner ne dodaje instrukcije procesoru domaćina.

## Šta ova funkcija ne utvrđuje

Sama podrška za AVX ne podrazumijeva AVX2, FMA, F16C, AVX-VNNI ili AVX-512. Širina vektora ne navodi koliko ciklusa instrukcija traje. Virtuelna mašina može izložiti manji skup instrukcija od fizičkog domaćina.

## Kompatibilnost i performanse u praksi

Izmjerite kompletno radno opterećenje sa reprezentativnim podacima. Širi vektori mogu smanjiti broj instrukcija dok memorijski saobraćaj, sinhronizacija ili troškovi konverzije ostaju nepromijenjeni. Kašnjenje instrukcija, protok i ponašanje potrošnje energije zavise od tačne mikroarhitekture i uslova rada.

## Praktična lista za provjeru verifikacije

1. Zabilježite tačan model procesora ili platforme, kao i verzije aplikacije, OS-a i runtime-a koji se koriste. Sačuvajte formulaciju stvarne greške ili zahtjeva.
2. Provjerite referencu proizvođača za taj tačan model, a zatim pregledajte efektivnu sposobnost i omogućeno stanje u okruženju đe se program izvršava.
3. Uporedite svaki zahtjev odabranog binarnog koda ili backend-a. Funkcija sličnog naziva, alias ili široka tehnološka oznaka nijesu dovoljni.
4. Potvrdite da je aplikacija odabrala predviđenu implementaciju. Koristite njenu dokumentovanu dijagnostiku i podržanu rezervnu varijantu kada zahtjevi nijesu ispunjeni.
5. Napravite po jednu podržanu promjenu u isto vrijeme i ponovite isto radno opterećenje. Držite originalnu konfiguraciju i putanju oporavka dostupnima.

## Ako je funkcija navedena, ali je softver ne može koristiti

Počnite sa tačnom komponentom koja otkazuje. Baza podataka hardvera opisuje zabilježenu sposobnost; operativni sistem ili hipervizor mogu izložiti drugačije efektivno okruženje. Greška nelegalne instrukcije takođe zahtijeva istragu stvarne instrukcije koja je izazvala kvar i binarne verzije, jer oštećenje ili nepovezana nepodržana instrukcija mogu proizvesti sličan simptom.

Instalirajte verziju aplikacije, drajvera ili runtime-a podržanu za tačnu platformu i koristite dokumentovanu osnovnu ili rezervnu verziju proizvođača ako je potrebno. Ažuriranje softvera ne može stvoriti instrukciju koja procesoru nedostaje. Promjene firmvera i bezbjednosnih politika treba da prate proceduru proizvođača sistema i plan oporavka, a ne generički recept za optimizaciju.

## Povezane funkcije i korisne razlike

[AVX2](https://feex.it/wiki/l/cnr/hardware/system/avx2/) · [AVX-512](https://feex.it/wiki/l/cnr/hardware/system/avx-512/) · [FMA i FMA3](https://feex.it/wiki/l/cnr/hardware/system/fma/) · [XSAVE](https://feex.it/wiki/l/cnr/hardware/system/xsave/)

## Izvori i obim ovog objašnjenja

[Intel 64 and IA-32 Architectures Software Developer's Manual](https://www.intel.com/content/www/us/en/developer/articles/technical/intel-sdm.html) · [Linux kernel: using XSTATE features in user space](https://docs.kernel.org/arch/x86/xstate.html)

Ove reference utvrđuju arhitekturno ponašanje i softverske zahtjeve. One ne verifikuju nezavisno svaku vrijednost funkcije na povezanoj stranici hardverskog modela. Za podršku modela, koristite dokaze proizvođača sa te stranice i provjerite efektivnu konfiguraciju sistema. Ovaj članak ne pruža benčmark, sertifikaciju niti datum nezavisnog pregleda.

## Povezano

Ovi entiteti su povezani sa ovim člankom. Tip je prikazan na svakom linku.

[AVX2: Referenca arhitekture](https://feex.it/wiki/l/cnr/hardware/system/avx2/)[AVX-512: Referenca arhitekture](https://feex.it/wiki/l/cnr/hardware/system/avx-512/)[FMA i FMA3: Referenca arhitekture](https://feex.it/wiki/l/cnr/hardware/system/fma/)[XSAVE: Referenca arhitekture](https://feex.it/wiki/l/cnr/hardware/system/xsave/)

## Izvori i verifikacija

Uredničko vlasništvo: Feex. Nije zabilježen datum nezavisne recenzije. [Kako istražujemo](https://feex.it/wiki/research/).

- [Intel 64 and IA-32 Architectures Software Developer's Manual ](https://www.intel.com/content/www/us/en/developer/articles/technical/intel-sdm.html)· Tomovi 1 i 2 opisuju imenovane familije instrukcija i CPUID; Tom 3 opisuje stanje, straničenje, VMX i kontrole zaštite. Dokumentacija o arhitekturi ne utvrđuje podršku za određeni model.
- [Linux kernel: using XSTATE features in user space ](https://docs.kernel.org/arch/x86/xstate.html)· Vektorsko stanje omogućeno u OS-u, dinamički omogućeno stanje pločica, zahtjevi za stekom signala i tok dozvola za AMX. Ponašanje specifično za Linux nije obećanje o drugom OS-u.

## Da li je ovaj članak bio koristan?

Dovoljno je da označite sa da ili ne. Izaberite razlog ako želite, ili dodajte kratku napomenu.

Brze činjenice

Kratak pregled identiteta ove stranice. Specifikacije, izvori i kompletna priča ostaju u članku.

---

Source: [Canonical Feex Wiki page](https://feex.it/wiki/l/cnr/hardware/system/avx/)

[Developer guide](https://feex.it/wiki/developers/) | [API policy](https://feex.it/developers/api-policy/) | [Agent guidance](https://feex.it/wiki/llms.txt)
