Which NVMe Drivers are the best (performance related)?

@AbsoluteZero :
As stated already within another thread, I would choose the "Variant B".There is no reason to believe, that the generic MS NVMe driver has a negative impact on the function of the Samsung NVMe driver. Only one of the chosen NVMe drivers will be in-use.
Once the OS Win7 is up and running, I recommend to install the "pure" Samsung NVMe driver manually by updating the driver of the NVMe Controller (listed within the "Storage Controllers" section) instead of executing the *.exe file of the related Samsung NVMe Driver Installer Set.

Today Iā€™m working on a friends pc and put in a western digital 1TB Blue M2 ssd in it.I am not too familiar with this company and wonder do they provide a NVME driver like Samsung does for their M2 ssdā€™s or do you just use the stock windows Microsoft Storage Spaces Controller for itā€¦

@NIK1 :
You will find the answer to your question within the first 2 posts of >this< thread.

The in-box MS drivers named spaceport.sys and spacedump.sys are managing the "Storage spaces" of all NVMe disk drives, but not the function of the NVMe Controller, which is within the NVMe SSD.
Conclusion: The user of an NVMe SSD can only update/change the driver of the NVMe Controller. The MS drivers of the "Storage Spaces Controller" cannot be replaced by any other driver.

Glad I stumbled across this thread as Iā€™m going to try some of the modded Samsung NVME drivers for my 960 and 970 1TB EVOs.

I used to use the Samsung NVME driver (3.0 - 3.3) until for some strange reason, I believe after a Windows update, I noticed significant stutter during disk access. Uninstalling the driver and using MSā€™s standard one seemed to mitigate/resolve the issue.

Has anyone experienced something similar?

Iā€™m running an 8700k on a Maximus X Hero WiFi.
System is quite tuned and OCā€™d.

Where are the DL links?


In the appropriate thread, if only you first looked for itā€¦
This one being only results wise.

Last time I tried custom NVMe drivers, it didnā€™t work out too well. Stock is fast enough that there should be no noticeable difference between these.


Whatā€™s your setup? What happened when you tried?

Hello, I have a Corsair MP600 2TB running on a X570 Asus board on Win10. After reading here I am wondering if I should use a specific / modded NMVE driver to increase the performance. As I use no raid, it is still uncelar to me whether it makes sense to install AMD NVME drivers?

My system runs 24/7 and should be realiable. But as performance is important and I am reading /writing small files there might be some advances in using other that the microsoft drivers? Currently I reach 19430 on Anvils Test. 7700 Read and 11730 Writeā€¦

Corsair SSD Anvil.png



thanks, Andreas

@Lantama : Welcome to the Win-RAID Forum!

Yes, compared to the benchmark scores you got while using the Win10 in-box MS NVMe driver you cannot expect a remarkable or even a noticeable peformance boost, if you would change the NVMe driver.
Nevertheless it may be a good idea to test the mod+signed generic Samsung NVMe driver v3.3.0.2003, which you can find within the second post of >this< thread. Donā€™t forget to set a ā€œRestore Pointā€ and to import the Win-RAID CA Certificate before you are going to install the driver.
I have tested and compared both NVMe drivers (the MS and the Samsung one) with my AMD X570 chipset system while running Win10 x64 on 2 different PCIe 4.0 supporting NVMe SSDs and got better scores with the Samsung driver.

Here are my benchmark test results (left Pics: MS STORNVME driver, right Pics: Samsungā€™s SECNVME driver):
a) 1 TB Sabrent Rocket 4.0:

Anvil-X570-1TBSabrent4.0-NVMe-MSinboxSTORNVME-M2-20H1.png

Anvil-X570-1TBSabrent4.0-NVMe-genSamsung3302003-M2-20H1.png



b) 500 GB Samsung 980 PRO:

Anvil-AMDX570-500GBSamsung980Pro-STORNVME.png

Anvil-AMDX570-500GBSamsung980Pro-Samsung3302003WHQL.png



By the way: The AMD NVMe driver is only suitable for an NVMe RAID array.

Enjoy the Forum and the performance of your PC!
Dieter (alias Fernando)

there is a Phison NVMe driver available

They are providing firmware for their products (through PNY Drive Utility) as far as i can tell.but i could not find any drivers on their website

@Black6spdZ :

Such information is not really useful without naming the source. Please give us the link, if you have any news regarding NVMe storage drivers.

i stumbled across it in this file http://vlo.name:3000/tmph/phison_nvme_flash_id2.rar it shows increases on my e12 e12s and e16 drives

i have seen http://vlo.name:3000/ssdtool/ before while looking for nvme driver you have mentioned.they are mostly flashing tools and firmwares

see this though;Phison nvme flash id2 (for E8,E12,E13,E16,E18?,E19?,S12,S13) Phison NVMe 1.2 Storport Miniport

