AVX-512, Intel SIMD -ohjeet tekoälyyn ja multimediaan

AVX-512-ohjeet ovat yksi tuotteen ainutlaatuisista elementeistä Intelon x86 prosessori arkkitehtuurit. Mutta mitkä ovat nämä ohjeet, koska se johtuu sen toteuttamisesta Intel-suorittimissa? Jatka lukemista ymmärtääksesi syyn näiden ohjeiden olemassaoloon, mitä variantteja sillä on ja miksi sitä ei käytetä AMD sen suorittimissa.

AVX-ohjeet otettiin ensimmäisen kerran käyttöön Intel-suorittimissa korvaamalla vanhat SSE-ohjeet. Siitä lähtien niistä on tullut x86-keskusyksikköjen vakio-SIMD-ohjeet kahdessa muunnelmassaan, 128-bittisessä ja 256-bittisessä, ja myös AMD on hyväksynyt ne. Toisaalta, jos puhumme AVX-512-ohjeista, tilanne on erilainen ja niitä käytetään vain Intel-suorittimissa.

Intel SIMD -ohjeet

Mikä on SIMD-yksikkö?

Ei SIMD

SIMD-yksikkö on eräänlainen suoritusyksikkö, jonka on tarkoitus suorittaa sama käsky useille tiedoille samanaikaisesti. Siksi sen akkurekisteri on pidempi kuin perinteinen käsky, koska sen on ryhmiteltävä eri tiedot, joita sen on käytettävä samalla käskyllä.

SIMD-yksiköitä on perinteisesti käytetty nopeuttamaan niin kutsuttuja multimediaprosesseja, joissa on tarpeen käsitellä eri tietoja samojen ohjeiden mukaisesti. SIMD-yksiköt mahdollistavat ohjelman suorituksen rinnakkaistamisen näissä osissa ja nopeuttavat suoritusaikaa.

Jokaisessa prosessorissa, jotta SIMD-suoritusyksiköt voidaan erottaa perinteisistä, heillä on oma osajoukko käskyjä, jotka ovat normaalisti skalaaristen ohjeiden peili tai yhdellä operandilla. Vaikka on tapauksia, joita ei ole mahdollista tehdä skalaariyksiköllä ja jotka ovat yksinomaan SIMD-yksiköitä.

AVX-512: n historia

Xeon Phi AVX-512

AVX-ohjeet, Advanced Vector eXtensions, ovat olleet Intel-prosessoreissa jo vuosia, mutta AVX-512-ohjeiden alkuperä poikkeaa muista. Syy? Sen alkuperä on Intel Larrabee -projekti, jonka Intel yritti 2000-luvun lopulla luoda GPU siitä tuli lopulta Xeon Phi -kiihdytin. Intelin muutama vuosi sitten julkaisema sarja suorituskykyiseen tietojenkäsittelyyn tarkoitettuja prosessoreita.

Xeon Phi / Larrabee -arkkitehtuuri sisälsi AVX-ohjeiden erityisversion, jonka akkujen rekisterissä oli koko 512 bittiä, mikä tarkoittaa, että ne voivat toimia jopa 16 32-bittisellä datalla. Syy tähän määrään liittyy siihen, että GPU: n tyypillinen operaatio / tekstieli-suhde on yleensä 16: 1. Älkäämme unohtako, että AVX-512-ohjeet ovat peräisin epäonnistuneesta Larrabee-projektista ja tuotiin sieltä Xeon Phi.

Tähän päivään mennessä Xeon Phia ei ole enää olemassa, syy tähän on se, että sama voidaan tehdä perinteisen grafiikkasuorittimen kautta laskentaan. Tämä sai Intelin siirtämään nämä ohjeet pääprosessoreilleen.

Hämmennys, joka on AVX-512-ohjeet

Intel AVX-512

AVX-512-ohjeet eivät ole homogeeninen lohko, joka on 100% toteutettu, vaan niillä on useita laajennuksia, jotka prosessorin tyypistä riippuen on lisätty tai ei. Kaikkia suorittimia kutsutaan AVX512F: ksi, mutta on muita ohjeita, jotka eivät ole osa alkuperäistä käskyjoukkoa ja jotka Intel on lisännyt ajan myötä.

