This page contains a Flash digital edition of a book.
Will OpenCL open the gates for FPGAs?

In the first article in a series on future hardware for HPC, Robert Roe explains how OpenCL may make FPGAs an attractive option


n January 2015, FPGAs took a step closer to the mainstream of high-performance computing with the announcement that Xilinx’s development environment for

systems and soſtware engineers, SDAccel, had been certified as conforming to the OpenCL standard for parallel programming of heterogeneous systems. Over the past few years, high-

performance computing (HPC) has become used to heterogeneous hardware, principally mixing GPUs and CPUs, but now, with both major FPGA manufacturers in conformance with the OpenCL standard, the door is effectively open for the wider use of FPGAs in high-performance computing. Te changing landscape of HPC, with

the move towards data-centric computing, could favour FPGAs with very high I/O throughput. However, it remains to be seen if FPGAs will be used as an accelerator or if supercomputers might be built using FPGA as the main processor technology. One of the attractions of FPGAs is that

they consume very little power but, as with GPUs initially, the barrier to adoption has been the difficulty of programming them. Manufacturers and vendors are now releasing compilers that will optimise code written in C and C++ to make use of the flexible nature of FPGA architecture.

Easier to program Mike Strickland, director of the computer and storage business unit at Altera said: ‘Te


problem was that we did not have the ease of use, we did not have a soſtware-friendly interface back in 2008. Te huge enabler here has been OpenCL.’ Larry Getman, VP of strategic marketing

and planning at Xilinx said: ‘When FPGAs first started they could do very basic things such as Boolean algebra and it was really used for glue logic. Over the years, FPGAs have really advanced and evolved with more hardened structures which are much more specialised.’ Getman continued: ‘Over the years

FPGAs have gone from being glue logic to harder things like radio head systems,



that do a lot of DSP processing; very high-performance vision applications; wireless radio; medical equipment; and radar systems. So they are used in high-performance computing, but for applications that use very specialised algorithms.’ Getman concluded: ‘Te reason people

use FPGAs for these applications is simple, they offer a much higher level of

performance per Watt than trying to run the same application in pure soſtware code.’ FPGAs are programmable semiconductor

devices that are based around a matrix of configurable logic blocks (CLBs) connected through programmable interconnects. Tis is where the FPGA gets the term ‘field programmable’ as an FPGA can be programmed and optimised for a specific application. Efficient programming can take advantage of the inherent parallelism of the FPGA architecture delivering a higher level of performance than accelerators that have a less flexible architecture.

Millions of threads running at the same time Devadas Varma, senior director of soſtware Research and Development at Xilinx said: ‘A CPU, if it is single core CPU, executes one instruction at a time and if you have four cores, eight cores, that are multithreaded then you can do eight or sixteen sets of instructions, for example. If you compare this to an FPGA, which is a blank set of millions of components that you decide to interconnect, theoretically speaking you could have thousands or even millions of threads running at the same time.’ Reuven Weintraub, founder and chief

technology officer at Gidel, highlighted the differences between FPGAs and the processors used in CPUs today. He said: ‘Tey are the same and they are different. Tey are the same from the perspective

@scwmagazine l

Page 1  |  Page 2  |  Page 3  |  Page 4  |  Page 5  |  Page 6  |  Page 7  |  Page 8  |  Page 9  |  Page 10  |  Page 11  |  Page 12  |  Page 13  |  Page 14  |  Page 15  |  Page 16  |  Page 17  |  Page 18  |  Page 19  |  Page 20  |  Page 21  |  Page 22  |  Page 23  |  Page 24  |  Page 25  |  Page 26  |  Page 27  |  Page 28  |  Page 29  |  Page 30  |  Page 31  |  Page 32  |  Page 33  |  Page 34  |  Page 35  |  Page 36  |  Page 37  |  Page 38  |  Page 39  |  Page 40  |  Page 41