I have to say, the @IntelGraphics team does a very nice job on their packaging!
Look forward to kicking the tires on their new Arc GPUs, luckily this fits nicely in the Intel 12 Extreme NUC (Dragon Canyon) 😁 pic.twitter.com/DHTC93pzmc
— William Lam (@lamw.bsky.social | @*protected email*) (@lamw) January 21, 2023
I recently had the opportunity to play with one of Intel's Arc 7 series discrete GPU (A750), which is part of the new Intel Arc desktop graphics product line, that was just released last Fall. While the primary audience for the Intel Arc graphics is for creators and desktop gaming, I was really interested in its applicability for a vSphere-based environment which also has a number of interesting use cases for graphics from Virtual Desktop Infrastructure (VDI), video transcoding/rendering, AI/ML, Kubernetes, general purpose graphics acceleration and even basic gaming to name a few.
While there are many GPU options in the market for vSphere, depending on your needs and budget, the new Intel's new Arc 7 series could be a nice modern option as it is touted to be both price and performance competitive with other offerings within the market.
The Intel Arc 7 series has two models that are both compatible with the latest releases of ESXi. For the detailed technical specifications, please see the A750 page and A770 page, with the latter being the more performant model.
I have not built my own computer in a LONG time, which also means that I did not have a spare motherboard that could use to try out the A750, which is a full height dual-slot GPU (detailed sizing can be found on this page). I do however, have access to an Intel 12 Extreme NUC (Dragon Canyon), which is one of the expandable Intel NUCs that can support both the A750 and A770 GPU. To be clear, you do NOT need an Intel NUC 12 Extreme to be able to leverage the A750/A770 GPU, this was just what I had on hand and any system that can support a PCIe 4.0 x16 dual-slot can be used.
For my avid readers, you may have recalled my experimentation with the A770M (mobile version of the Intel Arc GPU) that is included with the latest Intel 12 Enthusiast NUC (Serpent Canyon), which can only be passthrough'ed and accessed by a Linux VM. The great news about the A750/A770 GPU is that it can be successfully passthrough and used by both a Linux and Windows operating systems!
When toggling PCI passthrough for the Intel Arc GPU, I noticed that the description for the A750 is just "<class> VGA compatible controller" and you will need to look at the DeviceID to confirm that you using the A750/A770. A quick search online for <vendorId>:<deviceId> (e.g. 8086:56A1), we can confirm that this is our A750 and can then be added to either a Linux or Windows VM for use.
Linux
Step 1 - Create and install Ubuntu Server 22.04 VM (recommend using 60GB storage or more, as additional packages will need to be installed). Once the OS has been installed, go ahead and shutdown the VM.
Step 2 - Enable passthrough of the GPU under the ESXi Configure->Hardware->PCI Devices settings and then add a new PCI Device to the VM and select the GPU. You can use either DirectPath IO or Dynamic DirectPath IO, it does not make a difference.
Step 3 - Edit the VM and under VM Options->Advanced->Configuration Parameters and add the following:
pciPassthru.use64bitMMIO = "TRUE"
Step 4 - Optionally, if you wish to disable the default virtual graphics driver (svga), edit the VM and under VM Options->Advanced->Configuration Parameters change the following setting from true to false:
svga.present
Step 5 - Power on the VM and then follow these instructions for installing the Intel Graphic Drivers for Ubuntu 22.04 and once completed, you will now be able to successfully use the GPU from within the Ubuntu VM.
Windows
Step 1 - Create and install Windows 10 or 11 VM. Once the OS has been installed, go ahead and shutdown the VM.
Step 2 - Enable passthrough of the GPU under the ESXi Configure->Hardware->PCI Devices settings and then add a new PCI Device to the VM and select the GPU. You can use either DirectPath IO or Dynamic DirectPath IO, it does not make a difference.
Step 3 - Edit the VM and under VM Options->Advanced->Configuration Parameters and add the following:
pciPassthru.use64bitMMIO = "TRUE"
Step 4 - Optionally, if you wish to disable the default virtual graphics driver (svga), edit the VM and under VM Options->Advanced->Configuration Parameters change the following setting from true to false:
svga.present
Step 5 - Power on the VM and then install the latest Intel Arc graphic Windows drivers and once completed, you will now be able to successfully use the GPU from within the Windows VM.
Here is a screenshot of both a Windows 11 and Windows 10 VM using the A750 running on the latest ESXi 8.0a release:
In addition to being able to use the GPU directly from within the VM, I can also confirm that if you have an external monitor connected to the GPU, the display of the VM can be outputted onto the external connected monitor, which can be useful for a desktop or gaming setup. In fact, you can passthrough additional devices like a USB keyboard and mouse, as shown in the screenshot below, to fully interact with the VM by implementing the instructions in this blog post.
While the Intel NUC 12 Extreme is just one of the many options for housing the A750/A770, I definitely wish there was a bit more room while installing the GPU. The space was quite tight once the GPU was installed and there was very little room left for the power cables which must be tuck behind the card and along the edge. The light up Intel Arc logo was pretty neat but it is a shame that the rest of the lights on the GPU were hidden on the other side and you really can not see them but the NUC 12 Extreme lights makes up for that both on the bottom and the front of the chassis 🙂
With the success of passing through A750/A770 to both a Linux and Windows VM, this definitely opens up the possibilities for many of the use cases that I had described earlier. Now, I am curious if our vSphere with Tanzu solution can also make use of the Intel Arc GPU via the Kubernetes interface provided by our VM Service Operator? 🤔 Time to explore a bit more further and report back 😀
peng says
Hi William,
Does Iris Xe Dedicated Graphic card support passing through to Windows VM?
William Lam says
No
v3locity says
Hi William,
What about the Intel A380, do you know if that can be pass through?
Thanks!
William Lam says
It should and would also use the same Linux driver
Kirill says
It works fine for me in Windows 10 VM, but in Ubuntu VM after setting up GPU passtrough I've got error message "Failed to power on virtual machine ubnt_serv. Invalid memory setting: memory reservation (sched.mem.min) should be equal to memsize(8192). Click here for more details."
William Lam says
Define “works fine”? What device do you have, what version of driver (ideally provide link) that you’ve got setup?
The error mentions you’ve got incorrect reservation configured. Passthrough requires that all memory is reserved, this is exactly how your Windows VM is setup if it’s setup correctly there
Kirill says
William, thank you for your help! My host is NUC11BTMi7 with 32 Gb of RAM running ESXi 8.0,GPU Intel ARC 380. I've managed to get GPU in Windows VM, and it works fine. Now I am trying to get GPU in Ubuntu 22.04 VM. I've had error mentioned above, but already fixed it with your help. Now boot process stucks, and the last string on the screen is " [1.511195] i915 0000:02:04.0: ugaarb: changed VGA decodes: olddecodes=io+mem,d"
No driver installed for GPU yet.
William Lam says
Ah, so you're using NUC11 ... that's interesting to hear that Arc passes through for Windows but not Ubuntu ... this goes back to Intel's drivers. If you read https://williamlam.com/2022/11/updated-findings-for-passthrough-of-intel-nuc-integrated-graphics-igpu.html, you'll see that Ubuntu finally works for 12th Gen+ but doesn't for 11th, so it seems there's some hardware and driver changes between these systems that at least affects dGPU and iGPU very differently
Tomi says
Hi William,
I have a AMD Ryzen 7 5825u mini PC running ESXi 8, does it work with eGPU for AI/ML. Thanks for your advise
William Lam says
When you say eGPU, I assumed you plan on connecting it through Thunderbolt or USB 4? As long as ESXi can see it, it should in theory work just like any Intel-based system but I've not had much experience with AMD kits, as most do not have viable OOTB networking
Sam says
Did you ever test this? I'm hoping to do the same.
Robinson says
Is it passed through including ASICS like QuickSync? i.e. can I do video encoding with it?
Tim Aldridge says
Thank you for this! I bought an a750 based on this blog post and couldn’t get it working… then I read it again. The pciPassthru.use64bitMMIO=TRUE was what I’d forgotten 🙂
Tim Aldridge says
Hi William - I've set up my A750 and successly passed it through to my Windows 11 VM on ESXi 8. It can play games etc. The only thing that I can't get enabled is resizable BAR - both the Intel software and GPU-Z are saying it's not enabled in the BIOS (I am assuming this could only be referring to the VM's BIOS rather than the baremetal bios (where resizable BAR is enabled)? Any suggestions?
William Lam says
No, it’s referring to the physical system BIOS 🙂 and that is setting that should be available as I have it. Make sure to update to latest firmware as Intel keeps updating it for perf gains
John Roselli says
I'm trying to use an Intel A310 with 7.0u3, I keep getting a code 43 error. Is there any special parameters that may need to be added to a vm config for this to work? I was hoping a A310 would work similar to a A750 or A770.
dc120 says
VM is Windows 11, sorry forgot to mention.
mm says
same problem. A310, Win10 / Win11 VM, exsi 7.0u3. Did you ever figure it out?
konros says
I picked up a sparkle a310 and I have the same problem on Windows Server 2019, ESXI 7.0U3... Eventually got it working on an Ubuntu Server 24 VM.
Any by working I specifically mean FFMPEG picks up the card for hardware transcoding... which is all I wanted.
J says
Not yet, I upgraded the host to ESXi 8.0 Update 2c and it still isn't working. I suspect the Intel windows drivers is preventing this from working.
Fatbob says
I tried on latest esxi 8.0.3, on one VM (bios mode) i get error 12 in windows on another VM (uefi) I get the dreaded error 43. A750. Any tips are welcome. Error 43 is also present for all nvidia GPUs i have tried EXCEPT an old GTX980 that works perfectly. Very strange. My guess is it's something with my motherboard (B650 AORUS PRO AX)