Market dynamics in almost all end markets are driving the industry toward programmability in silicon. The convergence of technology and the value that programmability offers customers are driving the broad adoption of FPGAs. FPGAs are widely used in telecommunications, networking, computer, storage, industrial, automotive, and defense applications.
Programmability, combined with the latest hard and soft IP and other technologies, enables customers to get the best balance of performance in their systems.
The demand for increased heterogeneity in computing systems is partially due to the need for high-performance, highly reactive systems that interact with other environments. For example, audio/video systems, control systems, and network applications. In the past, huge advances in technology and frequency scaling allowed the majority of computer applications to increase performance without requiring structural changes or custom hardware acceleration.
First, they targeted CPUs and looked for higher acceleration through frequency scaling. Then, they increased the number of processors to 8 or 16 to scale performance. With that, companies started looking at multicore solutions. However it was not an easy task for programmers to target multicore solutions. Then came along GPUs and they provided a massively parallel array solution of these smaller cores. You can see that the trend slowly points towards more programmability and parallelism, which leads us to FPGAs.
OpenCL was originally developed by Apple and is now managed by a large, industry-wide consortium. Let’s look at OpenCL in more detail.
OpenCL is a programming model for software engineers and a methodology for a system architect or engineering management. It is based on standard ANSI C (C99) with extensions, to add parallelism. OpenCL also includes an API, a standard interface for the CPU to communicate with the hardware accelerator. A key benefit of OpenCL is that it is a portable, royalty-free open standard, which is a key differentiator versus NVIDIA’s CUDA model. The OpenCL model allows any CPU to communicate with any hardware accelerator. It’s up to the individual CPU and hardware accelerator vendors to abstract away vendor specific implementation in order to meet conformance testing.
Using the model, the host CPU offloads performance-
Overview of OpenCL model:
Here is a closer look at how OpenCL could work with a CPU communicating with an FPGA as an accelerator.
The software engineer writes their C code and uses a Standard C compiler on their host CPU of choice. Most of the code in the system is Standard C code running on the host CPU. The software engineer writes some functions in OpenCL C that runs through an OpenCL compiler.
An OpenCL application consists of a host program and kernel code. The host program is pure software written in Standard C. Any Standard C compiler is able to compile this host program, for example, Microsoft Visual Studio or GCC. Here, the line items in blue in the host code tell the processor to execute the kernel – more specifically, to copy the data from the host processor into the accelerator, which is the FPGA. It asks the FPGA to run a particular kernel and then copy the data back from the FPGA to the host.
Benefits of OpenCL in altera FPGA
Performance per watt: The FPGA fabric offers high flexibility to minimize the power usage. Designers can use only logic elements as needed to generate custom hardware for the kernel, resulting in inherently lower power. Also, OpenCL generates custom hardware for your kernel, that is, it maps the hardware to your algorithm!
Read More: http://www.iwavesystems.com/
For Details: email@example.com
iWave Systems Technologies
iWave Systems Technologies