Conclusions: Altera's Offerings and Competitive Landscape

FPGA vendors have long preached about the efficiency of reconfigurable hardware over general purpose processors. However, FPGAs have often been rejected as an option by many due to the programming challenges associated with them.  CPUs, and even GPUs, typically offered a much faster time to market and a larger talent pool of programmers. With OpenCL, FPGA vendors can play on an equal footing as far as programming is concerned.   Earlier, the decision to use an FPGA over another accelerator required significant resource commitment.  OpenCL allows FPGAs to be used as just another option lowering the risk and is potentially a game changer.

On a personal note, I am hoping for cheaper OpenCL capable FPGAs to hit the market. Currently, OpenCL capable FPGAs run into thousands of dollars. This is likely not an issue for the enterprise market typically targeted by FPGA vendors. However, OpenCL on FPGAs has not attracted as much mindshare as GPUs. GPU vendors have a huge advantage that anyone with a cheap laptop can start experimenting with and learning about GPUs. The easy and cheap access to GPUs enabled GPU computing to take off.  Whenever computing technology has become cheaper and/or easier to program, it has enabled many creative products around it in fields not thought of by the original technology makers. FPGAs have not yet reached that stage. While there is a community of FPGA enthusiasts, enabling OpenCL on cheaper FPGAs can increase this community many-fold.

Altera's OpenCL offering effectively promises customized hardware for your OpenCL kernels and the claim is that FPGAs will be more efficient than CPUs or GPUs at many tasks.  Applications that are not necessarily floating-point heavy, for example applications relying on custom integer datatypes, heavy bit-manipulation or fixed point calculations, are an area where FPGAs can shine because CPU and GPU hardware is not really tailored for such applications. The high-speed I/O connections available on an FPGA with external bandwidth far outstripping other accelerators is another advantage. I think streaming/filtering type of applications are an obvious niche that FPGAs can fulfill.  On the other hand, accelerators such as Nvidia Tesla and Xeon Phi will likely continue to do well in many double-precision floating-point applications because these accelerators are heavily optimized for such use cases. Applications such as image processing or data visualization that can make use of dedicated graphics related hardware on GPUs are also best done on a GPU. 

Finally, I would say I am cautiously optimistic at the prospect of using OpenCL on FPGAs.  I am impressed by the theoretical potential for OpenCL on FPGAs. However, I would  like to see third party studies comparing OpenCL SDKs for FPGAs and general purpose processors on various tasks to get a better understanding of performance and power consumption of various accelerator options. If you are evaluating GPUs or Xeon Phi for your application, you should definitely also consider evaluating OpenCL on FPGAs and compare their performance against other options for your application. OpenCL on FPGAs looks to be gaining steam and this will be an interesting space to watch in the near future and may very well be a turning point for wider adoption of FPGAs in various high-performance application segments.

Altera's OpenCL Implementation Details
Comments Locked

56 Comments

View All Comments

  • ShieTar - Thursday, October 10, 2013 - link

    Altera is offering FPGAs in 4 different general speed-grades, which define a maximum clock frequency (between 525 and ~800 MHz). The actual frequency of the completed design will depend on the complexity of the design, and can sometimes be restricted to little more than half the maximum clock frequency.

    Of course the end-user can always decide to run at a lower performance, specifically if he has a input or output with a fixed data rate. Have a look at the data sheets if you want more detailed information on this topic:

    http://www.altera.com/literature/lit-stratix-v.jsp...
  • John32 - Thursday, October 10, 2013 - link

    Yes, I'm aware of speed grades and the "up to" frequencies of FPGAs. My point is that writing OpenCL code for the FPGA won't be as transparent as programmers would like for it to be worth while. They'd need to consider how their code will translate to hardware no matter how good Altera claims their compiler is. This would result in applications that would run well on FPGAs but not necessarily well on traditional devices.

    Also, I'm sure people won't like that one revision of their application runs at 300 MHz while another runs at 100 MHz or doesn't fit into the FPGA. Being non-digital designers, they won't know why.

    It seems the applications this will benefit from will be fairly limted in scope.
  • kirsch - Thursday, October 10, 2013 - link

    > However, programming FPGAs has traditionally been difficult and requires expertise
    > in specialized "hardware description languages" (HDLs) like VHDL or Verilog.

    Another notable option is National Instruments LabVIEW FPGA product. It allows programming in G, LabVIEW's relatively easy-to-use graphical programming language, and deploy to an FPGA where code runs extremely fast and can leverage the inherent parallelism of the hardware.
  • rahulgarg - Thursday, October 10, 2013 - link

    Thanks! Noted! Not being from a traditional FPGA background, I missed that somehow. If we do followup posts, will investigate LabVIEW as well.
  • alxx - Sunday, October 13, 2013 - link

    problem with labview is the second you go commercial the costs/royalties add up like nothing else
  • Rob94hawk - Saturday, October 12, 2013 - link

    I have no idea what it does but it sure does look cool.
  • ghulands - Saturday, October 12, 2013 - link

    There was a video I watched on youtube from the x264 devs talking about which algorithms they ported to open cl - https://www.youtube.com/watch?v=uOOOTqqI18A
  • alxx - Sunday, October 13, 2013 - link

    See if you can get your hands on one of either xilinx zedboard or parallela board - both have a zynq chip (dual hardcore arm Cortex 9 + fpga) so can run android or linux with the fpga to provide custom peripherals. Parallela board has adaptevas custom multicore micro which can be programmed with opencl

    http://www.parallella.org/board/
    http://www.xilinx.com/products/silicon-devices/soc...

    opencl on parallela (ephiany processor not fpga)
    http://www.parallella.org/2013/09/10/explorations-...
    http://www.parallella.org/2013/03/08/introduction-...

    Waiting for my parallella board to turn up.

    Xilinx provides c to fpga tools in their vivado suite and their boards are usually a lot cheaper than alteras ( digilentinc.com has some of the cheapest fpga boards) . Though terasic provide some nice altera based boards.
    http://www.xilinx.com/products/silicon-devices/soc...
    http://www.terasic.com.tw/
  • alxx - Sunday, October 13, 2013 - link

    looks like xilinx joined the opencl effort but no timeline for when they'll provide support :-(
    http://www.edn.com/electronics-blogs/fpga-gurus/44...
  • moozoo - Sunday, October 13, 2013 - link

    Anyone looking at this seriously should read though all of Table 6 that starts on page 17 of the Altera SDK for OpenCL Programming Guide.

Log in

Don't have an account? Sign up now