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:
- 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)
- 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)
- 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
- old generic Samsung NVMe driver v2.0.8.1611 named nvme.sys dated 11/15/2016, mod+signed by me on 11/10/2019
- 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")
- latest Intel NVMe driver v4.4.0.1003 WHQL named IaNVMe.sys dated 05/16/2019 (installation had to be forced for both systems)
- 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:
- 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.
- 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.
-
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. - 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
