Vélemény: kell vagy nem az új közellenséggé formálódó AVX-512?

Linus Torvalds reméli, hogy fájdalmas halált hal az utasításkészlet, de valójában az Intel az újításával csak magát hozza nehéz helyzetbe.

Régóta vita van arról, hogy kell-e a processzorokba olyan utasításkészlet, mint például az AVX-512, hiszen a tranzisztorigénye miatt nehezen terjeszthető, így elenyésző mennyiségű alkalmazás támogatja csak, nem számítva persze az előnyök megmutatására írt szintetikus teszteket. Sokak szerint még az AVX2 is túlmegy azon a határon, amire reálisan szükség van, de hozzá kell tenni, hogy efféle nézetkülönbségek az egyes újításokról általánosan ki szoktak alakulni, pár év múlva a piac úgyis igazolja, hogy kinek lett igaza.

A véleményét általában köntörfalazás nélkül elmondó Linus Torvalds azonban szokatlanul keményen ment neki az AVX-512-nek, amely kapcsán reméli, hogy fájdalmas halált hal majd. A szakmabeli megjegyzésekkel persze óvatosan kell bánni, mivel a Linux atyjának nyilván értelmes indokai vannak arra, hogy miért szeretné az Intel egyik legfrissebb újítását egy koporsóban látni, viszont ebből a kevésbé hozzáértő közösség szintjén sokszor csak a jellegzetes beszólás marad meg, és ezzel meg is született az új közellenség az AVX-512 formájában. Ezekből aztán érzelmektől felkorbácsolt viták születnek, így pont a lényeg veszik el. Jelen pillanatban pont az, hogy egyáltalán kell-e az említett utasításkészlet?

A fentiek alapján érdemesnek tartottuk megvizsgálni az aktuális helyzetet, felhozni pro és kontra érveket az AVX-512 kapcsán. Bármilyen furcsa ennek a fejlesztésnek vannak előnyei és hátrányai is. A legfőbb előny nyilván a szélesebb, 512 bites vektorfeldolgozó, ami lehetővé teszi, hogy az elődökhöz viszonyítva egy órajelciklus alatt jóval több operáció legyen elvégezhető. Ez azonban nem egy ingyenes dolog, ugyanis a megfelelő működési mód bekapcsolása büntetőciklusokat von maga után, és a processzormag órajele sem mehet túl magas szintre, utóbbi akár fél gigahertznél is nagyobb mínuszt jelenthet a normál működéshez viszonyítva. Ugyanez egyébként igaz az AVX2-re is, csak kisebb büntetőssel jár maga a módváltás, illetve az órajel sem csökken annyira. Ezek miatt a szélesebb vektormotort használó utasításkészletek nem tekinthetők általánosan optimális megoldásnak. Lesznek olyan feladatok, ahol hasznosak, és olyanok is, ahol inkább csak lassulást fognak okozni, annak ellenére, hogy elméletben a gyorsításra vannak tervezve. Az se nagyon titok, hogy mi kell a tempónöveléshez. Ha egy adott problémánál kizárólag az a cél, hogy nagy mennyiségű adatot kell feldolgozni, akkor igenis hasznos mind az AVX2, mind pedig az AVX-512, ugyanakkor ha csak a feladat egy kis részében lehetne ezekből előnyt kovácsolni, akkor inkább szokták azt ajánlani az optimalizálásnál, hogy hagyják ezeket az utasításkészleteket, mert a munkafolyamat kis részében nyerhető előny nem fogja ellensúlyozni a módváltás büntetőciklusait, illetve az erősen visszaeső órajelet. Valószínűleg ez a legfőbb baja Linus Torvaldsnak is. Amíg az AVX2 esetében még csak-csak lehet találni reálisan erre optimalizálható munkafolyamatokat, addig az AVX-512 már annyira sok hátrányt hoz az előnyei mellett, hogy gyakorlatilag csak a HPC-piac egyes területein van haszna, de ott is akkor, ha nem vesszük számításba a dedikált gyorsítókat, amelyek még jobbak az adatpárhuzamos feldolgozás hatékonnyá tételére.

Nincs tehát egyértelmű válasz arra a kérdésre, hogy kell-e vagy nem az AVX-512. A legegyszerűbb azt írni, hogy van olyan piac, ahol az előnyei jobban számítanak, mint a működéséből eredő hátrányok, de más területeken ennek a fordítottja igaz. Valójában azonban a szóban forgó utasításkészlet jelenleg nem sok vizet zavar. Sőt, ironikus módon pont az Intel szenved a létezésétől. Ahhoz ugyanis, hogy elterjedjen egyre több processzorába be kellene építeni, eközben azonban az ilyen széles vektormotorok rendkívül sok tranzisztort emésztenek fel, ráadásul tényleges előnyt a szerverpiacnak is csak egy kis részében adnak. Az új utasításkészletre költött tranzisztorokat azonban nem tudják olyan helyen felhasználni, amivel például több magot tudnának kínálni, vagy jobb lehetne a processzormag általános teljesítménye, így a szerverek szegmensének nagyobbik területén pusztán amiatt szenvednek el sebességhátrányt, mert a célterület kisebb részére kínálnak egy újítást. Ezzel régen nem volt gond, ugyanis az Intelnek volt akkora gyártástechnológiai előnye a többiekhez képest, hogy az efféle, sok tranzisztort felszívó extrákat lényeges hátrány nélkül beépítsék. Ma viszont az AMD használ jobb gyártástechnológiát, amivel az Intel jobban megérzi az új fejlesztések negatívumait. Főleg az elején, amikor hiányoznak azok a szoftverek is, amiből egyáltalán jöhetnének a pozitívumok.

Az ARM például nem véletlenül vezetett be nagymértékben skálázódó utasításkészletet. Az SVE-t használva 128-2048 bites vektormotorok építhetők az egyes magokon belülre, ráadásul 128 bites lépcsőkben lehet haladni, vagyis igazán tág lesz a rendszer tervezhetősége, így az kis feldolgozókkal ideális az ultramobil szintre, míg a HPC-piacra mehetnek a széles vektor egységek. Szoftveres szinten pedig az SVE eltünteti a programozók elől a vektormotorok hosszát, egy program – mindenféle újrafordítás nélkül – ugyanolyan hatékonyan fut a két végleten, illetve közötte is.

Végeredményben ugyanakkor a pro és kontra érvek nem számítanak, amíg az Intel kitart az AVX-512 mellett, addig elérhető lesz, és innentől kezdve igazából mindegy, hogy ki mennyire szereti. Amit viszont kezelni kellene az a jelenlegi nagy fragmentáció, ez ugyanis tényleg árt a terjedésnek, márpedig az Intel alapvető érdeke, hogy minél több valós alkalmazás használja az újítást, ha már az általános teljesítmény, illetve az extra magok helyett erre költenek rengeteg tranzisztort.

  • Kapcsolódó cégek:
  • Intel

Azóta történt

Előzmények