GPU vs FPGA

So far, I have only been thinking of GPU platforms when developing my kernel,
But, I just learned that the two largest FPGA manufacturers, Xilinx and Altera,
now have OpenCL SDKs.

Can anyone comment on the pros and cons of GPU vs FPGA? I believe GPU is considerably
cheaper.

Thanks.

FPGA would be more applicable to a vertical market solution (where FPGAs typically have). OpenCL is now an alternative programming environment that may be more productive than learning other FPGA programming tools. While the OpenCL C kernels are syntactically the same to what you’d write for a GPU, to get the very best performance on FPGA you’ll need to do device-specific optimizations (covered in the guides available from the vendors). As far as I know, no desktop software that targets OpenCL GPUs also targets FPGA, so you probably don’t need to worry about FPGA just yet as a commodity solution.

Thanks, Dithermaster. One interesting development: Intel is planning a Xeon chip with integrated FPGA. Should be interesting.

What we REALLY need is several hundred dollars worth of CUDA cores built into the Northbridge/Southbridge (?) chipsets with DMA, etc. This kind of computer would be an inexpensive but massive leap in number-crunching power. Supra-Moore’s-Law, even. Think of it as a new kind of floating point or integer unit. When I was young, the floating point and integer units were entirely separate chips, called “math co-processors,” which only “professional” computers had. Well, we still think of only floating/integer ops, but in modern/advanced mathematics, matrix ops have become a discrete “thing” - so having a one-CPU-clock-cycle matrix op is the next big step which computers could take. This would solve a lot of problems which are now restricted to supercomputer sites.

Could someone do this with an FPGA? I don’t know how FPGA throughput compares to GPU throughput - I suspect GPUs are highly optimized as market forces have pushed them very hard.