6 ms·
Not sure how they think FPGAs are going to reduce their "cloud workload". FPGAs are pretty power hungry (aside from lattice) and only work well if you have some
by vvanders 11y ago
Not sure how they think FPGAs are going to reduce their "cloud workload". FPGAs are pretty power hungry (aside from lattice) and only work well if you have some unique requirements.
- tw04 11y agoTell that to Microsoft. http://www.eetimes.com/document.asp?doc_id=1324372 http://www.eetimes.com/document.asp?doc_id=1324372
- sapek 11y agoMore information here: http://research.microsoft.com/en-us/projects/catapult/ http://research.microsoft.com/en-us/projects/catapult/
- Cieplak 11y agoFPGAs are excellent for parallelizing IO, so if the application involves lots of IO, an FPGA coprocessor will likely reduce power consumption if the CPU delegates IO intensive operations to the FPGA.
- emcq 11y agoNot if you're sitting around waiting for data stored on some DB or distributed file system. FPGAs don't do much to address that. However there are certainly cases where you could design very lean systems where you could win with an FPGA, but my guess is the average developer wont be any better at that than they are on the CPU side developing tight high performance code.
- vvanders 11y agoYup, that's my feeling. We can't even get developers to pay attention to CPU cache lines. I'm very doubtful that your average SW dev could understand how to use FPGAs to their advantage.
- virtuallynathan 11y agoJust speed up the database and filesystem with FPGAs ;)
- nickpsecurity 11y agoBecause they can accelerate arbitrary algorithms anywhere from a percentage to 50x increase often for a fraction of the energy and clock rate? I'd guess more so when sequential part is on top tier CPU and accelerator is on its NOC.
- revelation 11y agoWhere is this magic FPGA that takes an arbitrary algorithm and accelerates it 50x? FPGAs have a nice niche for certain applications, and they deserve more prominence, better tooling and widespread use, but they are not magic.
- alain94040 11y agoFPGAs are usually very good at accelerating one computing algorithm at a time. Not two. Just one. They'll beat processors unless the operations are an obvious fit for processors (for instance, floating point). I/O is actually a bottleneck in FPGAs. In practice, most applications require executing plenty of algorithms one after the other, depending on input data, with a lot of glue in between (I/O). FPGAs are terrible at that.
- koko775 11y ago50x isn't unreasonable if you can parallelize and/or pipeline a rigidly-defined process, cutting out as much memory and cache accesses as possible. With the right programming model, 50x seems very, very reasonable, not even magical. A typical computer does a decently high amount of context-switching and cache-loading.
- revelation 11y agoYes, of course. Hence why FPGAs are brilliant for stuff like networking equipment, massively parallel coupled with massive low-level IO. But it doesn't work that way for arbitrary algorithms.
- koko775 11y ago
- petke 11y agoFast cores take exponentially more energy than slow ones. So the solution is to use more slow and simple cores instead. We get more performance per watt that way. On PCs we can use GPU's to make computations in parallel. I guess this is like that, but for servers.
- PascLeRasc 11y ago>Fast cores take exponentially more energy than slow ones What's your source for this/why does this happen?
- wolf550e 11y agoIt is very well known that the out of order execution engine of modern cpu cores has a very high power overhead. https://en.wikipedia.org/wiki/Out-of-order_execution https://en.wikipedia.org/wiki/Out-of-order_execution https://en.wikipedia.org/wiki/Bonnell_%28microarchitecture%29 https://en.wikipedia.org/wiki/Bonnell_%28microarchitecture%2...
- cornholio 11y agoBasic logic: as you cram more and more out of order and parallel execution, branch prediction and other advanced techniques in a core, there is a diminishing return. If it weren't, you could create a single core of unlimited computing power.
- petke 11y agoFrom my fuzzy memory: To make a cpu fast you need to shrink them. To the point that the "wires" in the core are so close together that electrons jump from one another. So there is lots of electrical interference. To overcome this voltage needs to be increased. This takes more power and makes the cpu hotter (which requires cooling). But dont take my word for it. I did some quick Googling. Maybe you can find some better source and explanation: https://en.wikipedia.org/wiki/Multi-core_processor#Technical_factors https://en.wikipedia.org/wiki/Multi-core_processor#Technical... "For general-purpose processors, much of the motivation for multi-core processors comes from greatly diminished gains in processor performance from increasing the operating frequency. This is due to three primary factors: - The memory wall; [...] - The ILP wall; [...] - The power wall; the trend of consuming exponentially increasing power with each factorial increase of operating frequency. This increase can be mitigated by "shrinking" the processor by using smaller traces for the same logic. The power wall poses manufacturing, system design and deployment problems that have not been justified in the face of the diminished gains in performance due to the memory wall and ILP wall."