Altera has launched the first first software development kit (SDK) to take OpenCL software and target it to field-programmable gate arrays (FPGAs) rather than general-purpose processors or graphics processors.
“The industry’s approach for boosting system performance has evolved over time from increasing frequency in single-core CPUs, to using multi-core CPUs, to using parallel processor arrays,” said Vince Hu, vice president of product and corporate marketing at Altera. “This evolution leads us to today’s modern FPGAs, which are fine-grained, massively parallel digital logic arrays architected to execute computations in parallel. Our SDK for OpenCL enables customers to easily adopt FPGAs and leverage the performance and power benefits the devices provide.”
The OpenCL tool flow developed by Altera automatically converts OpenCL kernel functions into custom FPGA hardware accelerators, adds interface IPs, builds interconnect logic and generates the FPGA programming file. The SDK includes libraries that link to OpenCL API calls within a host program running on the CPU.
The accelerators compiled into Altera’s FPGAs use a different approach to parallelizing OpenCL code to that used on CPUs and GPUs, where parallel threads are executed across an array of cores. The FPGA tools target custom, deeply pipelined hardware circuits that support simultaneous multithreading. Each of these pipelines can be replicated many times to provide greater parallelism. Altera claims the FPGA-based targets can deliver five times greater performance per watt compared to other hardware targets.
Altera’s decision to support OpenCL revolves around the belief that C-based software will make it easier for the company to attract software developers to FPGA-based hardware than it has found with existing HDL-focused tool flows. The company says SDK reduced development time by months for one customer’s video processing application. Another key target market is finance, such as high-frequency trading support.
To support software users with ready-made boards, the SDK currently supports BittWare and Nallatech hardware. Additional third-party boards will be supported with future releases of the SDK.