News for hackers. Stuff that matters.
Re:How FPGAs work, and why you'll buy one (2013) by lmeyerov on Thursday April 16, 2015 @01:19PM (#9389340)
Our experience with GPU cloud computing at Graphistry should be pretty representative. We spend a lot of effort getting subsecond interactivity in funny C dialects (OpenCL/CUDA). To get those down further, we can put together a few GPUs and reuse most of the code. Eventually, however, data communication costs get too high, so FPGAs would be the next step. That is certainly doable: OpenCL -> FPGA compilers are a thing!

So the question is who has already been going down that pathway, and I'll leave that as an exercise to the reader :) My guess: that'll stay in private hands for awhile, and after a few years, as FPGAs get put into public clouds and everyone goes down the same pathway, a lot of people will be using FPGAs, even if indirectly.

Re:How FPGAs work, and why you'll buy one (2013) by aprdm on Thursday April 16, 2015 @02:09PM (#9389689)
With OpenCL + FPGA what you do is basically instantiate a GPU architecture inside an FPGA and then execute the OpenCL algorithm into that.

I think that's cool but you aren't getting a better throughput than what you would get with a GPU.

The better solution would be to do your custom optimised control/data path for the FPGA architecture you are currently using (VHDL/Verilog).

Re:How FPGAs work, and why you'll buy one (2013) by DrHoppenheimer on Tuesday April 21, 2015 @09:29PM (#9418182)
That's not how it works, actually. The compiler generates the dataflow directly in hardware.
Re:How FPGAs work, and why you'll buy one (2013) by frozenport on Thursday April 16, 2015 @02:25PM (#9389838)
>>Eventually, however, data communication costs get too high

Looks like the program is spending too much time in 'MPI_RECV'? Clearly the same time would be spent by any other hardware device, and raw compute power wont fix this. You need a faster interconnect. Indeed, among the few fixes for this problem are complicated changes to the algorithm, such a maintaining some kind of network routing scheme, which often involves complicated logic difficult to implement on anything but a CPU.