Which NVMe Drivers are the best (performance related)?

Introduction:
NVMe is the currently latest and best performing data transfer protocol. That is why users, who want to run their system with the highest possible speed, should buy an NVMe SSD (or more than 1 of them combined as RAID0 array) and install the OS onto it.

On the other hand all NVMe SSD users should keep in mind, that the effective/real performance of such system depends on
a) the size and the model of the NVMe SSD(s),
b) the installed OS,
c) the age/quality of the used mainboard and its PCIe/M.2 connections,
d) the size and quality of the in-use Memory (RAM) modules,
e) the individual BIOS and OS settings (look >here<) and
f) the specific NVMe driver, which is managing the NVMe Controller of the SSD.

Conclusion: Since each system is different, there is no NVMe driver available, which is the best for everyone.


Own Benchmark Comparison Tests:
(last updated: 03/26/2020)
By chance I have currently access to an Intel Z170 chipset and an AMD X570 chipset system. This gave me the opportunity to do some new NVMe driver benchmark comparison tests with both systems.
The time was absolutely favorable, because Microsoft's upcoming Win10 v2004 is already available for the Insiders. So I was able to do the tests with 2 completely different desktop systems running the currently latest Windows OS on different NVMe SSDs using different NVMe drivers.

Test systems:
A. Intel Z170 chipset PC (with Skylake CPU + PCIe 3.0 support) running Win10 x64 Pro v2004, freshly installed onto a 500 GB Samsung 970 EVO Plus NVMe SSD
B. AMD X570 chipset PC (with Ryzen 5 3600 CPU + PCIe 4.0 support) running Win10 x64 v2004, freshly installed onto a 1 TB Sabrent Rocket 4.0 NVMe SSD

Tested NVMe drivers:
  1. latest generic Microsoft in-box NVMe driver 10.0.19041.1 named stornvme.sys dated 12/07/2019 (misleadingly shown as being dated 06/21/2006)
  2. newest original Samsung NVMe driver v3.3.0.2003 WHQL named secnvme.sys dated 01/21/2020 (installation had to be forced for the Sabrent NVMe Controller)
  3. newest generic Samsung NVMe driver v3.3.0.2003 WHQL named secnvme.sys dated 01/21/2020, mod+signed by me on 03/26/2020
  4. old generic Samsung NVMe driver v2.0.8.1611 named nvme.sys dated 11/15/2016, mod+signed by me on 11/10/2019
  5. latest Intel RST driver v17.8.1.1066 WHQL named iaStorAC.sys dated 12/20/2019 (installation had to be forced for both systems by using the iaStorAC.inf and choosing "Intel NVMe Controller")
  6. latest Intel NVMe driver v4.4.0.1003 WHQL named IaNVMe.sys dated 05/16/2019 (installation had to be forced for both systems)
  7. latest generic OpenFabrics Alliance (OFA) NVMe driver v1.5.0.0 renamed to ofnvme.sys dated 04/07/2017, mod+signed by me on 09/08/2019


Here are the pictures showing the related benchmark results:

a) Generic MS in-box NVMe driver v10.0.19041.1:
(left/upper Pic: Z170 PC with Samsung 970 EVO Plus, right/lower Pic: AMD X570 PC with Sabrent Rocket 4.0)

[[File:Z170-500GB970EVOPLUS-NVMe-STORNVME-PCIe-2004.png|none|500px]][[File:Anvil-X570-1TBSabrent4.0-NVMe-MSinboxSTORNVME-M2-20H1.png|none|500px]]



b) Specific Samsung NVMe driver v3.3.0.2003 WHQL:
(left/upper Pic: Z170 PC with Samsung 970 EVO Plus, right/lower Pic: AMD X570 PC with Sabrent Rocket 4.0)

[[File:Z170-500GB970EVOPLUS-NVMe-Samsung3302003-PCIe-2004.png|none|500px]][[File:Anvil-X570-1TBSabrent4.0-NVMe-Samsung3302003-M2-20H1.png|none|500px]]



c) Generic Samsung NVMe driver v3.3.0.2003 mod+signed by me:
(left/upper Pic: Z170 PC with Samsung 970 EVO Plus, right/lower Pic: AMD X570 PC with Sabrent Rocket 4.0)

[[File:Z170-500GB970EVOPLUS-NVMe-gener.Samsung3302003-PCIe-2004.png|none|500px]][[File:Anvil-X570-1TBSabrent4.0-NVMe-gener.Samsung3302003-M2-20H1_Pic2.png|none|500px]]



d) Generic Samsung NVMe driver v2.0.8.1611 mod+signed by me:
(left/upper Pic: Z170 PC with Samsung 970 EVO Plus, right/lower Pic: AMD X570 PC with Sabrent Rocket 4.0)

[[File:Z170-500GB970EVOPLUS-NVMe-gener.Samsung2081611-PCIe-2004.png|none|500px]][[File:Anvil-X570-1TBSabrent4.0-NVMe-gen.Samsung2081611-M2-20H1.png|none|500px]]



