Fa alguns dies, NVIDIA va donar a conèixer, mitjançant les llistes de correu del Kernel, l'alliberament d'un conjunt de pegats que implementa la seva tecnologia vGPU. Aquests pedaços permet l'ús de les GPU virtuals de NVIDIA en sistemes de virtualització, oferint un potent rendiment de GPU per a diverses càrregues de treball, que van des d'estacions de treball virtuals amb alt processament gràfic fins a aplicacions de ciència de dades i intel·ligència artificial.
La vGPU divideix els recursos de la GPU física de NVIDIA en maquinari, assignant a cada vGPU la seva pròpia funció virtual PCI Express (VF). Això significa que es poden executar sistemes convidats que facin diverses tasques aprofitant al màxim els recursos disponibles.
S'esmenta que cada vGPU de NVIDIA funciona de manera similar a una GPU convencional, ja que compta amb una quantitat fixa de memòria intermèdia de quadres i una o més sortides de pantalla virtuals, també conegudes com a «heads». La memòria intermèdia de quadres de la vGPU s'assigna des de la memòria intermèdia de quadres de la GPU física en el moment de la seva creació, i la vGPU manté l'ús exclusiu d'aquesta memòria intermèdia fins que és destruïda.
Permet que l'equip de TI aprofiti els beneficis d'administració i seguretat de la virtualització, així com el rendiment de les GPU NVIDIA necessàries per a les càrregues de treball modernes. Instal·lat en una GPU física en un servidor de centre de dades empresarial o al núvol, el programari NVIDIA vGPU crea GPU virtuals que es poden compartir entre diverses màquines virtuals.
el controlador és compatible amb targetes gràfiques NVIDIA basades en la microarquitectura Ada Lovelace, i la quantitat de vGPU que pots crear depèn del model de la targeta de vídeo.
Al sistema host, el controlador modificat Nouveau s'encarrega de crear i aparellar les vGPU amb els sistemes convidats. Per la seva banda, al sistema convidat, s'utilitzen controladors NVIDIA propietaris estàndard. Això assegura que les capacitats de la vGPU s'assemblin a les d'una GPU normal, permetent que s'assigni una part de la memòria des del framebuffer de la GPU física a la vGPU, garantint que només la utilitzeu la vGPU.
Hi ha diversos tipus de vGPU, cadascun dissenyat per a diferents propòsits, amb diferents capacitats de memòria de vídeo, quantitat de pantalles virtuals i resolucions màximes.
la implementació abasta el controlador bàsic nvkm, que es construeix sobre el controlador obert Nouveau, així com l'administrador de vGPU, anomenat vgpu_mgr, que funciona com un mòdul VFIO (Virtual Function I/O). Aquest administrador s'encarrega de funcions clau com crear i eliminar vGPU, seleccionar-ne el tipus i proporcionar una API per al control des de l'espai d'usuari.
El mòdul NVIDIA vGPU VFIO juntament amb VFIO es troba a VFs, proporciona funcions i administració esteses, per exemple, selecció dels tipus de vGPU, compatibilitat amb migració en viu i actualització en calent del controlador.
Igual que altres dispositius compatibles amb VFIO, VFIO proporciona les
API d'espai d'usuari estàndard per a l'administració del cicle de vida del dispositiu i compatibilitat amb funcions avançades.L'administrador de NVIDIA vGPU proporciona el suport necessari al controlador de variant NVIDIA vGPU VFI per crear/destruir vGPU, consultar els tipus de vGPU disponibles, seleccionar el tipus de vGPU, etc.
L'administrador de vGPU interactua amb el controlador de GPU subjacent, el qual accedeix directament al maquinari. A més, carrega el firmware GSP, administrador de vGPU de NVIDIA realitza les funcions següents:
- Administra els recursos de maquinari compartits/particionats. Per exemple, reservar memòria FB,
canals perquè l'administrador de vGPU creï vGPU. - Maneig d´excepcions. Per exemple, lliurar els esdeveniments de GSP a l'administrador de vGPU.
- Enviament d'esdeveniments del host. Per exemple, suspendre/reprendre.
- Enumeracions de la configuració de maquinari.
Finalment, si hi ets interessat a poder conèixer més sobre això, pots consultar els detalls al següent enllaç, així com també pots veure el codi en acció en el següent vídeo. Les proves de codi es van realitzar un Ubuntu 24.04 com a sistema operatiu convidat.