;
; Installation inf for the NVME Miniport
;

[Version]
Signature="$Windows NT$ā€œ
Provider=%COMM%
ClassGUID={4D36E97B-E325-11CE-BFC1-08002BE10318}
Class=SCSIAdapter
DriverVer = 02/23/2018,1.5.0.0
CatalogFile = nvme64.cat
;CatalogFile.NTAMD64 = nvme64.cat
;CatalogFile.NTx86 = nvme86.cat

[PackageInfo]
Name=NVMe

[Manufacturer]
%COMM% = COMM, NTamd64, NTx86

[SourceDisksNames]
1 = %DiskId1%,ā€"

[DestinationDirs]
DefaultDestDir = 12

[nvme_Service_Inst]
ServiceType = %SERVICE_KERNEL_DRIVER%
StartType = %SERVICE_BOOT_START%
ErrorControl = %SERVICE_ERROR_NORMAL%
ServiceBinary = %12%\nvme.sys
LoadOrderGroup = SCSI miniport
AddReg = pnpsafe_pci_addreg
AddReg = Parameters

[nvme_EventLog_Inst]
AddReg = nvme_EventLog_AddReg

[nvme_EventLog_AddReg]
HKR,EventMessageFile,%REG_EXPAND_SZ%,"%%SystemRoot%%\System32\IoLogMsg.dll"
HKR,TypesSupported,%REG_DWORD%,7

[pnpsafe_pci_addreg]
HKR, ā€œParameters\PnpInterfaceā€, ā€œ5ā€, %REG_DWORD%, 0x00000001
HKR, ā€œParametersā€, ā€œBusTypeā€, %REG_DWORD%, 0x00000011

[msi_addreg]
HKR, Interrupt Management, 0x00000010
HKR, Interrupt Management\MessageSignaledInterruptProperties, 0x00000010
HKR, Interrupt Management\MessageSignaledInterruptProperties, MSISupported, %REG_DWORD%, 1
HKR, Interrupt Management\MessageSignaledInterruptProperties, MessageNumberLimit, %REG_DWORD%, 120
HKR, Interrupt Management\Affinity Policy, 0x00000010
HKR, Interrupt Management\Affinity Policy, DevicePolicy, %REG_DWORD%, 5 ;IrqPolicySpreadMessagesAcrossAllProcessors
HKR, Interrupt Management\Affinity Policy, DevicePriority, %REG_DWORD%, 3
HKR, Interrupt Management\Affinity Policy, GroupPolicy, %REG_DWORD%, 1

[Parameters]
HKR, Parameters\Device, Namespaces, %REG_DWORD%, 0x00000010 ; max number of namespaces supported
HKR, Parameters\Device, MaxTXSize, %REG_DWORD%, 0x00020000 ; max trasnfer size
HKR, Parameters\Device, AdQEntries, %REG_DWORD%, 0x00000080 ; admin queue size (num of entries)
HKR, Parameters\Device, IoQEntries, %REG_DWORD%, 0x00000400 ; IO queue size (num of entries)
HKR, Parameters\Device, IntCoalescingTime, %REG_DWORD%, 0x00000000 ; time threshold for INT coalescing
HKR, Parameters\Device, IntCoalescingEntries, %REG_DWORD%, 0x00000000 ; # of entries threadhold for INT coalescing

;
;

;
32-BIT X86 ARCHITECTURE
;

;
This section specifies the 32-bit architecture specific INF file entries
;
required to install a driver as a 32-bit compatible driver.
;

;

[SourceDisksFiles.x86]
nvme.sys = 1,

[COMM.NTx86]
%COMMNvme.DeviceDesc% = nvme_inst, PCI\CC_010802
;%COMMNvmeChat.DeviceDesc% = nvme_inst, PCI\VEN_1987&CC_010802

[nvme_inst.ntx86]
[email protected]

[nvme_inst.ntx86.HW]
AddReg = msi_addreg

[nvme_inst.ntx86.Services]
AddService = nvme, 0x00000002 , nvme_Service_Inst, nvme_EventLog_Inst


;

;

;
64-BIT X86 ARCHITECTURE
;

;
This section specifies the 64-bit architecture specific INF file entries
;
required to install a driver as a 64-bit compatible driver.
;

;
************

[SourceDisksFiles.amd64]
nvme.sys = 1,

[COMM.NTamd64]
%COMMNvme.DeviceDesc% = nvme_inst, PCI\CC_010802
;%COMMNvmeChat.DeviceDesc% = nvme_inst, PCI\VEN_1987&CC_010802

[nvme_inst.NTamd64]
[email protected]

[nvme_inst.NTamd64.HW]
AddReg = msi_addreg