e) Intel RST NVMe driver v17.8.1.1066 WHQL:
(left/upper Pic: Z170 PC with Samsung 970 EVO Plus, right/lower Pic: AMD X570 PC with Sabrent Rocket 4.0)

[[File:Z170-500GB970EVOPLUS-NVMe-IntelRST17811066-PCIe-2004.png|none|500px]][[File:Anvil-X570-1TBSabrent4.0-NVMe-Intel17811066-M2-20H1.png|none|500px]]



f) Intel NVMe driver v4.4.0.1003 WHQL:
(left/upper Pic: Z170 PC with Samsung 970 EVO Plus, right/lower Pic: AMD X570 PC with Sabrent Rocket 4.0)

[[File:Z170-500GB970EVOPLUS-NVMe-Intel4401003-PCIe-2004.png|none|500px]][[File:Anvil-X570-1TBSabrent4.0-NVMe-Intel4401003-M2-20H1.png|none|500px]]



g) Generic OFA NVMe driver v1.5.0.0 mod+signed by me:
(left/upper Pic: Z170 PC with Samsung 970 EVO Plus, right/lower Pic: AMD X570 PC with Sabrent Rocket 4.0)

[[File:Z170-500GB970EVOPLUS-NVMe-OFA1500ms-PCIe-2004.png|none|500px]]

Remarks:
  • Surprisingly it was no problem to get the latest WHQL certified Samsung and Intel NVMe drivers installed onto the NVMe Controller of my non-Samsung/Intel SSD. The installation had to be forced and the warning disregarded, that the target device (here: the specific NVMe Controller) may not be supported by the driver.
    Tip: Users, who want to try such driver, which doesn't support the HardwareIDs of the NVMe Controller, should set a Restore Point before starting the installation!
  • The performance of the mod+signed OFA NVMe driver v1.5.0.0 couldn't been tested with the AMD X570 system and its Sabrent Rocket 4.0 SSD, because after the successful driver instaIlation I was not able boot into the OS. Until now I do not know the exact reason for the failure. If I should ever be able to solve this issue, I will add the missing test results.
  • To get rather similar conditions for the benchmark tests, I always had chosen the following settings:
    a) Energy Options: "Highest Performance"
    b) Device Manager: Both "Policies" caching options of the NVMe SSD were enabled.
    c) BIOS: "Fast Boot" and "Secure Boot" options were disabled.


Evaluation of the Results:
    
    
  1. All 5 tested NVMe drivers (except the OFA one running on the AMD X570 chipset system) gave my 2 test systems a very good performance. The differences may not even be noticeable by the users while doing their daily work.
  2. Nevertheless the benchmark results were quite different, which verifies, that the performance depends on the specific system, the specific NVMe SSD model and the in-use NVMe driver.
  3. The overall performance winner were
    a) the original Samsung NVMe driver v3.3.0.2003 WHQL
    (for my Intel system with a Samsung SSD) and
    b) the generic mod+signed Samsung NVMe driver v3.3.0.2003 (for my AMD system with a non-Samsung SSD),
    whereas the generic MS Win10 in-box NVMe driver and the Intel RST driver v17.8.1.1066 gave both systems the lowest benchmark scores.
  4. For unknown reasons I was not able to get the mod+signed generic OFA driver v1.5.0.0 properly working with my AMD X570 system. Contrary to my previously published NVMe benchmark results the OFA NVMe driver was now not even the best performant one while running on my Intel Z170 chipset system.


Good luck with these NVMe drivers!
Dieter

So, best performace is with OFA drivers, but they don’t support TRIM command (just in raid?).
I can’t find the link for your modded OFA drivers, anyway…

@gpvecchi :
Please have a look into the just updated start post.
Here is my comment to your statement:
1. The 32/64bit OFA NVMe drivers v1.5.0.0, which have been mod+signed by me, definitively do support TRIM, but I don’t know, whether the TRIM command passes through the NVMe Controller of a RAID array.
2. You cannot find yet the download links to the winner of my benchmark comparison test, because I don’t want to recommend a driver, which prevents the normal shut-down of the computer.

Thanks for your testing and comparison here Fernando! Driver causing unable to shut down via start menu power button? That is new one! Did you reproduce that issue on another motherboard/BIOS/OS install, to rule out some quirk in that specific setup?

@Lost_N_BIOS :
Yes, that is an interesting behaviour of the OFA driver while running Win10 v1809.
Today I followed your advice and tested the same NVMe drivers with my Xiaomi Notebook, which uses a 256 GB Samsung PM961 as system drive. These tests were done before (running Win10 v1803) and after a clean install of Win10 v1809 (Build 17763.1). The installation of the mod+signed OFA driver v1.5.0.0 went flawlessly with both Win10 versions, but the behaviour thereafter was different:

  • A. While running Win10 v1803 I had no problems to shut down from within Windows, but I ran again (as some weeks ago with my PC) into a reboot problem (“Automatic Repair” option started, but failed).
    Solution: “Advanced Start Options” > F7 (Disable Driver Signature Enforcement).
  • B. While running Win10 v1809 there was no problem to reboot (no “Automatic Repair”), but I was unable to shut down my notebook from within Windows (absolutely identical with my normal PC and its Samsung 970 EVO SSD).
    Solution: I had to hit the power-off button of my notebook.

