5 ms·
But CPU+FPGA will forever be a tiny niche, right? I don't see any path where mainstream programs get a boost from FPGA.
by dzdt 8y ago
But CPU+FPGA will forever be a tiny niche, right? I don't see any path where mainstream programs get a boost from FPGA.
- abainbridge 8y agoThat depends what you mean by mainstream. These days the cloud data centre is a mainstream market for hardware vendors. In that environment FPGAs can make sense. They might have advantages in throughput, latency, power consumption, security (no spectre), reliability (no software updates). For example, Microsoft use them for Azure virtual networking, machine learning and something inside Bing. You can imagine a world where every blade server has an FPGA. In fact, you can imagine a world where many blade servers have an FPGA and only a small support CPU.
- jdietrich 8y agoYou can spin up an FPGA-accelerated EC2 instance right now. There are a few highly specialised applications where every scrap of performance matters, but for the most part the software development costs are prohibitive compared to just spinning up more CPU or GPU instances. https://aws.amazon.com/ec2/instance-types/f1/ https://aws.amazon.com/ec2/instance-types/f1/
- snaky 8y agoThere are some interesting ideas about programmability, like automagically offloading some computation parts to FPGA. http://conal.net/blog/posts/haskell-to-hardware-via-cccs http://conal.net/blog/posts/haskell-to-hardware-via-cccs http://conal.net/blog/posts/circuits-as-a-bicartesian-closed-category http://conal.net/blog/posts/circuits-as-a-bicartesian-closed... https://github.com/conal/lambda-ccc/blob/master/doc/notes.md https://github.com/conal/lambda-ccc/blob/master/doc/notes.md
- Filligree 8y agoThe software needed to drive them needs to become much better (documented, ergonomics, everything) before that will be a realistic option.
- phkahler 8y agoAs far as know there are zero applications on the client or desktop side that can take advantage of FPGA.
- abainbridge 8y agoThere's this: https://docs.microsoft.com/en-us/azure/machine-learning/service/concept-accelerate-with-fpgas https://docs.microsoft.com/en-us/azure/machine-learning/serv...
- Rjevski 8y agoI can see there being a market for that. The reason nobody uses FPGAs at the moment is because nobody has them outside of specialized applications. If Intel can release a CPU with a built-in FPGA and everyone has one, software developers will take advantage of them. I can see stuff like video editing programs, compression algorithms, etc taking advantage of that.
- physicsguy 8y agoThe other thing is that they're a nightmare to programme and they're expensive!
- snaky 8y agoYes, but speedup can be huge. For example, for NFA processing, using (a couple of) 2W FPGA against 200W GPU "GPUs underperform FPGA by a factor ~80-1000x across datasets" http://people.cs.vt.edu/~xdyu/html/ics17.pdf http://people.cs.vt.edu/~xdyu/html/ics17.pdf
- thesz 8y agoThe state transition table is encoded in logic for FPGA and as global memory table for GPU. Why didn't they try to encode state transitions as code on GPU? Also, did they try to use enhanced locality introduced by processing several streams on GPU? E.g., if you keep states sorted as for tuple (state id, stream id) for all your streams, you may get more memory-controller friendly access pattern. I haven't seen mentions of that technique (which MUST be considered after Big Hero 6 [1] - they used that technique to never miss caches in whole movie rendering process). Big Hero 6 is 2014, the paper is 2017. [1] https://en.wikipedia.org/wiki/Big_Hero_6_(film) https://en.wikipedia.org/wiki/Big_Hero_6_(film) I really do not like papers like one linked by you. One system gets all of the treatment while other ones get... whatever is left. I guess have they tried to use these techniques for GPUs, they would get performance gap that is much less than reported.
- ashleyn 8y agoToday they are. Programming can be made easier with large frameworks. Cost can be reduced with higher volume.
- snaky 8y agoNot at all. Specialized coprocessors are mainstream actually - from network cards offloading to small chip in every iPhone, and for a reason. The obvious way forward is universal specialized coprocessors, reprogrammable for the task(s). Better if tightly integrated with the memory, buses and CPUs. The weak side of FPGA historically is programmability and especially the tools. But since the interest for FPGA is growing exponentionally in open-source community in recent years, things may change. And by the way, 10 years ago you would say that exactly 'niche' words about GPU.
- maxerickson 8y agoHow is every consumer device with a display "niche"?
- oarsinsync 8y agoDedicated GPUs were not required historically to drive displays, and this was done by the CPU instead. Similarly, we’re finding more functions we can take away from the CPU and migrate to dedicated circuitry (FPGAs) that can handle those tasks more efficiently than the CPU can.
- Retric 8y agodedicated circuitry != FPGAs. GPU's avoid the overhead of FPGAs while still retaining a lot of flexibility.
- angry_octet 8y agoBecause they were all 2D. And the idea that GPUs would be used for mobile computing was not obvious.
- maxerickson 8y agoMaybe 25 years ago. 10 years ago they were commonplace. Intel shipped integrated 3d graphics by no later than 1999: https://en.wikipedia.org/wiki/Intel_810 https://en.wikipedia.org/wiki/Intel_810