AVX512-laajennukset ovat seuraavat:

  • AVX-512-CD: Konfliktitunnistus, mahdollistaa silmukoiden vektorisoinnin ja siten vektorisoinnin. Ne lisättiin ensin Skylake-X: ssä tai Skylake-SP: ssä.
  • AVX-512-ER: Vastavuoroiset ja eksponentiaaliset ohjeet, jotka on suunniteltu transsendentaalisten toimintojen toteuttamiseen. Ne lisättiin Xeon Phi -sarjaan nimeltä Knights Landing.
  • AVX-512-PF: Toinen sisällytys Knights Landingiin, tällä kertaa ohjeiden ennalta varautumisen tai prefetech-ominaisuuksien lisäämiseksi.
  • AVX-512-BW: Tavu- (8-bittinen) ja sanatason (16-bittinen) ohjeet. Tämän laajennuksen avulla voit työskennellä 8- ja 16-bittisten tietojen kanssa.
  • AVX-512-DQ: Lisää uudet ohjeet 32- ja 64-bittisillä tiedoilla.
  • AVX-512-VL : Antaa AVX-ohjeiden toimia XMM (128-bittinen) ja YMM (256-bittinen) akkurekistereissä
  • AVX-512-IFMA: Fused Multiply Add, joka on puhekielellä A * (B + C) -käsky, 52-bittisellä kokonaislukutarkkuudella.
  • AVX-512-VBMI: Tavuustason vektorikäsittelyohjeet ovat laajennus AVX-512-BW: lle.
  • AVX-512-VNNI: Vector Neural Network Instructions on sarja ohjeita, jotka on lisätty nopeuttamaan Deep Learning -algoritmeja, joita käytetään tekoälyyn liittyvissä sovelluksissa.

Miksi AMD ei ole vielä ottanut sitä käyttöön suorittimissaan?

AMD EPYC

Syy tähän on hyvin yksinkertainen, AMD on sitoutunut suorittimensa ja näytönohjaimensa yhdistettyyn käyttöön nopeuttaessaan tietyntyyppisiä sovelluksia. Älkäämme unohtako AVX-512: n alkuperää Intelin ja AMD: n epäonnistuneessa GPU: ssa Radeon-näytönohjaimiensa ansiosta, he eivät tarvitse AVX-512-ohjeiden käyttöä.

Siksi AVX-512-ohjeet ovat yksinomaan Intel-prosessoreille, ei täydellisen yksinoikeuden vuoksi, vaan siksi, että AMD ei ole kiinnostunut käyttämään tämäntyyppisiä ohjeita suorittimissaan, koska sen tarkoituksena on myydä näytönohjaimia, etenkin äskettäin julkaistua AMD Instinctia korkean suorituskyvyn laskenta CDNA-arkkitehtuurilla.

Onko AVX-512-ohjeilla tulevaisuutta?

Intel Xe Render

No, emme tiedä, se riippuu Intel Xe: n, erityisesti Xe-HPC: n menestyksestä, mikä antaa Intelille GPU-arkkitehtuurin AMD: n tasolla ja NVIDIA. Tämä tarkoittaa ristiriitaa Intel Xe: n ja AVX-512-ohjeiden välillä samojen ongelmien ratkaisemiseksi.

AVX-512: n ongelmana on, että sitä käyttävän suorittimen osan aktivointi vaikuttaa pääosin kellonopeuteen, mikä vähentää sitä noin 25% ohjelmassa, joka käyttää näitä ohjeita tiettyihin hetkiin. Lisäksi sen ohjeet on tarkoitettu suuritehoisiin tietojenkäsittely- ja tekoälysovelluksiin, jotka eivät ole tärkeitä kodin prosessorissa, ja erikoistuneiden yksiköiden ulkonäkö tekee siitä transistoreiden ja tilan tuhlauksen.

Todellisuudessa kiihdyttimet tai toimialakohtaiset prosessorit korvaavat hitaasti SIMD-yksiköt suorittimissa, koska ne voivat tehdä saman viemällä vähemmän tilaa ja vähäisellä virrankulutuksella verrattuna.