The Embedded GPU Opportunity
The Embedded GPU Opportunity
By: Peter Debenham
Senior Consultant, Signal Processing
28th June 2017
The CPU (Central Processing Unit) has often been called the brains of a PC. But increasingly, the CPU is being enhanced, even supplanted, by another component in the PC, the GPU (Graphics Processing Unit). So what does this mean? Well, in layman’s terms, the PC’s brain has evolved.
Introducing GPU-accelerated computing, in recent years, GPUs have moved from being highly specialised for graphics processing to being high-speed general computing systems. But how can GPU processing be implemented and what could it achieve?
To address this, we have to look at three of the most common requirements for computing:
1. Significant processing capability
2. Rapid/low-cost development
3. Low Size, Weight, and Power (SWaP) solution
To fully realise the opportunity to deliver all three of these requirements with GPU processing, we first have to look at the traditional approaches that paved the way before us.
The traditional approach – you can only meet two of the above requirements
Traditional technologies and skillsets can only cater for any two of the three above requirements and will often follow the below scenarios:
Rapid development and low-SWaP:
– Incorporate embedded microprocessors and controllers. This is usually written in “C”, often with a Real-Time Operating System (RTOS).
– Downside: Maximum processing capability of such microprocessors is limited.
Significant processing and Rapid development:
– Use a conventional PC, maybe with GPU acceleration. You could be writing low-level code in “C” but just as likely use mathematical processing systems, such as Mathcad or Octave with their vast number of pre-written libraries.
– Downside: Certainly not low-SWaP.
Significant processing and Low SWaP:
– Create a bespoke field-programmable gate array (FPGA) to handle the job. Many FPGA System On Chip (SOC) devices (e.g. Xilinx Zynq) are very efficient in terms of power consumption.
– Downside: Notoriously slow development processes and hard to debug.
The embedded GPU alternative
GPU-accelerated computing was pioneered in 2007 by computing technology company, NVidia. By using a GPU based SOC with CUDA (NVidia’s general purpose parallel computing environment) or OpenCL (an alternative open standard for cross-platform parallel programming), we have the possibility of providing significant processing capability, rapid development, and a low-SWaP solution.
Offering high-performance computing similar to upper-end PC grade microprocessors and FPGAs, development of the most recent embedded GPUs has also changed. Now offering power consumption rates in the FPGA range, the embedded GPU meets all three requirements.
In particular with CUDA, the quality of the development tools and libraries made available from NVidia are making GPUs an extremely viable solution for exploring the art of the possible.
To summarise, some of the most exciting developments in computing in the last twenty years has been the growth of highly parallel processing in GPUs. Traditionally, this has concentrated on providing the maximum amount of processing capability for supercomputers or driving high-end gaming graphics.
However, with the arrival of embedded GPUs, we have the ability to provide solutions and meet requirements in areas where traditional methods would otherwise be unable to address. Long live the GPU.
For more information about GPU Computing, you can read Peter’s white paper on the subject here.
The CPU (Central Processing Unit) has often been called the brains of a PC. But increasingly, the CPU is being enhanced, even supplanted, by another component in the PC, the GPU (Graphics Processing Unit). So what does this mean? Well, in layman’s terms, the PC’s brain has evolved.
Introducing GPU-accelerated computing, in recent years, GPUs have moved from being highly specialised for graphics processing to being high-speed general computing systems. But how can GPU processing be implemented and what could it achieve?
To address this, we have to look at three of the most common requirements for computing:
1. Significant processing capability
2. Rapid/low-cost development
3. Low Size, Weight, and Power (SWaP) solution
To fully realise the opportunity to deliver all three of these requirements with GPU processing, we first have to look at the traditional approaches that paved the way before us.
The traditional approach – you can only meet two of the above requirements
Traditional technologies and skillsets can only cater for any two of the three above requirements and will often follow the below scenarios:
Rapid development and low-SWaP:
– Incorporate embedded microprocessors and controllers. This is usually written in “C”, often with a Real-Time Operating System (RTOS).
– Downside: Maximum processing capability of such micro-processes is limited.
Significant processing and Rapid development:
– Use a conventional PC, maybe with GPU acceleration. You could be writing low-level code in “C” but just as likely use mathematical processing systems such as Mathcad or Octave with their vast number of pre-written libraries.
– Downside: Certainly not low-SWaP.
Significant processing and Low SWaP:
– Create a bespoke field-programmable gate array (FPGA) to handle the job. Many FPGA System On Chip (SOC) devices (e.g. Xilinx Zynq) are very efficient in terms of power consumption.
– Downside: Notoriously slow development processes and hard to debug.
The embedded GPU alternative
GPU-accelerated computing was pioneered in 2007 by computing technology company, NVidia. By using a GPU based SOC with CUDA (NVidia’s general purpose parallel computing environment) or OpenCL (an alternative open standard for cross-platform parallel programming), we have the possibility of providing significant processing capability, rapid development, and a low-SWaP solution.
Offering high-performance computing similar to upper-end PC grade microprocessors and FPGAs, development of the most recent embedded GPUs has also changed. Now offering power consumption rates in the FPGA range, the embedded GPU meets all three requirements.
In particular with CUDA, the quality of the development tools and libraries made available from NVidia are making GPUs an extremely viable solution for exploring the art of the possible.
To summarise, some of the most exciting developments in computing in the last twenty years has been the growth of highly parallel processing in GPUs. Traditionally, this has concentrated on providing the maximum amount of processing capability for supercomputers or driving high-end gaming graphics.
However, with the arrival of embedded GPUs, we have the ability to provide solutions and meet requirements in areas where traditional methods would otherwise be unable to address. Long live the GPU.
For more information about GPU Computing, you can read Peter’s white paper on the subject here.