• Welcome to TechPowerUp Forums, Guest! Please check out our forum guidelines for info related to our community.
  • The forums have been upgraded with support for dark mode. By default it will follow the setting on your system/browser. You may override it by scrolling to the end of the page and clicking the gears icon.

SLI with different cards

Got it. I just don't believe that NV team each time redesigns totally that part(s) of driver which calls for motherboard version.
From the other hand, I thought about permanent fix for good and all future versions and OS's from the side of MoBo and to mod the BIOS to show right version that NV driver will accept as SLI ready.
Just name/version and nothing more.
For instance, I have ASUS P8Z77 V-LX, and if I'll change it to ASUS P8Z77 V-LK , that stupid check will be fooled.
And of course, I don't mean it's easy and can be recommended to the wide audience.

Personally I did not put much effort into understanding how they are validating SLI support (I am pretty sure it's not as simple as checking the ACPI DSDT SLI entry but I could be wrong). However, I can confirm that simply changing the Mobo model will not do the trick. If you want to play around with that idea I would encourage you to set up a VM with GPU passthrough so that you can easily modify the BIOS args that are provided to the OS.

My intuition tells me (or at least this is how I would do it if I were in their shoes) that they might do some hashing with the (MOBO model + some UUID that is agreed upon between NVIDIA and the MOBO vendor) which gets validated at runtime when the driver is initialized.

Overall, my approach was to follow the path of least resistance. Moreover, people can patch the driver themselves and know that their system was not compromised, wherehas if they are running an executable to modify their driver they have no idea what is happening in the background. I know some users would prefer to have it done the easy way but I am a big advocate for transparency. To digress a bit, there's hundreds of thousands of people running torrent based windows pirated version with rootkits and yet they are completely oblivious to it.

As for how it is done. The first time I did indeed trace the functions as @P!nkpanther suggested. After a couple of versions it became easier to find the functions without tracing anything since the byte code does not change by much ; running heuristics it takes 2 minutes to find the location of the target function between two dll's. The original Different-Auto-SLI was done by searching for bitmasks patterns in the .dll; while this works in the short term it fails miserably whenever a new version is released where new bytecode has a slight different structure or different registers are used to perform the OPs (using a relaxed bitmask means that you'll get more than one possible candidate function, making it too strict means it will most likely fail to find the function in the next version release). This is why Different-Auto-SLI had to be manually updated every of couple of driver releases.

If you ask me what would be the way to go in terms of making it future proof for any OS version and easier for everyone to use I would say it's rather trivial. I would host a website on IPFS (InterPlanetary File System) with a javascript app that allows you to upload the DLL, read the version from the header, and then run call graph heuristics to find the byte code to patch. I do not have the time nor interest to work on such project but I would more than happy to contribute in terms of feedback and ideas on how to tackle such task.

P.S: For those of you who keep PM'ing me, do not waste your time - If you have anything to say or ask do it inside this thread otherwise you're not going to get a reply from me.
 
Last edited:
I don't think the MoBo vendor is interested to cooperate with NV to validate it's products for SLI compatibility up to modify for them their own BIOS. Utmost the vendor can point where to check if they pay for SLI certification. But it's only IMHO.
Thanks for advice to use VM for tests, frankly I didn't know that it's possible to simulate GPU pass-through.
 
I don't think the MoBo vendor is interested to cooperate with NV to validate it's products for SLI compatibility up to modify for them their own BIOS. Utmost the vendor can point where to check if they pay for SLI certification. But it's only IMHO.
Thanks for advice to use VM for tests, frankly I didn't know that it's possible to simulate GPU pass-through.

That's wishful thinking. They need to do whatever NVIDIA tells them to, which includes paying NVIDIA a fee for "SLI certification" so that they can use the NVIDIA SLI logo on their marketing/box. When the Mobo vendor refuses to do so there's no SLI support at the driver level and people will end up on this thread just like yourself ;)
 
Hi, i do everything by the guide, i got a dell t3610 win 10 updated, and two gigabyte gtx 970 mini, and a single basic sli connector, and the sli option wont show up. I tried with different driver versions. Thank you! Can somebody help me? Sry for my english.
 
