9 ms·
I hope Intel puts their weight into FPGA now instead of just seeing this as taking out a potential (future) competitor. IMO the technology has a lot of premise,
by m_mueller 11y ago
I hope Intel puts their weight into FPGA now instead of just seeing this as taking out a potential (future) competitor. IMO the technology has a lot of premise, especially in HPC where hardware often gets very specific tasks, so general purpose chips are a waste.
Edit: It looks like they've already been pursuing this, I wasn't aware of Xeon+FPGA pairings yet: http://www.extremetech.com/extreme/184828-intel-unveils-new-xeon-chip-with-integrated-fpga-touts-20x-performance-boost http://www.extremetech.com/extreme/184828-intel-unveils-new-...
- higherpurpose 11y agoIf anything Intel has been moving towards "more general purpose" computing in the past few years with Xeon Phi.
- m_mueller 11y ago.. which hasn't exactly payed off yet. Whether Knight's Landing changes that remains to be seen. Intel's reliance on x86 for everything is IMO holding them back in the data parallel HPC segment.
- selimthegrim 11y agoWhat markets has Phi really made inroads into besides oil and gas legacy codes?
- detaro 11y agoThey do custom extensions for large customers and announced a Xeon/FPGA combination last year.
- amelius 11y agoAny good examples where FPGAs outperform standard CPUs?
- DoritosMan 11y agoBitcoin mining?
- sireat 11y agoYou are right, but FPGA is very old news in Bitcoin mining about 3-4 years old, everyone moved to custom ASICs.
- Bootvis 11y agoThey're used in HFT, it seems mainly for sending and receiving orders.
- bladecatcher 11y agoThe FPGAs run entire algorithmic strategies. It's not just the order management that they handle.
- thibautx 11y agoFPGAs run the execution of strategy, everything else is done by high level software/systems. FPGAs are connected directly to the exchange and also help receive a feed of market data (in addition to other market data feeds).
- bladecatcher 11y agoI guess that depends on how close to the exchange you want to be. If your strategies were extremely latency sensitive, you might want to have not just the execution logic, but the larger algo framework on there too. This is particularly true of strategies that make use of order book dynamics.
- PaulHoule 11y agoA big advantage that FPGAs have is that they are fast at "single threaded" tasks so they can parse data in formats that aren't easy to parse quickly, like the XML-based FIX protocol.
- uxcn 11y agoI'm not sure FPGAs are 'suited' for parsing formats with lots of variable lengths and data dependencies like XML, but obviously they can be faster than typical Von Neumann. I know binary market data streams were one of the first uses in the financial industry.
- mattgodbolt 11y ago
- m_mueller 11y agoHFT optimizes for low latency rather than high performance, and FPGA is currently the state of the art there to my knowledge [1]. When it comes to performance, you should look at FPGA in terms of performance per Watt. Generally speaking they outperform GPUs by an order of magnitude in FLOP/W*s [2], which in turn already have ~ 3x-5x advantage over Xeons [3]. This measure is the most important one when it comes to the question, how many chips you can put in a given rack. FPGAs are still held back in terms of cost per dollar invested, since they have been quite pricey - with Intel this could change. [1] http://stackoverflow.com/questions/17256040/how-fast-is-state-of-the-art-hft-trading-systems-today http://stackoverflow.com/questions/17256040/how-fast-is-stat... [2] http://synergy.cs.vt.edu/pubs/papers/adhinarayanan-channelizer-reconfig14.pdf http://synergy.cs.vt.edu/pubs/papers/adhinarayanan-channeliz... [3] http://streamcomputing.eu/blog/2012-08-27/processors-that-can-do-20-gflops-watt/ http://streamcomputing.eu/blog/2012-08-27/processors-that-ca...
- adwn 11y ago> since they have been quite pricey - with Intel this could change Why would it? The price of an FPGA is not really determined by its production cost – for medium-size Xilinx FPGAs for example, the ratio of price/chip production cost is on the order of 50.
- m_mueller 11y agoBy that you mean the margin? Well the margin is largely depending on competition (or the lack thereof), isn't it? That's why I think a big player could make a difference iff they put their weight into it.
- adwn 11y agoNot necessarily margin, rather non-recurring engineering costs (fab masks, design, software development), marketing, sales, administration, other overhead. You need massively higher demand in order to lower those costs, which won't happen only because Intel is entering the market. Instead, you'd need to significantly change the principles and trade-offs of FPGAs, for which I don't see any indications.
- bryanlarsen 11y agoFPGA's are chips, they're mostly orthogonal to CPU's. Sure there's some overlap in the margins, but the vast majority of FPGA's do things that CPU's can't do. There is some competition because an FPGA can do everything a CPU or GPU can, but the converse isn't true: there's lots of stuff that an FPGA can do that a CPU or GPU can't. To oversimplify, an FPGA could replace almost any digital chip anywhere.
- solarexplorer 11y agoSignal processing. FPGAs have high speed links and can perform thousands of operations in parallel. When you have a huge amount of data to process in real time, an FPGA (or ASIC) is often your only choice.
- phamilton 11y agoSecond this. Video processing is somewhere I've used fpgas with great success. Embedded systems especially get a huge perf/watt boost when vision processing goes (at least partly) to an FPGA. Video works really well because its discrete (60fps) and an FPGA just can't hit the clock speeds an asic will. If you already have a semantic clock requirement that is low, streaming works great.
- raverbashing 11y agoThis question comes up often, and it's the wrong question to ask. Here's the thing. FPGA performance has nothing to do with it. They do what CPUs can't. You don't choose to plug an FPGA in place of a CPU, you plug it where you can't. Tying peripherals together, glue logic, bus connection. Some FPGAs have a builtin CPU (or you can plug a soft one together with your circuit)
- zokier 11y agoWhile true in many cases, you can bet your bottom dollar that Intel did not spend $16.7bn to enter the embedded glue logic market. It is very much the compute aspect they are after, as a weapon against AMDs HSA and other GPGPU-style solutions.
- raverbashing 11y agoBut an FPGA (as it is today) cannot compete with a GPGPU Maybe they will go for in-the-fly reconfiguration for specific computations (as: load your specialized circuit in an FPGA and fire away)
- ethbro 11y ago> But an FPGA (as it is today) cannot compete with a GPGPU I read an interesting quip somewhere on software/hardware development: 'civil engineering would look very different if the properties of concrete changed every 4 years.' If at some point we stop scaling chip performance. And many-core-integration in/on a single chip/die stops making sense. Then glue logic starts to look like a key differentiator. And control over glue logic starts to look like control over profits. Intel ate the chipset for performance reasons and so they could shape their own destiny. If there aren't fundamental breakthroughs to preserve performance scaling as we know it, then I see this as more of the same.
- vardump 11y agoBut an GPGPU (as it is today) cannot compete with a FPGA. Of course, it depends entirely on what you're doing with them. Keywords: horse, course, different.
- bjackman 11y agoWrote a mandelbrot generator for uni that performs at several fps on a 25MHz clock using 8 multipliers. Definitely not possible on a CPU! https://instagram.com/p/2Y4CMtP95Q/?taken-by=yawn_brendan https://instagram.com/p/2Y4CMtP95Q/?taken-by=yawn_brendan But yeah pretty much any repetitive computation. 3DES enc/decryption is another example (although I think people normally use ASICs for that when they want to do loads of it).
- maccard 11y agoThey usually require minimal amounts of power in comparison with a CPU with a similar thoroughput
- jhallenworld 11y agoHere is what they are really good at: deliver your custom hardware early to market (vs. ASIC or custom). This is a huge benefit if you consider that the first to market usually gets to own the market and command the best price.
- pjc50 11y agohttp://www.argondesign.com/case-studies/2013/sep/18/high-performance-trading/ http://www.argondesign.com/case-studies/2013/sep/18/high-per... Low-latency interaction with hardware. In this case, it was possible to start outputting a TCP reply before the end of the packet it was replying to. In general, FPGAs win for integer and boolean functions which are amenable to deep pipelining, or are capable of very high parallelism. One of my colleagues produced a neat chart of what level of parallelism was best suited to which of CPU/GPU/FPGA. FPGAs don't have an advantage if you're memory or IO bound, and they have terrible power consumption.
- thesz 11y agoYou are not quite correct about power consumption. FPGA can be quite competitive when applied right. First, of course, are very efficient Ethernet ports and many other efficient hard blocks. Second, you can fuse many operations into one. For example, you cannot fuse 3 FP adds into one operation nor on GPU neither on CPU. It is often 2 or 4, rarely something inbetween or outside of those. GPU and CPU operations on vectors can be wasteful as vectors can be underutilized and on FPGA you can create circuitry that fits problem rather well. I also think that you are not quite right about I/O or memory boundness. In FPGA you can add another I/O controller and use extra device for I/O, loading spare resource in FPGA. Same for memory - DDR controller synthesized into cells won't be very optimal, but you can have many of them nevertheless.
- pjc50 11y agoIt depends on what you're doing. The static power consumption is rather high. If your solution fits fairly exactly into the FPGA and is running most of the time, then yes. Having two DDR controllers helps the overall memory bandwidth number if your reads are not localised. If you're doing a lot of data-dependent loads this doesn't help at all (e.g. scrypt). In all cases it's much harder for software developers to develop for FPGA, so this cost needs to be factored in. They're very good in their niche, not a general purpose silver bullet.
- thesz 11y ago
- pdkl95 11y agoIn addition to the benefits that others have already mentioned, when you use an FPGA, you can customize your hardware to provide task-specific features. An interesting example would be this demoscene project by LFT (Linus Åkesson): http://www.linusakesson.net/scene/parallelogram/ http://www.linusakesson.net/scene/parallelogram/ "For this demo, I made my own CPU, ... cache, ... blitter with pixel shader support, a VGA generator, and an FM synthesizer." In his explanation for why he wrote his own CPU in the FPGA, Linus explained "...I was able to take advantage of the added flexibility. For instance, at one point the demo was slightly larger than 16 KB, but I could fix this by adding some new instructions and a new addressing mode in order to make the code compress better."
- cmrdporcupine 11y agoAwesome demo. Also, dude has a Symbolics Space Cadet keyboard. Respect.
- listic 11y agoI knew something like this had to exist. Shouldn't this approach extend to modern hardware? E.g. surely there must be cases where it is effective to use custom FPGA-based hardware fit for the job, rather than (or in addition to) CPU and GPGPU? I heard counter-arguments to the tune of 'hardly anyone wants to program their FPGA' which sounf strange to me: after all, hardly anyone wants to program their pixel shaders, either.
- kevinnk 11y agoThe real problem with FPGAs is that for 99% of use cases, CPU/GPGPU is good enough. And in the cases you really do need the extra speed, its rare you also need the flexibility, in which case you'd make an ASIC. There is a niche for FPGAs (especially in prototyping), but it's not as big of a market as you would imagine.
- deelowe 11y agoFPGAs don't outperform CPUs. That doesn't really make sense. FPGAs outperform software. Also, if you're in the chip business, FPGAs let you prove designs in-situ before moving to ASICs.
- woodchuck64 11y agoThink of FPGAs as having the potential to be primitive GPGPUs. They outperform CPUs in all the same areas GPUs outperform CPUs. FPGAs are like GPUs with no floating-point, no caches, and limited local memory. But if you can implement a kernel in FPGA with comparable memory bandwidth, you'll usually outperform GPGPU while using as little as 1/50 the power.
- vardump 11y ago> Think of FPGAs as having the potential to be primitive GPGPUs. They outperform CPUs in all the same areas GPUs outperform CPUs. FPGAs have several orders of magnitude lower latency than GPGPU. GPUs have memory access latency of 1 microsecond, getting something useful out of them >1 ms. FPGAs can have state machines running at 200 MHz, or 5 ns cycle time. > FPGAs are like GPUs with no floating-point, no caches, and limited local memory. But if you can implement a kernel in FPGA with comparable memory bandwidth, you'll usually outperform GPGPU while using as little as 1/50 the power. Some FPGAs do have floating point hard blocks. Integrated SRAMs (syncram) can be used as caches and usually are. FPGAs usually have DRAM controllers as hard blocks, so local memory is not that limited. Unless you consider up to 8 GB (newer models up to 32 GB) limited.
- noipv4 11y agoBitcoin mining. (although ASICs have now taken over, for a good part of 2010-2013 FPGAs were the king esp. for power limited mining rigs)
- Bjartr 11y agoIIRC many mining ASICs are those same FPGA layouts etched permanently.
- stavrus 11y agoA friend did some research in this area, comparing FPGAs, CPUs and GPUs. He published a paper [1] in regards to performance for several common Linear Algebra computations across a variety of input sizes. In particular, Figure 2 shows you where each of the platforms works best. FPGAs are essentially re-programmable hardware, so they tend to outperform CPUs/GPUs when you program them for a specific task. They don't have to deal with most of the overhead that the more generalized platforms deal with which is why they dominate in the small input sizes. However, with FPGAs you're trading space (silicon) for that re-programmability so you can't have as much hardware in the same area as say a GPU. Thus, when the data sizes have saturated the available hardware of the FPGA for computation, the GPU begins to outperform. Due to the decreasing node sizes (28nm, 22nm, etc), we can fit more programmable logic into the same area, which causes the chart I mentioned above to shift more into the FPGA's favor. [1]: http://www.researchgate.net/profile/Sam_Skalicky/publication/256980256_Linear_Algebra_Computations_in_Heterogeneous_Systems/links/0c9605241d93d4d4d2000000.pdf http://www.researchgate.net/profile/Sam_Skalicky/publication...
- rgovind 11y agoI work on developing FPGA based prototyping platforms (Basically chip verification solutions). We are one area where FPGAs perform better than standard CPUs.
- CamperBob2 11y agoThey can't be compared directly, although that will never convince people to stop trying. You tell a CPU what to do. You tell an FPGA what to be.
- donlzx 11y agoIt's been a trend for years that we'll have more general purpose CPUs augmented with specialized hardware acceleration units in one single unit, e.g., * Intel/AMD CPUs merged with GPUs; * ARM mobile cores merged with GPUs, GPS, Gyro sensors, voice processors, finger print processors, etc.; * ARM CPU with FPGA (Xilinx Zync, Altera SoC FPGA). Their architectures are usually CPU-central, such that the CPU speed and memory bandwidth are the main bottlenecks. For the Intel+Altera merage, I'd like to see them come up with architecture innovations from another perspective: * Programmable logics and signal fabrics (bus) connecting general purpose CPUs and hardware acceleration units; * Bandwidth and connections central, like the Internet, massive processing power comes from massive intelligent connected simple individual nodes (CPU/modules); * Programming such architecture is more resemble how human brain works (reconfigurable inter-connects of neurons).