[nvme_inst.NTamd64.Services]
AddService = nvme, 0x00000002 , nvme_Service_Inst, nvme_EventLog_Inst


[Strings]
;
; Localizable Strings
;
diskId1 = "NVMe Installation Disk"
CommNvme.DeviceDesc = "Phison NVMe 1.2 Storport Miniport"
COMM = ā€œPhison Electronics Corporationā€

;
; Non-Localizable Strings
;

REG_EXPAND_SZ = 0x00020000
REG_DWORD = 0x00010001
SERVICE_KERNEL_DRIVER = 1
SERVICE_BOOT_START = 0
SERVICE_ERROR_NORMAL = 1

its OFA,website traced back to VeriSign (inactive)

@Black6spdZ : Thank you very much for your find. This is the first Phison NVMe driver I have ever seen and - as already mentioned by @onuracengiz - seems to be a disguised Samsung/OFA driver.
Very interesting is the fact, that this generic Phison driver has gotten the WHQL stamp from Microsoft, which may make it usable with all NVMe SSDs even from scratch (integrated into the OS Image).

After having read this, I was so curious about the performance of the Phison NVMe driver in combination with a Samsung NVMe, that I started immediately a benchmark comparison test.
My test system: AMD X570 chipset mainboard, System Drive: 500 GB Samsung 970 EVO Plus, OS: Win10 x64 Pro IP Build 21313
Tested NVMe drivers:
1. generic Win10 in-box MS NVMe driver named STORNVME v10.0.21313.1000 dated 02/10/2021 (shown as being dated 06/21/2006)
2. specific Samsung NVMe driver v3.3.0.2003 WHQL dated 01/21/2020
3. generic Phison NVMe driver v1.5.0.0 WHQL dated 02/23/2018

Here are the benchmark results I got (left Pic: MS driver, middle Pic: Samsung driver, right Pic: Phison driver):

Thanks for the run fernando
I was expecting something close,but this was a surprise

Here is what I can contribute. Rocket4 1TB on a Gen3 bus:

Using MS driver with out of the box 512b sect:
------------------------------------------------------------------------------
CrystalDiskMark 7.0.0 x64 (C) 2007-2019 hiyohiyo
Crystal Dew World: https://crystalmark.info/
------------------------------------------------------------------------------
* MB/s = 1,000,000 bytes/s [SATA/600 = 600,000,000 bytes/s]
* KB = 1000 bytes, KiB = 1024 bytes

[Read]
Sequential 1MiB (Q= 8, T= 1): 3461.882 MB/s [ 3301.5 IOPS] < 2413.71 us>
Sequential 1MiB (Q= 1, T= 1): 2088.654 MB/s [ 1991.9 IOPS] < 500.50 us>
Random 4KiB (Q= 32, T=16): 876.434 MB/s [ 213973.1 IOPS] < 2304.29 us>
Random 4KiB (Q= 1, T= 1): 33.269 MB/s [ 8122.3 IOPS] < 121.60 us>
[Write]
Sequential 1MiB (Q= 8, T= 1): 3466.669 MB/s [ 3306.1 IOPS] < 2410.81 us>
Sequential 1MiB (Q= 1, T= 1): 2400.829 MB/s [ 2289.6 IOPS] < 435.19 us>
Random 4KiB (Q= 32, T=16): 864.738 MB/s [ 211117.7 IOPS] < 2335.03 us>
Random 4KiB (Q= 1, T= 1): 70.598 MB/s [ 17235.8 IOPS] < 56.80 us>
Profile: Default
Test: 1 GiB (x5) [Interval: 5 sec] <DefaultAffinity=DISABLED>
Date: 2021/02/15 5:22:27
OS: Windows 10 Professional [10.0 Build 19042] (x64)
Comment: Rocket4 1TB fw RKT401.3

using MS driver after using sabrent sector resize util and switching to 4k:
[Read]
Sequential 1MiB (Q= 8, T= 1): 3462.996 MB/s [ 3302.6 IOPS] < 2417.03 us>
Sequential 1MiB (Q= 1, T= 1): 2115.237 MB/s [ 2017.2 IOPS] < 494.20 us>
Random 4KiB (Q= 32, T=16): 891.452 MB/s [ 217639.6 IOPS] < 2265.44 us>
Random 4KiB (Q= 1, T= 1): 35.721 MB/s [ 8720.9 IOPS] < 113.10 us>
[Write]
Sequential 1MiB (Q= 8, T= 1): 3359.018 MB/s [ 3203.4 IOPS] < 2486.71 us>
Sequential 1MiB (Q= 1, T= 1): 2355.268 MB/s [ 2246.2 IOPS] < 443.64 us>
Random 4KiB (Q= 32, T=16): 879.485 MB/s [ 214718.0 IOPS] < 2296.17 us>
Random 4KiB (Q= 1, T= 1): 71.204 MB/s [ 17383.8 IOPS] < 56.26 us>
Profile: Default
Test: 1 GiB (x5) [Interval: 5 sec] <DefaultAffinity=DISABLED>
Date: 2021/02/15 6:15:55
OS: Windows 10 Professional [10.0 Build 19042] (x64)
Comment: Rocket4 1TB fw RKT401.3 4k sect

