MSI mode on GPU's
Optimization Guide / Tips
What is MSI mode
High interrupt latency is frequently caused by shared interrupts, which can also affect stability. They are frequently undesired and a result of a computer's finite number of hardware interrupt lines. For instance, a far better approach for example; is for each device to have its own interrupt and for one driver to manage the many interrupts while being aware of which device they originated from. But using four IRQ lines for a single device soon exhausts the available IRQ lines. The GPU cannot utilise more than one IRQ in the first place since PCI devices are all tied to a single IRQ line.
A new interrupt mechanism known as message-signaled interrupts, which was initially presented in the PCI 2.2 standard, provides a solution to all of these issues (MSI). Despite the fact that it is still an optional part of the standard and is seldom encountered on client machines, more servers and workstations are implementing MSI support, which is fully supported by all current Windows versions. According to the MSI model, a device notifies its driver by writing to a certain memory location. This generates an interrupt, after which Windows calls the ISR with the message's content (value) and its delivery address. Additionally, a device can send up to 32 messages (each with a distinct payload) to the memory address, depending on the event.
In PCI 3.0, the MSI model gained support for MSI-X, an expansion of the MSI model that adds support for 32-bit messages (instead of 16-bit), a maximum of 2048 different messages (instead of 32), and—most importantly—the ability to use a different address (which can be determined dynamically—for each of the MSI payloads. The MSI payload can be written to a different physical address range that belongs to a different processor, or to a different group of target processors, by using a different address. This effectively makes it possible to deliver interrupts that are aware of nonuniform memory access (NUMA) by sending the interrupt to the processor that made the related device request in the first place. By keeping an eye on both the load and the nearest NUMA node during interrupt completion, this decrease's latency and increases scalability n sometimes perfromance.
Due to limited documation, and not many people running benchmarks comparing IRQ and MSI mode there aren't many benchmarks.
This is the best I had to base my inital choice to change to MSI mode:
https://www.youtube.com/watch?v=43gskMlby_4
Perosnal statistics: 1650s with ryzen 5 4600H and 32GB's of DDR4 @ 3200Mhz with freesync 120Hz display.
Overwatch 2 (120fps max);
MSI Mode off: Lowest 75 FPS, Max 120, Avg 85.
MSI Mode on: Lowest 80, Max 120, avg 100.
Apex legends (120fps max):
MSI Mode off: Lowest 60, Max 120, avg 80.
MSI mode on: lowest 63, Max 120, avg 95.
Unreal Engine 5 Broadleaf Forest Tech Demo (120fps max):
MSI mode off: Lowest 3fps, Max 7, avg 5.
MSI mode on: Lowest 15fps, Max 25, avg 20.
Dead by daylight (120Fps max):
MSI mode off: Lowest 65fps, Max 90, avg 75
MSI mode on: Lowest 70Fps, Max 110, avg 80
High on life (120fps max):
MSI mode off: Lowest 40fps, Max 80, avg 55
MSI mode on: Lowest 45fps, Max 90, avg 65
How to put your GPU in MSI mode.
NVcleaneinstall:
https://www.techpowerup.com/download/techpowerup-nvcleanstall/
- Run through install of NVcleaner and debloat to your wish
- Press advanced tweaks and select message signal interupts, n other desired options
- Leave core selection at default and set proity at high
- Press rebuilt signigture and any other settings you wish and click next
- Export the modfied driver from the temp folder
- Install and authorise all requests! as well as install driver even after unreconised driver warning.
MSI Ultiility:
https://www.mediafire.com/file/ewpy1p0rr132thk/MSI_util_v3.zip/file
- Open as administator
- Find your GPU and turn on MSI mode if supported
- Set prioity to high
- Apply and restart
You have now enabled MSI mode, you should see less microsutters and sometimes higher perfromance. However, cause NVidia is annoying, you will have to do this after every driver update.
also since, the CPU doesn't have to check the GPU and give it instuctions on a fixed cycle, you may also see lower CPU useage. But also GPU ultisation should rise, as the GPU can request further intstuctions as soon as it's done with it's workload, instead of wating on the CPU.
You can also enable MSI mode of other devices, however; some devices may run into some issues due to support not being fully implimented or drivers not supporting MSI mode. So I would recomend giving it a try and disabling it if you run into any issues. DO NOT ENABLE IT FOR DEVICES THAT SAY THEY DON'T HAVE SUPPORT as you could run into issues that could lead into a very unstable system or an unbootable OS.