Software RAID with a GPU (CUDA)
[Edit: I just got a bunch of traffic from Nvidia and Sandia labs so I'm thinking I may be on to something here]
So I was sitting here thinking about how modern RAID cards are completely inadequate when it comes to solid state hard drives (as I often do), and I had an idea. Why can’t graphics card hardware be used to accelerate software RAID? We have CUDA right?
For a second I thought I was onto something truly original but after a quick search it looks like some guys over at Sandia Labs beat me to the punch by a few months:
“One example is the RAID software developed by researchers at the University of Alabama and Sandia National Laboratory that transforms CUDA-enabled GPUs into high-performance RAID accelerators that calculate Reed-Solomon codes in real time for high-throughput disk subsystems (according to “Accelerating Reed-Solomon Coding in RAID Systems with GPUs” by Matthew Curry, Lee Ward, Tony Skjellum and Ron Brightwell, IPDPS 2008). From their abstract, “Performance results show that the GPU can outperform a modern CPU on this problem by an order of magnitude and also confirm that a GPU can be used to support a system with at least three parity disks with no performance penalty.” I’ll bet the new NVIDIA hardware will perform even better. My guess is we will see a CUDA-enhanced Linux md (multiple device or software RAID) driver in the near future.”
The problem for using this sort of tech in the consumer space is that people want to boot from their ridiculously fast RAID arrays and software RAID makes that difficult (though not impossible with Linux if you don’t RAID the kernel). If you’re using a software RAID array and the OS crashes you can lose an array.
Here’s a link to the actual paper.
Just had another idea. If a RAID driver could check for CUDA support and only use it if present then an OS could boot in a slower CPU RAID setup until the graphics drivers(CUDA) loaded at which point things would get a lot snappier.
In the future I’m going to guess we’ll see hard drives on PCI-E cards with ONFI flash chips and NO SATA PORTS. With RAID handled by some standardized version of CUDA. Operating systems will have ONFI drivers baked in. This would effectively collapse the hardware RAID industry as we know it.
SLC NAND is only going to get cheaper. I imagine we’ll see 100GB drives containing 200GBytes of NAND. 150GB for a RAID 5 array and 50GB for wear leveling. At some point diminishing returns kick it. Are we really going to need three gigabytes per second of bandwidth from our drives to open word documents?
Wikipedia on
CUDA:
http://en.wikipedia.org/wiki/CUDA
ONFI:
http://en.wikipedia.org/wiki/Open_NAND_Flash_Interface_Working_Group
I have a system of beliefs I use to view the world and it has served me pretty well in making predictions but it has a big hole. So I drive around in my theory without a complete understanding of the engine, but it gets me from point a to point b effectively.


Random thought of the day:










