Which NVMe Drivers are the best (performance related)?

Crucial_P5-2Tb_PCI-e_3.0x4_Micron_2.19_Momentum_X570_Win11

@iRX
Thanks for your extended tests (it would have been even better for the Forum visitors, if you would have put them all into the same post).
What is your conclusion regarding the result of your various benchmark tests?

Fernando, I have tried installing the modded generic Samsung NVME driver for my 990 Pro.
The results are tremendous, crystalbenchmark RND4K Q32T16 is a lot better and I get +50 AVG fps in CS2.
However, whenever I restart the system it fails to boot and keeps spinning on the motherboard screen, resulting in me having to repair the system.
This in turn resets the NVME controller back to the Windows 10 standard microsoft ones.
Have you heard of this issue before and is there a fix?
I have installed the certificate accordingly beforehand.

Thanks!

@BlockBoys
Welcome to the Win-Raid Forum and thanks for your input!

No, I didn’t have such problem and never heard about it.
You can try to solve this problem by forcing the installation of the original WHQL signed Samsung NVMe driver (you have to use the “Have Disk” button and to navigate to the related original driver folder). Although the HardwareIDs of your on-board NVMe Controller is natively not supported by the original driver, it will work flawlesssly and the WHQL stamp will be shown by the Device Manager. I have tried it very often successfully.
Good luck!

I tried the Phison driver and it also didnt work. Same endless spinning on MOBO screen and startup repair defaults back to the standard NVME drivers. Only the standard NVME driver seems to work. I’m on W10 and AMD 5800x3D, I don’t seem to have this ‘Have Disk’ button available when updating the drivers :frowning:
image

Edit: I found the Have disk Button, going to attempt it now.


is this the correct way? could not upload image in last post

Yes! You will get a warning, that the driver may not work with your NVMe Controller, but it definitely does.

Hey Fernando was wondering if there is a updated drivers or whats the best one or not as seems samsung doesnt do drivers for the 980 and 990 pro 2tb for some weird reason…

@Musashi
The Samsung NVMe drivers 3.3.0.2003 are running fine with all Samsung NVMe SSDs (even for those, whose specific NVMe Controller is not listed within the related *.INF file).
Solution: You have to force the installation by using the options “Browse my computer” > “Let me pick…”. Then press the “Have Disk” button, navigate to the desired driver files, disregard the warning and then press “OK”.
Tip: Before you start with the replacement or update of any “Storage Controller” driver, it is a good idea to set a “Restore Point” via Control Panel. This will give you at any time the option to recover your currently storage driver configuration even in case of an unbootable system.

Important update for Windows 11 and newer SSD relating DirectStorage

DirectStorage may not work when you use other NVM drivers besides Windows 11 generic one! You can test it with BulkLoadDemo. At least the latest Intel NVMe driver (Legacy folder of intel_rst_18.7.7.1013.1 from station-drivers) which needs to be forced via iastorac.inf shows DirectStorage support.

Check DirectStorage support: Win + G → Settings (gear symbol) → Gaming functions.


Very good random read performance with Samsung NVMe driver (even forced on non Samsung SSD)

At least for random read/write performance i get the best performance with Samsung NVMe driver (forced for my WD black via device manager).

CrystalDiskMark shows whopping 94 MB/s read performance RND4K Q1T1 (Real World profile).

With every other driver I get 92 MB/s at max.


Host Memory Buffer in dram-less SSD increases sequential single thread read performance

What is even more interesting is sequential read speed.

A good test is SEQ1M Q1T1 performance in CrystalDiskMark (Real World profile). The PCI bandwidth for the link should not be saturated here. The read performance is more limited by how the controller handles single thread one queue reads/writes.

Sadly only the Windows 11 NVMe driver aka stornvme brings me more than 4,500 M/s reliable read performance while other drivers only go up to 3,200 MB/s for SEQ1M Q1T1 or are fluctuating much. I have a theory why it is so low.


About HMB and the december bluescreen distaster on Windows 11 for WD SSDs (fixed!)

My WD SN770 is a dram-less SSD which uses HMB (can be verified via VLO’s nvme-hmb), up to 200 MB. A firmware update was needed prior for the SSD because there were bluescreens when booting with HMB more than 64 MB. HMB is used as a cache to to store FTL mapping table, relating to tens of gigabytes of storage.


No influence on random 4K read performance with/without HMB

HMB doesn’t affect 4K performance for me, i tested it via HMBAllocationPolicy 0 in registry. But the biggest difference is the sequential Q1T1 read performance.

With HMB and stornvme I get 4,500 to 4,800 MB/s in single thread one queue depth read performance, very good for a affordable dram-less PCI Gen 4 card.

1 Like

@Girofox
Thank you very much for your interesting report.
It would be nice, if you could add some pictures showing your benchmark results.

1 Like

Glad i can help! I added some line breaks and resized the images.

Meanwhile i found another factor affecting performance.


The Samsung NVMe drivers behaves weirdly (at least for non Samsung SSD) with fluctuating and unstable read performance.

More specific: the Samsung specific SEC NVMe Idle Timeout has big influence on results.

The default 200 ms seems too low and causes bad random read performance and fluctuating sequential reads. I changed it to 500 ms a got fully stable benchmarks.

This setting is hidden but can be modified and set unhide via powersettingsexplorer.


Now the Samsung driver is extremely good, even for sequential read performance!

And this is for a non Samsung SSD btw.
I don’t know why the Windows driver can’t get that high random read performance.

No clue if HMB is even on! At least nvme-hmb.exe reports that it is off, weird.


You can try setting SEC NVMe Idle Timeout to 0 to fully disable lower power states and get optimal latency and random performance at the cost of higher idle temperature.

This doesn’t mean that the SSD is always in highest power mode but in the highest operational non-idle power mode. HWinfo64 shows controller and composite temperature for the SSD accurately.


The various APST settings in powersettingsexplorer are only for RAID mode in BIOS, when you have IastorVD as controller driver. That is a whole other topic though, and for a single NVMe i get way worse sequential performance because of missing HMB support.


Important note regarding SSD idle temperature and ASPM

When you set NVMe Idle Timeout too high or to 0 (means off), the SSD temperature can get very high in CrystalDiskmark. Idle controller temperature often stays at 70 C without ASPM.

You should keep ASPM on in bios and Windows power settings, without ASPM M2 SSD temps get way too high. With ASPM enabled my SSD controller stays under 60 while idle and SSD general temp under 40 C.


For the Windows NVMe driver there is a similar hidden setting named Primary NVMe Idle Timeout. I have it at 500 ms (default 200 ms) but the Windows driver already is very good optimized, so power saving timeout has no real effect in CrystalDiskMark.

Here is the setting after unhidden in PowerSettingsExplorer

Primary NVMe Idle Timeout (unhidden in PowerSettingsExplorer)


Below is a list with the two settings.

Relevant settings for NVMe power states and latency (via powersettingsexplorer)

Windows NVMe controller driver: stornvme
Primary NVMe Idle Timeout (ms): default 200, balanced 500, extreme 0 (no idle power saving)

Samsung NVMe controller driver: secnvme
SEC NVMe Idle Timeout (ms): default 200, balanced 500, extreme 0 (no idle power saving)

1 Like