Reinvigorate your old Mac Pro with NVMe

I have an old 2008 Mac Pro sitting around that I recently wanted to upgrade with some more — and faster — disk capacity. Samsung's new SM951 or 950 Pro NVMe SSDs came to mind.

Now NVMe is a rather new protocol that cuts out lots of the overhead that AHCI carries, which is especially noticeable when it comes to writing or reading small files or file pieces. Of the Samsung SM951 SSD, there are two versions: an AHCI version, and a NVME version and the difference in IOPS is quite substantial: While the SM951 AHCI can do 90k/70k IOPS r/w, the NVMe version churns through an astounding 300k/100k IOPS. The 950 Pro — only available NVMe-flavoured — is about the same[1], with 110k IOPS write.

The internet unfortunately was rather undecided about whether the elderly 2008 Mac Pro could take the shiny new NVMe SSD, with most forum posts mentioning "NVMe needs BIOS/EFI support to even work", and so on. This is however only true if you want to boot off the drive, which was not my primary interest. NVMe SSDs are standard PCIe devices that do not require additional EFI/BIOS support.

Therefore, I set out to try it myself — I got a SM951 NVMe, and a Delock m.2 to PCIe 3.0 Adapter. For the 2008 Mac Pro it's quite important that the card sits in the x16 slot right above the double-height GPU x16 slot, as otherwise it'll only work with reduced speed, since the top two x4 slots are only PCIe 1.0 (see Apple's documentation on the issue). For later models, it doesn't matter.

Windows 10

Windows 10 was instantly able to recognise the drive and use it. Installing Samsung's own NVMe driver[2] brought a speed boost though. The issue with Windows is though that non-Apple sanctioned devices won't be able to use PCIe 2.0, but default back to 1.0. Nevertheless, the IOPS gain remains to be of substantial impact:

AS SSD Benchmark Results for Samsung SM951 NVMe drive, MB/s

AS SSD Benchmark Results for Samsung SM951 NVMe drive, IOPS

OSX 10.11

Since OS X 10.10.3, there is NVMe support — however, only for Apple's own devices, as used in the current MacBook Pros. If you want to use a 3rd party NVMe device, you'll need MacVidCards' NVMe driver. If the driver does not load automatically after a reboot, give OSX a nudge by running

sudo kextload /Library/Extensions/NVMeGeneric.kext

Somehow, after manually loading the kext once, OSX keeps reloading it on the next boot-ups.

It'll give you nice benchmark results afterwards:
BlackMagic Drive Benchmark Results for Samsung SM951 NVMe drive

Both Windows and OSX results are about as high as you can get with the elderly Mac, due to PCIe speed limitations. Still nice, especially if you contemplate to use the SSD in a newer machine later on. And also much faster than the dated SATA interface in the MacPro could go. Not to mention the IOPS gain with NVMe.

  1. The SM951 is only available as a bulk version, while the 950 Pro comes only as retail version. ↩︎

  2. The website states the driver will only work with the 950 Pro. It works with the SM951 as well, though. ↩︎