By the way: I got interesting benchmark results with my notebook, which I will publish this evening.

That is very unusual for a driver to be able to cause that, I wonder why/how it’s doing that? Especially since you said the “OFA team didn’t do much more than to change a little bit the code of the MS NVMe driver”, how is this causing issue, and how is this small change giving much better performance results too?
Maybe you will eventually figure out the issue? What if you don’t mod+sign the driver, does the shut down issue happen?

@all:
Today (09/20/2018) I have completely updated the start post of this thread.
Changelog:

  • new: Test results with my Xiaomi Notebook running Win10 x64 on a 256 GB Samsung PM961 NVMe SSD

Any feedback is welcome!

Regards
Fernando


@Lost_N_BIOS :
Yes, it s hard to believe what I found out regarding the impact of the mod+signed OFA NVMe drivers v1.5.0.0 on the Windows reboot and shut-down procedure.
Most interesting is the fact, that Win10 v1803 obviously responds to that driver completely else than the upcoming Win10 v1809.

You can be sure, that I will continue my tests trying to find out the exact reason for this extraordinary reaction of the Windows OS.

Sometimes my Samsung drivers have same behaviour: PC doesn’t turn off. This usually happens when rebooting, not when turning off. IDK if this can help, but after force the stop, I am prompted to enter bios, like a failed overclock.

This is what I just have tested:
I took the original OFA driver v1.5.0.0 for Win10 x64 dated 04/07/2017, just removed the associated (not valid) *.cat file without touching the other files and gave them a correct digital signature (to be able to get it properly installed).
Result: I was not able to shut-down my PC from within Windows.
Conclusion: It is neither my modification of the *.inf file nor the renaming of the original driver files, which causes the shut-down problem.
I suspect, that it is an issue of the Win10 Build 17763.1.

So a general incompatibility with the Win10 build and the OFA driver no matter how it’s used. I guess that means both MS and OFA will have to be notified to look into that one.

@Lost_N_BIOS :
I will do that after having more information about the exact reason for my reported issues while using the OFA NVMe driver.

@all Win10 x64 users with an NVMe SSD as system drive:
You are all invited to help by testing the OFA driver variants and give us your feedback thereafter.
The download links to the original 64bit OFA NVMe driver v1.5.0.0 for Win10 x64 and to the variant, which has been mod+signed by me, are now available within the start post.

Good luck and thanks in advance!

i have samsung pm981… better with OFA NVME driver???

@boremc :
Welcome to the Win-RAID Forum!

It depends on the environment of your computer/notebook (e.g. the chipset and the OS.
Why don’t you do a benchmark comparison test yourself and report here about your results?

Regards
Dieter (alias Fernando)

Hi Fernando,

I have a PM961 and want to give the Intel ones ago (am on a HM175 mobo) and trying to install through the INF / Device Manager method, I get a few options, after choosing istorAC.inf , it does two, Intel RST and Intel NVME driver, when I select the NVME driver it shows a popup stating Windows can’t verify it’s compatibility blabla and that it could cause malfunction, that’s expected to popup right?

Yes, I got this popup as well. Just ignore it and continue the installation. It will work.
To prevent any problem, I recommend to set a restore point before starting the driver installation.

Hi there fernando hope you are doing well mate! I have an oem samsung mzvlw128hegr-00l2 nvme ssd. My system is a lenovo y520 laptop and O currently have microsoft drivers from 2006 installed for the drive. I have searched for hour trying to find the right driver and have tried a few but i get the prompt that the best drivers are already installed when trying to do it through device manager. FYI im running win 10 64bit OS. Much appreciated and look forward to hearing from you :slight_smile:

@isameking12 :
Welcome to the Win-RAID Forum!

Here is my comment:
1. The Win10 in-box MS drivers are misleadingly dated, but are as new as the OS itself.
2. When you want to update the NVMe driver from within the Device Manager, you should not try to update the driver for the SSD itself (listed within the section “Disk drives”), but of the NVMe Controller (listed within the section “Storage Controllers”).

Good luck!
Dieter (alias Fernando)

Many thanks for the quick reply i appreciate the time you take to help. Thanks for clearing that up for me, now that I know how to install correctly would you be able to direct me to the correct driver?

Yes, if you post the HardwareIDs of your SSD’s NVMe Controller (right-click onto it > “Properties” > “Details” > “Property” > “HardwareIDs”).

i have attached a screencap of the hardwareid’s section within the nvme controller

hardwareid.PNG