Overclock.net banner
1 - 16 of 16 Posts

TechManCan

· Registered
Joined
·
94 Posts
Discussion starter · #1 ·
Does Samsung make a nvme driver for the 990 Pro? I don’t see it anywhere. Right now I am using the MS driver.
 
All you need is Samsung magician and update firmware on drive.
 
All you need is Samsung magician and update firmware on drive.
IF you can actually get the firmware update to stick. I have two 990 Pros and only one was able to be firmware updated.

It might have to do with both being VMD/RAID managed, even though I'm not running them in a RAID volume. The first one flashed fine (C: Drive) but the second one (D: Drive) never was able to update it's firmware. I might eventually pull that second one out and put it in a second rig (sans VMD) and try but not too concerned about it.
 
Does Samsung make a nvme driver for the 990 Pro? I don’t see it anywhere. Right now I am using the MS driver.
Officially, no.

Unofficially, the NVMe driver for prior SSDs does work with the 990 Pro. It's supposed to be faster than the MS driver, but I do not have any recent Samsung SSDs to personally test this.

You can just force the 970 driver to install through device manager, or you can download modified & signed genericized Samsung drivers. I've linked to Fernando's (a moderator at WinRaid who I consider reputable) below:

 
Unofficially, the NVMe driver for prior SSDs does work with the 990 Pro. It's supposed to be faster than the MS driver, but I do not have any recent Samsung SSDs to personally test this.
Its faster when you measure it by tool such as LatencyMon.

Also the driver allocated maximum amount of IRQs for a MSI-X device - 2048, way too many as in fact it uses only fraction of them and I corrected this value to more appropriate 33 IRQs which is maximum the drive could take and use.

There is some minor benefit to the performance, but I would not try to force this driver to a different drive as the ones supported. Its quite finnicky and I could not manage to pin the driver to specific CPU threads, else the device will fail to operate.
 
Its faster when you measure it by tool such as LatencyMon.

Also the driver allocated maximum amount of IRQs for a MSI-X device - 2048, way too many as in fact it uses only fraction of them and I corrected this value to more appropriate 33 IRQs which is maximum the drive could take and use.

There is some minor benefit to the performance, but I would not try to force this driver to a different drive as the ones supported. Its quite finnicky and I could not manage to pin the driver to specific CPU threads, else the device will fail to operate.
Even 33 interrupts is usually excessive (well, maybe not for a Threadripper, but definitely for the OP's setup). I'd probably set it to one per logical core, maximum, then use the SpreadMessagesAcrossAllProcessors policy.
 
Even 33 interrupts is usually excessive (well, maybe not for a Threadripper, but definitely for the OP's setup). I'd probably set it to one per logical core, maximum, then use the SpreadMessagesAcrossAllProcessors policy.
i wanted to spread it across closest node, but it did not worked. only across all processors.


tests with similar drive in usb 3.2 2x2 enclosure showed few extra percent with the former.
 
  • Rep+
Reactions: Blameless
FWIW: I have a 990 4TB is my big gamer which works fine. It replaced the 980 2TB which is now on the shelf. I also have a W7 gamer which presently has a 970 1TB and it also works fine. I attempted to use the the 980 in the W7 rig and there is no driver. After querying the Samsung site, it appears there will be no drivers above the 970 for W7. I've been up and down Reddit and just about everywhere else with no luck. I did run into several threads where people are trying to make a "roll your own" 980 driver for W7, but so far haven't heard of any success.
 
i wanted to spread it across closest node, but it did not worked.
Yeah, that's probably wise.

Did you try setting 'all close processors'?
 
Yeah, that's probably wise.

Did you try setting 'all close processors'?
Switching it to mode 4 and setting AssignmentSetOverride always failed, regardless if it was set to single CPU or multiple CPUs.

There does not seem to be much of a difference between mode 1 (close processors) and 5 (all processors). Most drivers I tested this way were incapable of assigning the close processor, usually it was random at best.

Regardless if i set it to 1 or 5, load is directed to Thread 0 and difference in R/W is like 9-15mb/s. Allocation unit size tweaking had about same impact... So we are talking +30mb/s read speed for a drive which already does 3500mb/s.
 
There does not seem to be much of a difference between mode 1 (close processors) and 5 (all processors). Most drivers I tested this way were incapable of assigning the close processor, usually it was random at best.
Are you using NUMA/processor groups? I don't think the OS has any good way of knowing what processors are close without different NUMA nodes.
 
Discussion starter · #14 ·
I have updated my firmware to the latest, so no problem there. As far as the driver, I also saw on the Samsung site there was nothing past 970, which is why I asked. I found it strange. I don’t want to force or hack a driver. So Samsung reccomends that we use the MS driver? If that is the case, I am fine with that, if it is what is recommended.
 
  • Rep+
Reactions: Dragonsyph
Are you using NUMA/processor groups? I don't think the OS has any good way of knowing what processors are close without different NUMA nodes.
Yes, task manager indicates two numa nodes. Results are sketchy at best.

Most drivers end up on thread 0, so they appear to be completely unaware of multithreading, so I am not expecting to be numa aware.

Network can be handled with RSS queues but majority of other devices had to be pinned to a specific thread manually.

Not much a problem for my system because Vega20 uses just single IRQ and most other devices as well. NIC and mainly NVMe are only exceptions to the rule.

Some devices end up re-routing their irq requests multiple times unless forced to specific thread.
 
Been digging a bit regarding Physical Sector size and Cluster size options for my Samsung 970 PRO.

It appears that Samsung driver tells system that Physical sectors are of 512 byte size:

fsutil fsinfo sectorinfo e:
LogicalBytesPerSector : 512
PhysicalBytesPerSectorForAtomicity : 512
PhysicalBytesPerSectorForPerformance : 512
FileSystemEffectivePhysicalBytesPerSectorForAtomicity : 512
Device Alignment : Aligned (0x000)
Partition alignment on device : Aligned (0x000)

This is microsoft driver:

fsutil fsinfo sectorinfo d:
LogicalBytesPerSector : 512
PhysicalBytesPerSectorForAtomicity : 4096
PhysicalBytesPerSectorForPerformance : 4096
FileSystemEffectivePhysicalBytesPerSectorForAtomicity : 4096
Device Alignment : Aligned (0x000)
Partition alignment on device : Aligned (0x000)

For most of my drives I use 16KB cluster size (except OS which uses 4096b), because Techpowerup NVMe database tells that 970 PRO has 16kb page size.


Also i did some tests using Latency Mon and first suite of Crystal Disk Mark.

Samsung Driver puts everything through storport.sys, its about 320 000 DPC calls and takes 1300 miliseconds to complete.

Microsoft driver splits tasks between storport.sys and stornvme.sys. In total its still about 320 000 DPC calls but it takes about 1200 miliseconds to complete.

Also results in CrystalDisk Mark are by few megabytes better. 3576mb/s read vs 3586mb/s. with microsoft driver properly set to close processor.
 
1 - 16 of 16 Posts