now Phison driver with 4k sect:
[Read]
Sequential 1MiB (Q= 8, T= 1): 3479.667 MB/s [ 3318.5 IOPS] < 2404.97 us>
Sequential 1MiB (Q= 1, T= 1): 2341.667 MB/s [ 2233.2 IOPS] < 446.58 us>
Random 4KiB (Q= 32, T=16): 827.332 MB/s [ 201985.4 IOPS] < 2442.88 us>
Random 4KiB (Q= 1, T= 1): 37.452 MB/s [ 9143.6 IOPS] < 108.14 us>
[Write]
Sequential 1MiB (Q= 8, T= 1): 3452.475 MB/s [ 3292.5 IOPS] < 2413.93 us>
Sequential 1MiB (Q= 1, T= 1): 2689.590 MB/s [ 2565.0 IOPS] < 388.62 us>
Random 4KiB (Q= 32, T=16): 847.187 MB/s [ 206832.8 IOPS] < 2384.38 us>
Random 4KiB (Q= 1, T= 1): 85.152 MB/s [ 20789.1 IOPS] < 46.86 us>
Profile: Default
Test: 1 GiB (x5) [Interval: 5 sec] <DefaultAffinity=DISABLED>
Date: 2021/02/15 8:38:08
OS: Windows 10 Professional [10.0 Build 19042] (x64)
Comment: Rocket4 1TB fw RKT401.3 4k sect Phison NVMe drv


EDIT by Fernando: For better readability and to save space I have put the details into ā€œspoilersā€.

After having done today a clean install of Win10, I was able to do some additional benchmark tests.

Test System:
Chipset: AMD X570 (supports PCIe 4.0)
in-use System Drive: 1 TB Sabrent Rocket 4.0 NVMe SSD (supports PCIe 4.0), free space: 847 GB
in-use Storage Drive: 1 TB SanDisk Ultra 3D NVMe SSD (supports PCIe 3.0), free space: 693 GB
OS: Win10 x64 Pro v21H1 (Build 19043.844)

Tested NVMe drivers:
1. generic Win10 in-box MS NVMe driver named STORNVME v10.0.19041.844 dated 02/10/2021 (shown as being dated 06/21/2006)
2. mod+signed generic Samsung NVMe driver v3.3.0.2003 dated 01/21/2020
3. generic Phison NVMe driver v1.5.0.0 WHQL dated 02/23/2018

Here are the benchmark results I got:

1. Tests with a 1 TB Sabrent Rocket 4.0 SSD (as System Drive):
(left Pic: MS driver, middle Pic: Samsung driver, right Pic: Phison driver)

Anvil-X570-1TBSabrent4.0-NVMe-MSinboxSTORNVME-M2-21H1.png

Anvil-X570-1TBSabrent4.0-NVMe-genSamsung3302003-M2-21H1.png

Anvil-X570-1TBSabrent4.0-NVMe-genPhison1500-M2-21H1.png



2. Tests with a 1 TB SanDisk Ultra 3D SSD (as Storage Drive):
(left Pic: MS driver, middle Pic: Samsung driver, right Pic: Phison driver)

Anvil-X570-1TBSanDisk-NVMe-MSinboxSTORNVME-M2-21H1.png

Anvil-X570-1TBSanDisk-NVMe-genSamsung3302003-M2-21H1_Pic2.png

Anvil-X570-1TBSanDisk-NVMe-Phison1500-M2-21H1.png



Evaluation of my test results:

  1. Most interesting for me: The results I got while testing 2 similar sized, but otherwise completely different non-Samsung NVMe SSDs were quite different.
  2. The test results I got with the Sabrent Rocket 4.0 were absolutely clear: The performance winner was again the Samsung NVMe driver v3.3.0.2003 (Note: This time I used the mod+signed generic variant and not the specific WHQL driver). The other 2 tested NVMe drivers gave me rather similar scores, but were less performant than the Samsung one.
  3. Due to the extremely good WRITE scores the Win10 in-box NVMe driver was the speed winner for the SanDisk Ultra 3D SSD. The generic Phison driver got the silver medal and was clear better performant than the Samsung NVMe driver.
  4. Summary: It is not the NVMe driver alone, which determines the performance of an NVMe SSD. Each NVMe Controller may have its own ā€œbestā€ NVMe driver.


Or rather, depending of the Controller they have.