3 ms·
> As CPUs are designed for one thing "few, large, complex cases" while FPGAs are perfect for many, parallel simple cases" even more than a GPU. FPGAs are quite
by booblik 9y ago
> As CPUs are designed for one thing "few, large, complex cases" while FPGAs are perfect for many, parallel simple cases" even more than a GPU.
FPGAs are quite good at parallel simple cases, that is correct, but they would lose to GPUs in performance/watt in most cases.
Where FPGAs really shine is in parallel complex, non-uniform cases, especially cases that don’t map well to the classic CPU instructions, but can easily be performed with small latency on FPGAs.
- davrosthedalek 9y agoEspecially if the level of parallelism isn't too large, or if the memory bw requirement for each is low. The memory bandwidth of FPGAs is comically small typically compared to GPUs if it has to go to off-chip memory. Internal memory is limited to a couple MBit typically.
- scottlegrand2 9y agoFPGAs own low latency computation (less than 1 microsecond) because GPUs really need 3-20 microseconds to initialize after a kernel launch. This is why they're used instead of GPUs at the front line of high frequency trading. When I was at a hedge fund, I tried in vain to get Nvidia to do something about this based on the unofficial work of another former Nvidia employee implying this could be improved dramatically. All that said, these are golden years to be a low-level programmer who understands parallel algorithms whether you work in Tech or at a hedge fund because there just aren't that many of us. But the real problem with FPGAs is that even if they find another lucrative application where they excel relative to GPUs, Nvidia can simply dedicate transistors in their next GPU family to erasing that advantage as they did with 8-bit and 16-bit MAD instructions in Pascal and with the tensor cores in Volta. Too bad they don't care about latency or I believe they could disrupt FPGAs from HFT in a year or two when someone started using them and started winning.