Lo primero que vamos a hacer es configurar la bios, hay que activar:
IOMMU
VT-d (Intel) o AMD-Vi (AMD)
SR-IOV (opcional, como me ha funcionado así lo he dejado así)
También en mi caso habilito el 4G_Decode y el resize bar para activar el Smart Access Memory
Ahora nos vamos al proxmox y modificamos el fichero /etc/default/grub, buscamos la línea que contenga "GRUB_CMDLINE_LINUX_DEFAULT=" y la cambiamos por la de abajo. Nota: En los actuales kernel, iommu viene habilitado por defecto, por lo tanto, la parte amd_iommu=on no hace falta, pero como me funciona no he querido tocarlo.
nano /etc/default/grub
GRUB_CMDLINE_LINUX_DEFAULT="quiet amd_iommu=on iommu=pt"
Guardamos y actualizamos el grub:
update-grub
Ahora tenemos que hacer un dump de la bios de nuestra gpu y meterla en proxmox, yo he usado gpu-z, pero también la podéis buscar aquí: https://www.techpowerup.com/vgabios/ (debe ser el modelo exacto)
La renombramos (9070.rom en mi caso y la subimos a proxmox en el directorio: /usr/share/kvm (yo he usado winscp)
Ahora nos creamos la máquina virtual de tipo q35, en display ponemos VirtIO-GPU (esto es para poder usar la consola desde proxmox, luego se puede dejar en none una vez que funcione) y uefi:
Para añadir la gráfica le damos a add desde la ventana de hardware (imagen superior) PCI Device y seleccionamos la gráfica, he desmarcado el check all functions para que me deje añadir el sonido por separado, básicamente es repetir este proceso y añadir Navi48 HDMI/DP Audio controller
Una vez añadida la gráfica y el sonido editamos a mano la configuración de la mano para poder añadir la bios.
Quedaría así (recordar que el pcie id será distinto)
hostpci0: 0000:0c:00.0,pcie=1,romfile=9070.rom,rombar=0,x-vga=1
hostpci1: 0000:0c:00.1,pcie=1,rombar=0
La línea de arriba es la gpu con la rom y la de abajo el sonido.
Ya sólo queda arrancar la máquina virtual, recordaros que en AMD está el bug "AMD reset bug", por lo que el puerto pcie se queda pillado si apagamos la máquina, no va a volver a funcionar, hay que reiniciar el nodo entero, si consigo solucionarlo actualizaré este tutorial.
Como podéis ver el Smart Access Memory está activo, y podemos hacer undervolt:
Aquí el resultado del benchmark (Core: -65mv, MEM: Fast timings 2650 Mhz, +10%Power Limit):
Este es el rendimiento en nativo con el mismo undervolt:
Un saludo.
¿Le ha sido útil este artículo?
¡Qué bien!
Gracias por sus comentarios
¡Sentimos mucho no haber sido de ayuda!
Gracias por sus comentarios
Sus comentarios se han enviado
Agradecemos su esfuerzo e intentaremos corregir el artículo