Which guide and which driver(s)?
 
Hello everyone, I'm working hard to make the SLI of the RTX 2080 and GTX 1070 possible.

Before you get started, you will want to check compatibility based on architecture.
In your Windows device manager. Right click on your display adapter and go to properties. Switch to the "Details" tab, and in the combo box select "Hardware Ids."
The first three numbers following "DEV" must match for the cards to work together.

As an example :

NVIDIA_DEV.1185.098A.10DE = "NVIDIA GeForce GTX 660"
NVIDIA_DEV.1185.106F.10DE = "NVIDIA GeForce GTX 760

Unfortunately, the DEV in RTX and the DEV in GTX do not match.
If the architecture is different, is SLI completely impossible? Is there no way?
I have an idea. Change the DEV number by modifying the gpu bios. or, cheat a DEV by using the following methods: http://grimore.org/windows/spoof_hardware_identifiers
Are these ideas really worth trying?
 
Hello everyone, I'm working hard to make the SLI of the RTX 2080 and GTX 1070 possible.
You're wasting your time.
Even if you could make SLI between these cards work, (you can't, since they have different microarchitectures and any cheat to make the driver bypass the check would make the hardware go BSOD), the maximum theoretical performance would only be twice that of the slower card. Which would be about 20% above that of a single 2080 in theory under optimal SLI scaling.
In practice this is not going to happen and you would hardly see any performance increase at all.
 
Last edited:
you can't, since they have different microarchitectures and any cheat to make the driver bypass the check would make the hardware go BSOD

I had the hope that even if the microarchitectures was different, there would be some way. Frankly, even if the performance is only 20% higher than the RTX 2080, I can be fully satisfied with that. However, if SLI is absolutely impossible, I have no choice but to give it up. Thank you for your answer.
 
Yeah, that's the way it works unfortunately. Most of the work is done in hardware, together with some driver magick, so the GPUs have to be VERY similar in order to efficiently share/exchange data.
The only thing that would efficiently combine different GPUs is DX12 explicit multi-GPU, which however is only implemented in very few titles, basically as proof-of-concept. Mainstream titles usually only use implicit mGPU, which is akin to DX11 SLI/CF.
 
That guide should work.
The only difference is that for 4xx drivers you don't patch nvlddmkm.sys (the one that you copied over to the DifferentSLIAuto directory) by running DifferentSLIAuto.exe, but instead use a hex editor to change the bytes at the offsets provided by Pretentious

Which certificates are showing up if you look under 'Digital Signatures' in the properties of the active nvlddmkm.sys in C:\Windows\System32\DriverStore\FileRepository\nv_xxxxx.inf.xxx
Is it nVidia/Microsoft certificates or DifferentSLIauto?
 
Hello after sling 2 gt 710 evrything works nomal but the second GPU is doing nothing and my fps is half pls help .
 
Probably depending on the game. Some games scale badly, even worse than using a single card.
I'd recommend running a benchmark program, which is known to scale well, like Unigine Heaven or Valley, to check what is the best case scaling for your system.
Once you know that maximal potential, every time the scaling is worse, it's due to the game.

No SLI bridge along with only PCI-Express 2.0 x8 does not look promising either, I'm afraid...
 
Last edited:
Maybe this'll help the greater good.

As all of the threads previously stated we're now needing to directly hex edit nvlddmkm.sys to replace a certain bytes, and thus remove the SLI check and enable the thing.

From what I gathered -
What we're looking for in the file is: 84,C0,75,05,0F,BA,6B
And we're replacing it with: C7,43,24,00,00,00,00

Using the following website: https://hexed.it/?hl=en I was able to upload my current version of the driver (441.20) and use the search on the right hand side to search for that pattern of Hexadecimal Values, low and behold I believe it's.

441.20
0x001C80F5: 84 C7
0x001C80F6: C0 43
0x001C80F7: 75 24
0x001C80F8: 05 00
0x001C80F9: 0F 00
0x001C80FA: BA 00
0x001C80FB: 6B 00

tested working!
 
Last edited:
From what I gathered -
What we're looking for in the file is: 84,C0,75,05,0F,BA,6B
And we're replacing it with: C7,43,24,00,00,00,00

Using the following website: https://hexed.it/?hl=en I was able to upload my current version of the driver (441.20) and use the search on the right hand side to search for that pattern of Hexadecimal Values, low and behold I believe it's.
...
tested working!
Things like that may work or may not (= BSOD). Looks like you were lucky this time...

Just as a reminder:
 
Maybe this'll help the greater good.

As all of the threads previously stated we're now needing to directly hex edit nvlddmkm.sys to replace a certain bytes, and thus remove the SLI check and enable the thing.

From what I gathered -
What we're looking for in the file is: 84,C0,75,05,0F,BA,6B
And we're replacing it with: C7,43,24,00,00,00,00

Using the following website: https://hexed.it/?hl=en I was able to upload my current version of the driver (441.20) and use the search on the right hand side to search for that pattern of Hexadecimal Values, low and behold I believe it's.

441.20
0x001C80F5: 84 C7
0x001C80F6: C0 43
0x001C80F7: 75 24
0x001C80F8: 05 00
0x001C80F9: 0F 00
0x001C80FA: BA 00
0x001C80FB: 6B 00

tested working!
It did not work for me. Tried following all instructions for win 10 but did not get the enable sli button, instead the SLI disabled option itself is not showing up.
Pc Specs-
Xeon e5 2689 v1
Chinese X79 plex Hd turbo motherboard
DDR3 Ram-4 sticks-4GB
1Hdd, 1SSD.
Gtx 1070 x2

Hope someone can help me with this
 
Better try something first that is known to work, like driver version 430.86
 
Better try something first that is known to work, like driver version 430.86
Had tried that version already and i got the same results
 
Find out the location of the active nvlddmkm.sys by opening Device Manager → Double click main display adapter → Tab: Driver → Driver Details , then go to that location and check the file's properties about which certificate has been attached. It should read DifferentSLIauto and not nVidia or Microsoft.
On Win 10 the location should be in C:\Windows\System32\DriverStore\FileRepository\ and then within something like nv_dispi.inf_amd64_xxxxxxxxxxxxx
 
Find out the location of the active nvlddmkm.sys by opening Device Manager → Double click main display adapter → Tab: Driver → Driver Details , then go to that location and check the file's properties about which certificate has been attached. It should read DifferentSLIauto and not nVidia or Microsoft.
On Win 10 the location should be in C:\Windows\System32\DriverStore\FileRepository\ and then within something like nv_dispi.inf_amd64_xxxxxxxxxxxxx
The digital certificate definitely reads as DifferentSLIauto
 

Attachments

  • Screenshot_1.png
    Screenshot_1.png
    87 KB · Views: 270
  • Screenshot_2.png
    Screenshot_2.png
    130.8 KB · Views: 279
  • screenshot 3.png
    screenshot 3.png
    93.8 KB · Views: 246
From your screenshots I take it that the install procedure was completed successfully.
So the problem must be with the patching of the driver file itself (nvlddmkm.sys).
Did you just search/replace the pattern or did you go to the offset required per instructions and changed the values?

BTW, you've been providing meaningful information (hardware specs, screenshots) when asking questions, which makes it a lot easier to diagnose. Unfortunately not very common.
 
From your screenshots I take it that the install procedure was completed successfully.
So the problem must be with the patching of the driver file itself (nvlddmkm.sys).
Did you just search/replace the pattern or did you go to the offset required per instructions and changed the values?

BTW, you've been providing meaningful information (hardware specs, screenshots) when asking questions, which makes it a lot easier to diagnose. Unfortunately not very common.
I changed the values of the offsets as per instruction
 
I have twin 1070's and driver version 431.86, old versions of driver disabled sli completely on me. Also do you have an sli bridge installed?
 
On mine sli automatically enabled once the driver was installed, are both cards plugged into power? If so I suspect it might be one of the cards isn't cooperating, maybe try swapping positions, can you post gpu-z screenshot for each card? In the bottom left corner lets you pick between cards, run 2 and take a screenshot of both.
 
Back
Top