AVX utasításkészletek

Az AVX (Advanced Vector Extensions) egy az Intel Sandy Bridge mikroarchitektúrával bevezetett SIMD-utasításkészlet, amely 256-bit széles utasítások feldolgozását teszi lehetővé. Az AVX alapvetően a lebegőpontos feldolgozás gyorsítására lett kitalálva, és az egyik legérdekesebb újítása, hogy lehetővé teszi a háromoperandusos műveletvégzést, tehát az a:=a+b helyett immár használhatjuk a c:=a+b formát is (igaz, megkötésekkel). Az eredmény már nem kötelezően írja felül a bemenő adatokat, célként megadható más terület is. Általánosan [c1,c2,...]:=[a1,a2,...] op [b1,b2,...] formában írhatóak fel, így ha a bemenő értékekre szükség van a későbbiekben is további számításokhoz, megspórolható egy adatmásolás. Az AVX jól alkalmazható jelfeldolgozásnál (signal processing), különféle multimédiás területeken, tudományos szimulációknál, pénzügyi analíziseknél, illetve 3D modellező alkalmazások esetében.

Az AVX2 (vagy 2.0) az Intel Haswell mikroarchitektúrájával debütált. Ez az utasításkészlet az egész számos SIMD végrehajtást is kibővítette a korábbi 128-ról 256 bites vektorokra, leváltva/kiegészítve a koros 128 bites, Pentium 4-gyel bemutatkozó SSE2 készletet, valamint a Core 2 CPU-kban megjelent, ugyancsak 128 bites SSE4.1 egész számos SIMD-utasításainak nagy részét. Ennek előnyeit elsősorban a kép-, hang- és videofeldolgozó és -megjelenítő programok élvezhetik, de – tekintve az SSE2 mai elterjedtségét – idővel számos különféle programban támogatottá válhat.

Hirdetés