A VirtIO natív kontextustámogatás célja, hogy AMD grafikus kártyák esetében lehetővé tegye a natív hardverillesztők (például radeonsi, radeonsi_drv_video, radv) használatát vendég virtuális gépeken belül, jelenleg a QEMU és KVM alapú környezetekben.
Hagyományosan a nyílt forráskódú Virgl/Venus technológiát használják a 3D gyorsítás engedélyezésére VM-ekben, azonban ez gyakran teljesítménycsökkenéssel jár. Az új natív kontextustámogatás révén a virtuális gépek közvetlenül a gazdagép natív grafikus illesztőprogramjait használhatják, ami lényegesen jobb GPU-teljesítményt eredményezhet.
Pierre-Eric Pelloux-Prayer, az AMD mérnöke így nyilatkozott a funkcióról:
„Ez az MR megvalósítja az amdgpu natív kontextus támogatását: ez lehetővé teszi a natív illesztőprogramok (radeonsi, radeonsi_drv_video és radv) használatát egy vendég VM-ben (jelenleg a QEMU+kvm az egyetlen támogatott beállítás). A teljesítmény mellett, ami jobbnak tűnik, mint a virgl/venus (de csak 1 Vulkan játékot és pár GL-t teszteltem, szóval...) a fő előny, amit látok, a karbantartás: a vendég ugyanazokat az illesztőprogramokat használja, csak nem közvetlenül a libdrm(_amdgpu) programkönyvárban definiált interfészen kommunikálnak, hanem egy virtio/qemu szállítási rétegen keresztül. Ezt az engedélyezési szoftverfoltokban (a sorozat utolsó 2 darabja) lehet megnézni, amik elég kicsik.”
Az egyik legizgalmasabb hozadéka ennek a munkának:
„A jelenlegi protokollal az Unigine Heaven és a Superposition többé-kevésbé a host sebességének 99%-ával fut.”
Összefoglalva
- Teljesítmény: Az első tesztek szerint a natív meghajtók használatával a teljesítmény közel azonos a gazdagép szintjével. Például az Unigine Heaven és a Superposition benchmarkok esetében 99%-os teljesítmény érhető el a gazdagéphez képest.
- Karbantarthatóság: A vendég rendszerek ugyanazokat az illesztőprogramokat használják, mint a gazdagép, de egy VirtIO/QEMU közvetítő rétegen keresztül kommunikálnak. Ez csökkenti a karbantartás bonyolultságát, és egyszerűsíti a fejlesztést.
Technikai részletek
- RadeonSI Gallium3D: Az OpenGL meghajtó, amelyet a fejlesztés támogat.
- RADV Vulkan: Az AMD Vulkan illesztőprogram, amely szintén profitál az új natív kontextustámogatásból.
A jelenlegi fejlesztés a QEMU és KVM környezetekre korlátozódik, de a VirtIO natív kontextus megnyithatja az utat a még szélesebb körű alkalmazások előtt, különösen a virtuális gépes játékok és grafikai alkalmazások terén. Az érdeklődők bővebb információt találhatnak a VirtGPU DRM natív kontextusok teljesítményéről és a fejlesztés hátteréről a hivatalos dokumentációkban és a Mesa 25.0 frissítési jegyzékében.
Ez az újítás jelentős mérföldkő az AMDGPU számára, amely tovább növeli a virtuális gépek teljesítményét és rugalmasságát, különösen az AMD grafikus hardverekkel dolgozók számára.