KVM: AVX10.1 támogatás vendég VM-ekhez

kami911 képe

A Linux 6.12-es verziójával érkező KVM frissítések többek között az AVX10.1 támogatását is hirdetik a vendég virtuális gépek (VM) számára, előkészítve az alapot a jövőbeli Intel processzorok AVX10.2 és későbbi verzióihoz. Linux 6.12 közelgő megjelenésével együtt a KVM (Kernel-based Virtual Machine) x86/x86_64 változtatásai is napvilágot láttak. Az egyik legfontosabb újítás ebben a verzióban, hogy az Intel AVX10.1 támogatása hirdethető lesz a vendég virtuális gépek számára. Ez a frissítés lehetővé teszi, hogy a vendég operációs rendszerek és alkalmazások közvetlenül lekérdezhessék az AVX10.1 CPUID-kódokat.

Miért fontos az AVX10.1?

Az AVX10.1, amely az Intel Granite Rapids platformon debütál, nem tartalmaz új funkcionalitást, csupán a CPUID felsorolás új módját teszi lehetővé. Ez az újítás azonban alapvető szerepet játszik a jövőbeli AVX10.2 és későbbi kiterjesztések bevezetésében. A Linux 6.12 KVM változtatása lehetővé teszi, hogy az újabb Advanced Vector Extensions (AVX) verziókat is könnyedén kezelhessék a vendég virtuális gépek.

További KVM fejlesztések

Az AVX10.1 támogatás mellett a Linux 6.12 KVM x86 frissítései tartalmaznak még új lapozótábla invalidálási opciókat, új MSR (Model-Specific Register) kezelést, valamint egy gyorsabb útvonalat a HLT VM-Exit események kezelésére. Ezenkívül számos más refaktorálást és átdolgozást is magába foglal a frissítés, amelyek tovább javítják a teljesítményt és stabilitást. A részletek elérhetők a KVM x86 frissítésekkel kapcsolatos Git merge-ben, amely további információkat tartalmaz a Linux 6.12 verzióval érkező újításokról.

Az AVX10 alapvető célja, hogy lehetővé tegye az Intel processzorainak, amelyek egyszerre rendelkeznek E-magokkal és P-magokkal, hogy támogassák az AVX-512-t, bár a 512-bites utasítások csak a P-magokon futhatnak. Ezzel szemben a 256-bites össz AVX10 utasítások mind a P-magokon, mind az E-magokon futhatnak, így a teljes chip képes lesz az AVX-512 képességeit támogatni. Ennek köszönhetően az Intelnek nem kell letiltania az 512-bites vektorok támogatását, ahogyan tette ezt az AVX-512 esetében az Alder Lake és a Raptor Lake processzoroknál.

AVX10: A következő lépés a vektorutasítások fejlődésében

Az AVX10 (Advanced Instruction Extensions  - Fejlett Utasításkészlet Bővítések 10) ISA egy szuperszettje az AVX-512-nek, és magában foglalja az AVX-512 ISA összes funkcióját, függetlenül attól, hogy a processzor 256-bites vagy 512-bites vektor regiszterekkel rendelkezik. Az össz AVX10 ISA tartalmazza az „AVX-512 vektor utasításokat az AVX512VL jelzővel, egy maximum 256-bites vektor regiszterhosszal, nyolc 32-bites maszkregiszterrel és új, 256-bites utasításokkal, amelyek beágyazott kerekítést támogatnak”. Ez a változat mind a P-magokon, mind az E-magokon futhat. Azonban az E-magok legfeljebb 256-bites vektorhosszra korlátozódnak, míg a P-magok képesek használni az 512-bites vektorokat is. Ez hasonlít az Arm által támogatott változó vektorhosszúságra az SVE (Scalable Vector Extension) esetében.

Teljesítmény és kompatibilitás

Az Intel szerint a meglévő alkalmazások ugyanazt a teljesítményszintet nyújtják majd az AVX10 esetén, mint amit az AVX-512-vel értek el, legalábbis azonos vektorhossz mellett. Az Intel emellett azt is állítja:

  • Az Intel AVX2-vel fordított alkalmazások, amelyeket újrafordítanak az Intel AVX10-re, teljesítménynövekedést érhetnek el további szoftverhangolás nélkül.
  • Azok az AVX2-alkalmazások, amelyek érzékenyek a vektor regiszter nyomásra, a legtöbb teljesítményt a 16 új vektor regiszter és az új utasítások miatt érhetik el.
  • A nagymértékben párhuzamosítható, vektorizálható alkalmazások valószínűleg magasabb összesített átbocsátást érnek el E-magokra épülő Intel Xeon processzorokon, vagy az Intel teljesítmény hibrid architektúrájú termékein futva.

További fejlesztések és átmenet az AVX10-re

Az Intel az AVX10 első verzióját (AVX10.1) a hatodik generációs Xeon „Granite Rapids” chipekkel kezdi támogatni, de ez a generáció csak az 512-bites vektorutasításokat fogja támogatni, és nem az új, konvergált 256-bites vektorutasításokat. Ehelyett ez az első generáció átmeneti chipként fog szolgálni az AVX-512-ről az AVX10-re. A Granite Rapids utáni chipek támogatják majd az AVX10.2 verziót, amely hozzáadja a konvergált 256-bites vektorhosszúság támogatását és más új funkciókat, például új AI adattípusokat és konverziókat, adatmozgatási optimalizálásokat és szabványos támogatásokat. Minden jövőbeli Xeon processzor teljes mértékben támogatni fogja az összes AVX-512 utasítást, hogy biztosítsák a régi alkalmazások zökkenőmentes működését.

Az AVX10 egyszerűsítése

Az Intel, válaszul a fejlesztők visszajelzéseire (amelyek nyilvánvalóan negatívak voltak), jelentősen egyszerűsíteni tervezi az AVX10 felsorolási módszereit az AVX-512-hez képest. Az Intel emellett biztosítani kívánja, hogy minden egyes AVX10 verzióváltás elegendő új utasítást és képességet hozzon, ami indokolja a váltást, így csökkentve a verziók és felsorolások felesleges növekedését. Az AVX-512 ISA-t az AVX10 bevezetésével befagyasztják, és az AVX-512 utasítások jövőbeli használata az AVX10 ISA-n keresztül történik majd. Eközben az új AMX nem lesz hatással erre a változásra.