In Fermi’s Wake, a Place for FPGAs?
Thanks to the meteoric rise of GPGPU, HPC server vendors are busily trying to figure out how to stuff graphics chips into their systems. NVIDIA’s unveiling of the next-generation Fermi GPU is only going to encourage the GPU computing love-fest.
So how many GPUs can you practically fit in a server? At this point, the answer seems to be eight. Earlier this week Colfax International launched the CXT8000, a 4U server containing eight NVIDIA C1060 Tesla cards. The eight GPUs are paired with eight CPU cores, in the form of two Xeon quad-core processors. The 4U server offers 8 teraflops of single precision floating point performance. All this for a paltry $16,000.
The eight-GPU setup has actually been tried before. There is (or was) an eight-GPU server based on AMD FireStream hardware, which made a brief appearance last year. At SC08 in Austin, Aprius was showcasing its CA8000, a 4U server containing 8 FireStream 9270 cards. The system had a peak rating of 9.6 single precision teraflops. Aprius’s intention was to begin sampling the CA8000 in the first quarter of 2009, although the last time I checked the company’s Web site, there was no further mention of it.
Next year at this time we’re likely to be seeing Fermi GPU-based servers with a lot more power. An eight-GPU Fermi box would probably deliver something in the neighborhood of 15 teraflops single precision and half of that in double precision. Add to that all the other enhancements Fermi brings to the GPGPU party, and you have a whole new wave of cheap FLOPS entering the market at commodity-like prices,
So where does that leave other accelerators, like for example FPGAs? Well, for the near term, FPGA enthusiasts are going to have to fight harder than ever for a spot in the HPC ecosystem. (In truth, it’s been an uphill battle for FPGAs since they first entered the HPC arena.) NVIDIA’s CUDA software ecosystem continues to expand and mature, and with OpenCL on the horizon, we’ll soon have a hardware-neutral GPU computing software environment. There is no equivalent in the FPGA world.
The good news is that FPGAs still offer some unique features that can’t be matched by traditional processors, GPU or otherwise. By their nature, FPGAs are reconfigurable, so the hardware can be optimized for different applications. And since FPGA products are now available as QuickPath or HyperTransport peers, they can share the main bus with the CPU, which greatly speeds up data communications.
FPGAs also are particularly suited for certain classes of algorithms like string matching, cryptography, and fast Fourier transforms. Bioinformatics employs a number of codes that are especially suitable for FPGAs. For example, the Smith-Waterman algorithm, which is used for protein and gene sequence alignment, is basically a string-matching operation that requires a lot of computational power.
There are GPU-based implementations of Smith-Waterman. The most impressive example that I’ve come across shows a 2x to 30x speedup compared to an x86 optimized (read SSE-enabled) implementation. The GPU speedup reflects decent acceleration for this algorithm, but at the low end, it’s nothing to write home about. This study is a couple of years old, so they were using the older NVIDIA G80 architecture and presumably the older x86 architecture as well. It would be interesting to see results on current generation processors.
As expected, FPGAs can offer more substantial acceleration for Smith-Waterman. One study demonstrates speedups of 100x using Xilinx Virtex-4 hardware matched against a 2.2GHz Opteron. On a practical level, that means searches that used to take over three months can now be run in a single day.
A recent application note I received from CHREC, the NSF Center for High-Performance Reconfigurable Computing, showed its new Novo-G supercomputer with even more impressive results for Smith-Waterman. Novo-G is a cluster of 24 Linux servers, each housing four Altera Stratix-III E260 FPGAs. According to the CHREC study, a four-FPGA node ran 2,665 times faster than a single 2.4GHz Opteron core. Doing a little math (and discounting multicore overhead), that translates to a 166X speedup, matching a single FPGA against a quad-core Opteron. Essentially that means Novo-G can match TACC’s half-petaflop Ranger supercomputer on this particular application. Not bad.
Despite that kind of success, I still think FPGAs have a tough road ahead in HPC. FPGA hardware is advancing as rapidly as any other processor technology, but the software ecosystem is still small, and no single solution like CUDA has emerged as a rallying point for developers. As the GPU computing ecosystem starts to expand in earnest over the next few years, it will be interesting to see how the FPGA crowd reacts.