Altera SDK for OpenCL
Use for Open computing language (OpenCL?)? Altera?? SDK, users can abstract the traditional hardware FPGA development process and adopt a faster and higher level software development process. Quickly complete the OpenCL Accelerator code emulation on a x86-based host, get detailed optimization reports, including specialized algorithmic pipelining information, and shorten compilation time until a satisfactory kernel code result is obtained. Using pre-written optimization? OpenCL? or? RTL function, call them from the main program, or directly from your? The OpenCL kernel calls them.
What is OpenCL?
The OpenCL standard is the first open, royalty-free, unified programming model that accelerates the implementation of algorithms on heterogeneous systems. OpenCL supports the development of code using C-based programming languages on different platforms, such as central processing units (CPUs), graphics processing units (GPUs), digital signal processors (DSPs), and Field programmable gate Arrays (FPGAs).
For software engineers, OpenCL is a programming model and is a method for system planners. It extends parallel functionality based on standard ANSI C (C99). OpenCL also includes an application interface (API), typically via PCI Express? The host communicates with the hardware accelerator, or a kernel communicates with another kernel that has no host control. In addition, as a vendor extension, Altera also provides an I/O channel API that inputs data from the 10GB Ethernet stream I/O interface directly into the kernel. The key advantage of OpenCL is that it is a portable, open, royalty-free standard, which is different from the key to a dedicated programming model.
In the OpenCL model, the user plans a task to control the queue, with at least one queue per device. The OpenCL runtime feature decomposes the data parallel task into pieces and sends it to the processing unit in the device. This is the method by which the host communicates with any hardware accelerator. The vendor-related content is abstracted by each hardware accelerator vendor. The Altera SDK for OpenCL completes this work and complies with the OPENCL 1.0 standard.
For more information on the OPENCL 1.0 standard, please refer to the OPENCL specification for Khronos. OpenCL is supported by many suppliers of the Khronos group. If you need additional information, please visit http://www.khronos.org/opencl/.
What is the Altera SDK for OpenCL?
The Altera SDK for OpenCL abstracts out the complex FPGA design, enabling software programmers to write hardware-accelerated kernel functions using the ANSI C-based OpenCL C, and supporting other OPENCL constructs to facilitate application implementation on the FPGA. As part of our SDK, we offer a full suite of tools to enable software programmers to complete the development process more quickly, including:
- The emulator for stepping through the code on x86 ensures that it works correctly.
- Detailed optimization reports to understand the dependencies of the load and storage internal loops.
- A parser that shows the internal performance of the kernel, ensuring proper memory consolidation and non-blocking hardware pipelining.
- The OpenCL compiler is able to optimize the kernel code 300 times in one step, resulting in an entire FPGA image.
The Altera SDK for OpenCL has been fully operational, enabling Altera to become the first FPGA company to meet the OPENCL specification for the solution. The Altera SDK for OpenCL supports a variety of main CPUs, including embedded ARM in SoC devices. CORTEX?-A9 processor Cores , IBM Power series processors, and standard x86 CPUs. The OpenCL-oriented Altera SDK supports scalable solutions on multiple FPGAs and multi-block boards as well as various memory targets, such as DDR SDRAM for sequential memory access, QDR SRAM for random memory access, or FPGAs that support low-latency memory access Memory. Semi-precision and single-precision and double-precision floating-point are also supported.
Altera SDK for OpenCL