How to SR-IOV Mod the W7100 GPU

Why?!

SR-IOV is a technology that lets one piece of hardware be shared among multiple virtual machines. The W700 was end-of-life 3 years ago, and isn’t a particularly good gaming card. Who should do this?

  • A Software Developer looking to explore SR-IOV capabilities
  • A VFIO enthusiast looking to play with SR-IOV inexpensively
  • A DevOps person working on experiments with container orchestration technologies for containers that need access to GPU resources.

Who this is not for:

  • I want to have a single GPU in my system and play the latest AAA titles.

How do we do this?

It’s actually pretty easy.

  1. Flash S7150.bin to W7100 (W7100 must have 512kb ROM)

This Rom can be downloaded from Tech Power up or found elsewhere on the internet. It’s the bios/rom file for the S7150. Most, but not all, W7100s don’t have an 8-pin eeprom large enough to hold it. However, swapping the eeprom is easy enough. It’s also pretty easy to order a replacement 8-pin eeprom pre-flashed with the bin file from eBay.

  1. clone GitHub - GPUOpen-LibrariesAndSDKs/MxGPU-Virtualization

  2. use pull #24

  3. Change “S7150” to “W7100” from “84: [AMDGIM_ASICINFO_NAME] = “S7150”,” on
    drv\gim_monitor.c

  4. Change “0x6929” to “0x692B” from “64: [AMDGIM_ASIC_PCI_DEVICE_ID] = 0x6929,” on drv\gim_monitor.c

  5. Change “0x6929” to “0x692B” from “57: { PCI_VDEVICE(ATI, 0x6929), 0 }, /* Tonga S7150 ‘Cloudy Quark’ */” on drv\gim_drv.c:

  6. Compile and install GIM (some useful info MxGPU with AMD S7150 under Proxmox VE 5.x - Proxmox VE)

  7. Passthrough VF to VM and override ‘x-pci-vendor-id’ and ‘x-pci-device-id’ by ‘0x1002’ and ‘0x692F’

  8. Setup Looking Glass https://looking-glass.io/

Additional Thoughts

TODO

Note this mod has existed on the internet for at least a year before I reposted it here for the vfio context option. I did not create this, it just turns out it’s handy for dev/testing in case we finally to get sr-iov or gvt-g on a decent gaming card

18 Likes

How good are these cards at gaming? I don’t believe I’ve ever seen any legit gaming benchmarks.

1 Like

Wendel said it:

I think that’s pretty clear :slight_smile:

1 Like

Yeah but I still want a idea of how much performance these cards could offer. RX590 level perhaps?

1 Like

Um, no :slight_smile: Its card from 2014 so think rather in lines of Radeon HD 5970

Edit: Or rather Radeon HD 7950-7970 is more appropriate, but perf the same.

2 Likes

nope

1 Like

Maybe rx470

2 Likes

How does it handle looking glass with a good card? Any bottlenecking?

TBH I’m waiting to see what people do with the new Intel cards coming out, and likely won’t touch this at all, but this is definitely interesting stuff.

1 Like

Yikes! I’m guessing this is a surface mount part, not socketed?

1 Like

Yep

2 Likes

Do you have to use Proxmox for this or is it do able (albeit with a different method) with Vmware?

1 Like

Need linux for this in some way. Doesn’t have to be proxmox. Vmware needs more work

1 Like

Cool cheers for info :slight_smile:

1 Like

Hmm I’ve got one in a xeon server downstairs. It’s a OEM (DELL) revision so I am uncertain of the BIOS type it would have. On initial testing with GPU-Z it does state explicitly that is a Dell branded W7100. I am under the assumption that Sapphire makes these video cards regardless, why did they go through the hassle of using two differing bios chip/socket size.

Something to look forward to I suppose, going to have to wait till after the holidays. Thank you for the write-up and tutorial.
sheep2
(Mind telling me what’s going on in this scene here? New launch release? :stuck_out_tongue: )

2 Likes

Came here from the ‘One GPU’ video.

So judging from this post, the gitrepo (https://github.com/GPUOpen-LibrariesAndSDKs/MxGPU-Virtualization) and general AMD line up knowledge, there aren’t any other cards that could be flashed to SR-IOV counterparts?

I have WX7100 that I’ve only used for passthrough but that is always so limiting.

1 Like

I’m curious how this works with regards to display outputs, is it possible to show the output of one VM on one of the DP ports of the WX7100, and then a different VM on a different port?

Or is it headless only + something like Looking Glass?

1 Like

Exactly the same question I asked myself.

Also will the card run inside a macOS virtual machine?

1 Like

there is a region you can copy to, or just ensure the display buffer is at, to get output but uhh with the stock mxgpu stack, it’s imperfect. Oddly you can count on just one of the outputs to work in most scenarios.

1 Like

You and the other contributors have all done an amazing thing for humanity, whether humanity realizes it or not. Maybe that’s a bit melodramatic, but long live compute for the end user. ANYWAY, thanks for this!

4 Likes

I wonder if Resizable ROM BAR finally allows SR-IOV GPUs to not run out of ROM BAR and actually work on consumer mobos.

1 Like