1
Hardware / Re:Vícenásobný passthrough hardwaru (GPU)
« Poslední příspěvek od Michal Šmucr kdy Dnes v 23:40:34 »Ne obecně to není možné, protože fyz. zařízení je zpravidla navržené tak, že bude komunikovat s jedním systémem, ovladačem. Jedno, jestli se bavíme o GPU, NPU nebo třeba USB root hubu. Takže jak název napovídá, jakmile se přes pass-thru režim zařízení připojí k VM, tak se na něj nikdo jiný nedostane (včetně hostitele i ostatních VM).
Výjimky existují, ale jsou to specifická řešení (hardware+software) k tomu souběžnému přístupu a sdílení uzpůsobená.
Např. pro grafické karty existuje NVIDIA vGPU, což není levné (licencují se počty přístupů ke GPU), oficiálně to chodí na specifických konfiguracích a nejvyšších kartách.
https://docs.nvidia.com/vgpu/gpus-supported-by-vgpu.html
Já se s tím setkal pouze v kombinaci s VMWare na virtuální desktopy.
Podobně mělo AMD MxGPU pro VMWare, ale o tom jsem tak čtyři, pět let neslyšel. Výkonově to prý bylo horší než vGPU, víc to při sdílení spoléhalo na sw část.
Intel má podobně GVT-g se sdílením (pozor není to GVT-d, což je pass-thru)
https://wiki.archlinux.org/title/Intel_GVT-g
Je tam poměrně dost "ale" a různých omezení (např. UEFI hosty bez patche neběží), záleží také na virt-vieweru. Zkoušel jsem to rozběhat na nějaký základní akcelerovaný desktop, úplně jsem nepochodil a neměl jsem moc času a energie si s tím hrát dál. Plus na výkonějších serverech byly EPYCy.
Finálně je možnost jít cestou nějaké obecné emulační (resp. paravirtualizační) vrstvy, která vytvoří virtuální GPU do VM a bude překládat volání na fyzickou kartu přes DRI a sdílet její prostředky. Což přidá overhead a latenci a je to tedy spíš mířeno na nějakou základní akceleraci.
To je například VirGL, https://docs.mesa3d.org/drivers/virgl.html
Podpora je součástí QEMU i libvirt a bude záležet na konkrétní distribuci, sestavení hypervizoru, MESY i VM guestu, jestli se to povede rozchodit. Tohle se typicky nastavuje v GUI ovládáních (jako virt-manager), když se zapne zaškrtávátko pro 3D akceleraci v konkrétní VM s typem karty virtio-gpu.
YMMV.
Výjimky existují, ale jsou to specifická řešení (hardware+software) k tomu souběžnému přístupu a sdílení uzpůsobená.
Např. pro grafické karty existuje NVIDIA vGPU, což není levné (licencují se počty přístupů ke GPU), oficiálně to chodí na specifických konfiguracích a nejvyšších kartách.
https://docs.nvidia.com/vgpu/gpus-supported-by-vgpu.html
Já se s tím setkal pouze v kombinaci s VMWare na virtuální desktopy.
Podobně mělo AMD MxGPU pro VMWare, ale o tom jsem tak čtyři, pět let neslyšel. Výkonově to prý bylo horší než vGPU, víc to při sdílení spoléhalo na sw část.
Intel má podobně GVT-g se sdílením (pozor není to GVT-d, což je pass-thru)
https://wiki.archlinux.org/title/Intel_GVT-g
Je tam poměrně dost "ale" a různých omezení (např. UEFI hosty bez patche neběží), záleží také na virt-vieweru. Zkoušel jsem to rozběhat na nějaký základní akcelerovaný desktop, úplně jsem nepochodil a neměl jsem moc času a energie si s tím hrát dál. Plus na výkonějších serverech byly EPYCy.
Finálně je možnost jít cestou nějaké obecné emulační (resp. paravirtualizační) vrstvy, která vytvoří virtuální GPU do VM a bude překládat volání na fyzickou kartu přes DRI a sdílet její prostředky. Což přidá overhead a latenci a je to tedy spíš mířeno na nějakou základní akceleraci.
To je například VirGL, https://docs.mesa3d.org/drivers/virgl.html
Podpora je součástí QEMU i libvirt a bude záležet na konkrétní distribuci, sestavení hypervizoru, MESY i VM guestu, jestli se to povede rozchodit. Tohle se typicky nastavuje v GUI ovládáních (jako virt-manager), když se zapne zaškrtávátko pro 3D akceleraci v konkrétní VM s typem karty virtio-gpu.
YMMV.