Navigation Menu

Skip to content

Instantly share code, notes, and snippets.

@ThinGuy
Last active November 28, 2023 20:33
Show Gist options
  • Star 4 You must be signed in to star a gist
  • Fork 1 You must be signed in to fork a gist
  • Save ThinGuy/661a88be3f8b0ed7770277374ac3546b to your computer and use it in GitHub Desktop.
Save ThinGuy/661a88be3f8b0ed7770277374ac3546b to your computer and use it in GitHub Desktop.
MAAS xpath auto tags for popular Nvidia GPUs (Tesla V/P/M and Quadro M/P/K series. Assists with GPGPU passthrough
# Note - if you have a single cpu machine, change cpu:0 to just cpu at the start of the definition
maas ${MAAS_PROFILE} tags create \
comment="Enable passthrough for Nvidia Tesla V series GPUs on Intel" \
name=gpgpu-tesla-v-i \
definition='//node[@id="cpu:0"]/capabilities/capability/@id = "vmx" and //node[@id="display"]/vendor[contains(.,"NVIDIA")] and //node[@id="display"]/description[contains(.,"3D")] and //node[@id="display"]/product[contains(.,"Tesla V")]' \
kernel_opts="console=tty0 console=ttyS0,115200n8r nomodeset modprobe.blacklist=nouveau,nvidiafb,snd_hda_codec_hdmi,snd_hda_intel video=vesafb:off,efifb:off intel_iommu=on rd.driver.pre=pci-stub pci-stub.ids=$(awk '/Tesla V/{if (/10de/) print $1":"$2;print "10de:"$1}' /usr/share/misc/pci.ids|paste -sd,) rd.driver.pre=vfio-pci vfio-pci.ids=$(awk '/Tesla V/{if (/10de/) print $1":"$2;print "10de:"$1}' /usr/share/misc/pci.ids|paste -sd,) vfio_iommu_type1.allow_unsafe_interrupts=1 vfio-pci.disable_vga=1"
maas ${MAAS_PROFILE} tags create \
name=gpgpu-tesla-p-i \
comment="Enable passthrough for Nvidia Tesla P series GPUs on Intel" \
definition='//node[@id="cpu:0"]/capabilities/capability/@id = "vmx" and //node[@id="display"]/vendor[contains(.,"NVIDIA")] and //node[@id="display"]/description[contains(.,"3D")] and //node[@id="display"]/product[contains(.,"Tesla P")]' \
kernel_opts="console=tty0 console=ttyS0,115200n8r nomodeset modprobe.blacklist=nouveau,nvidiafb,snd_hda_codec_hdmi,snd_hda_intel video=vesafb:off,efifb:off intel_iommu=on rd.driver.pre=pci-stub pci-stub.ids=$(awk '/Tesla P/{if (/10de/) print $1":"$2;print "10de:"$1}' /usr/share/misc/pci.ids|paste -sd,) rd.driver.pre=vfio-pci vfio-pci.ids=$(awk '/Tesla P/{if (/10de/) print $1":"$2;print "10de:"$1}' /usr/share/misc/pci.ids|paste -sd,) vfio_iommu_type1.allow_unsafe_interrupts=1 vfio-pci.disable_vga=1"
maas ${MAAS_PROFILE} tags create \
name=gpgpu-tesla-m-i \
comment="Enable passthrough for Nvidia Tesla M series GPUs on Intel" \
definition='//node[@id="cpu:0"]/capabilities/capability/@id = "vmx" and //node[@id="display"]/vendor[contains(.,"NVIDIA")] and //node[@id="display"]/description[contains(.,"3D")] and //node[@id="display"]/product[contains(.,"Tesla M")]' \
kernel_opts="console=tty0 console=ttyS0,115200n8r nomodeset modprobe.blacklist=nouveau,nvidiafb,snd_hda_codec_hdmi,snd_hda_intel video=vesafb:off,efifb:off intel_iommu=on rd.driver.pre=pci-stub pci-stub.ids=$(awk '/Tesla M/{if (/10de/) print $1":"$2;print "10de:"$1}' /usr/share/misc/pci.ids|paste -sd,) rd.driver.pre=vfio-pci vfio-pci.ids=$(awk '/Tesla M/{if (/10de/) print $1":"$2;print "10de:"$1}' /usr/share/misc/pci.ids|paste -sd,) vfio_iommu_type1.allow_unsafe_interrupts=1 vfio-pci.disable_vga=1"
maas ${MAAS_PROFILE} tags create \
name=gpgpu-quadro-m-i \
comment="Enable passthrough for Nvidia Quadro M series GPUs on Intel" \
definition='//node[@id="cpu:0"]/capabilities/capability/@id = "vmx" and //node[@id="display"]/vendor[contains(.,"NVIDIA")] and //node[@id="display"]/description[contains(.,"3D")] and //node[@id="display"]/product[contains(.,"Quadro M")]' \
kernel_opts="console=tty0 console=ttyS0,115200n8r nomodeset modprobe.blacklist=nouveau,nvidiafb,snd_hda_codec_hdmi,snd_hda_intel video=vesafb:off,efifb:off intel_iommu=on rd.driver.pre=pci-stub pci-stub.ids=$(awk '/Quadro M/{if (/10de/) print $1":"$2;print "10de:"$1}' /usr/share/misc/pci.ids|paste -sd,) rd.driver.pre=vfio-pci vfio-pci.ids=$(awk '/Quadro M/{if (/10de/) print $1":"$2;print "10de:"$1}' /usr/share/misc/pci.ids|paste -sd,) vfio_iommu_type1.allow_unsafe_interrupts=1 vfio-pci.disable_vga=1"
maas ${MAAS_PROFILE} tags create \
comment="Enable passthrough for Nvidia Quadro P series GPUs on Intel" \
name=gpgpu-quadro-p-i \
definition='//node[@id="cpu:0"]/capabilities/capability/@id = "vmx" and //node[@id="display"]/vendor[contains(.,"NVIDIA")] and //node[@id="display"]/description[contains(.,"3D")] and //node[@id="display"]/product[contains(.,"Quadro P")]' \
kernel_opts="console=tty0 console=ttyS0,115200n8r nomodeset modprobe.blacklist=nouveau,nvidiafb,snd_hda_codec_hdmi,snd_hda_intel video=vesafb:off,efifb:off intel_iommu=on rd.driver.pre=pci-stub pci-stub.ids=$(awk '/Quadro P/{if (/10de/) print $1":"$2;print "10de:"$1}' /usr/share/misc/pci.ids|paste -sd,) rd.driver.pre=vfio-pci vfio-pci.ids=$(awk '/Quadro P/{if (/10de/) print $1":"$2;print "10de:"$1}' /usr/share/misc/pci.ids|paste -sd,) vfio_iommu_type1.allow_unsafe_interrupts=1 vfio-pci.disable_vga=1"
maas ${MAAS_PROFILE} tags create \
name=gpgpu-quadro-k-i \
comment="Enable passthrough for Nvidia Quadro K series GPUs on Intel" \
definition='//node[@id="cpu:0"]/capabilities/capability/@id = "vmx" and //node[@id="display"]/vendor[contains(.,"NVIDIA")] and //node[@id="display"]/description[contains(.,"3D")] and //node[@id="display"]/product[contains(.,"Quadro K")]' \
kernel_opts="console=tty0 console=ttyS0,115200n8r nomodeset modprobe.blacklist=nouveau,nvidiafb,snd_hda_codec_hdmi,snd_hda_intel video=vesafb:off,efifb:off intel_iommu=on rd.driver.pre=pci-stub pci-stub.ids=$(awk '/Quadro K/{if (/10de/) print $1":"$2;print "10de:"$1}' /usr/share/misc/pci.ids|paste -sd,) rd.driver.pre=vfio-pci vfio-pci.ids=$(awk '/Quadro K/{if (/10de/) print $1":"$2;print "10de:"$1}' /usr/share/misc/pci.ids|paste -sd,) vfio_iommu_type1.allow_unsafe_interrupts=1 vfio-pci.disable_vga=1"
maas ${MAAS_PROFILE} tags create \
comment="Enable passthrough for Nvidia Tesla V series GPUs on AMD" \
name=gpgpu-tesla-v-a \
definition='//node[@id="cpu:0"]/capabilities/capability/@id = "svm" and //node[@id="display"]/vendor[contains(.,"NVIDIA")] and //node[@id="display"]/description[contains(.,"3D")] and //node[@id="display"]/product[contains(.,"Tesla V")]' \
kernel_opts="console=tty0 console=ttyS0,115200n8r nomodeset modprobe.blacklist=nouveau,nvidiafb,snd_hda_codec_hdmi,snd_hda_intel video=vesafb:off,efifb:off amd_iommu=on rd.driver.pre=pci-stub pci-stub.ids=$(awk '/Tesla V/{if (/10de/) print $1":"$2;print "10de:"$1}' /usr/share/misc/pci.ids|paste -sd,) rd.driver.pre=vfio-pci vfio-pci.ids=$(awk '/Tesla V/{if (/10de/) print $1":"$2;print "10de:"$1}' /usr/share/misc/pci.ids|paste -sd,) vfio_iommu_type1.allow_unsafe_interrupts=1 vfio-pci.disable_vga=1"
maas ${MAAS_PROFILE} tags create \
name=gpgpu-tesla-p-a \
comment="Enable passthrough for Nvidia Tesla P series GPUs on AMD" \
definition='//node[@id="cpu:0"]/capabilities/capability/@id = "svm" and //node[@id="display"]/vendor[contains(.,"NVIDIA")] and //node[@id="display"]/description[contains(.,"3D")] and //node[@id="display"]/product[contains(.,"Tesla P")]' \
kernel_opts="console=tty0 console=ttyS0,115200n8r nomodeset modprobe.blacklist=nouveau,nvidiafb,snd_hda_codec_hdmi,snd_hda_intel video=vesafb:off,efifb:off amd_iommu=on iommu=pt iommu=1 rd.driver.pre=pci-stub pci-stub.ids=$(awk '/Tesla P/{if (/10de/) print $1":"$2;print "10de:"$1}' /usr/share/misc/pci.ids|paste -sd,) rd.driver.pre=vfio-pci vfio-pci.ids=$(awk '/Tesla P/{if (/10de/) print $1":"$2;print "10de:"$1}' /usr/share/misc/pci.ids|paste -sd,) vfio_iommu_type1.allow_unsafe_interrupts=1 vfio-pci.disable_vga=1"
maas ${MAAS_PROFILE} tags create \
name=gpgpu-tesla-m-a \
comment="Enable passthrough for Nvidia Tesla M series GPUs on AMD" \
definition='//node[@id="cpu:0"]/capabilities/capability/@id = "svm" and //node[@id="display"]/vendor[contains(.,"NVIDIA")] and //node[@id="display"]/description[contains(.,"3D")] and //node[@id="display"]/product[contains(.,"Tesla M")]' \
kernel_opts="console=tty0 console=ttyS0,115200n8r nomodeset modprobe.blacklist=nouveau,nvidiafb,snd_hda_codec_hdmi,snd_hda_intel video=vesafb:off,efifb:off amd_iommu=on iommu=pt iommu=1 rd.driver.pre=pci-stub pci-stub.ids=$(awk '/Tesla M/{if (/10de/) print $1":"$2;print "10de:"$1}' /usr/share/misc/pci.ids|paste -sd,) rd.driver.pre=vfio-pci vfio-pci.ids=$(awk '/Tesla M/{if (/10de/) print $1":"$2;print "10de:"$1}' /usr/share/misc/pci.ids|paste -sd,) vfio_iommu_type1.allow_unsafe_interrupts=1 vfio-pci.disable_vga=1"
maas ${MAAS_PROFILE} tags create \
name=gpgpu-quadro-m-a \
comment="Enable passthrough for Nvidia Quadro M series GPUs on AMD" \
definition='//node[@id="cpu:0"]/capabilities/capability/@id = "svm" and //node[@id="display"]/vendor[contains(.,"NVIDIA")] and //node[@id="display"]/description[contains(.,"3D")] and //node[@id="display"]/product[contains(.,"Quadro M")]' \
kernel_opts="console=tty0 console=ttyS0,115200n8r nomodeset modprobe.blacklist=nouveau,nvidiafb,snd_hda_codec_hdmi,snd_hda_intel video=vesafb:off,efifb:off amd_iommu=on iommu=pt iommu=1 rd.driver.pre=pci-stub pci-stub.ids=$(awk '/Quadro M/{if (/10de/) print $1":"$2;print "10de:"$1}' /usr/share/misc/pci.ids|paste -sd,) rd.driver.pre=vfio-pci vfio-pci.ids=$(awk '/Quadro M/{if (/10de/) print $1":"$2;print "10de:"$1}' /usr/share/misc/pci.ids|paste -sd,) vfio_iommu_type1.allow_unsafe_interrupts=1 vfio-pci.disable_vga=1"
maas ${MAAS_PROFILE} tags create \
comment="Enable passthrough for Nvidia Quadro P series GPUs on AMD" \
name=gpgpu-quadro-p-a \
definition='//node[@id="cpu:0"]/capabilities/capability/@id = "svm" and //node[@id="display"]/vendor[contains(.,"NVIDIA")] and //node[@id="display"]/description[contains(.,"3D")] and //node[@id="display"]/product[contains(.,"Quadro P")]' \
kernel_opts="console=tty0 console=ttyS0,115200n8r nomodeset modprobe.blacklist=nouveau,nvidiafb,snd_hda_codec_hdmi,snd_hda_intel video=vesafb:off,efifb:off amd_iommu=on iommu=pt iommu=1 rd.driver.pre=pci-stub pci-stub.ids=$(awk '/Quadro P/{if (/10de/) print $1":"$2;print "10de:"$1}' /usr/share/misc/pci.ids|paste -sd,) rd.driver.pre=vfio-pci vfio-pci.ids=$(awk '/Quadro P/{if (/10de/) print $1":"$2;print "10de:"$1}' /usr/share/misc/pci.ids|paste -sd,) vfio_iommu_type1.allow_unsafe_interrupts=1 vfio-pci.disable_vga=1"
maas ${MAAS_PROFILE} tags create \
name=gpgpu-quadro-k-a \
comment="Enable passthrough for Nvidia Quadro K series GPUs on AMD" \
definition='//node[@id="cpu:0"]/capabilities/capability/@id = "svm" and //node[@id="display"]/vendor[contains(.,"NVIDIA")] and //node[@id="display"]/description[contains(.,"3D")] and //node[@id="display"]/product[contains(.,"Quadro K")]' \
kernel_opts="console=tty0 console=ttyS0,115200n8r modprobe.blacklist=nouveau,nvidiafb,snd_hda_intel nouveau.blacklist=1 nouveau.blacklist=1 nouveau.blacklist=1 video=vesafb:off,efifb:off amd_iommu=on iommu=pt iommu=1 rd.driver.pre=pci-stub pci-stub.ids=$(awk '/Quadro K/{if (/10de/) print $1":"$2;print "10de:"$1}' /usr/share/misc/pci.ids|paste -sd,) rd.driver.pre=vfio-pci vfio-pci.ids=$(awk '/Quadro K/{if (/10de/) print $1":"$2;print "10de:"$1}' /usr/share/misc/pci.ids|paste -sd,) vfio_iommu_type1.allow_unsafe_interrupts=1 vfio-pci.disable_vga=1"
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment