Zeljko Loncaric, Marketing Engineer at Congatec drills down to the very core of embedded applications to explore how processing power is evolving in the face of ever-more demanding graphic intensive applications
Embedded computing tasks are becoming increasingly more demanding across all applications. The same can be said for processors, which must be flexible and customisable in order to encode or decode a variety of media signals and data formats such as JPEG, MP3, MPEG2.
Depending on the specific requirements, there is a cacophony of processor types to choose from. If the application is very specific and individual, a digital signal processor (DSP) is a common choice.
If the application provides the basic requirements for an X86 architecture, use of a General Purpose Computing on Graphics Processing Unit (GPGPU) is the best fit.
For a long time now CPUs have been required to offer dedicated and often parallel performance for the processing of complex algorithms on top of high generic, mostly serial processing power.
This is necessary, for instance, when encoding or decoding high-definition video, processing raw data – such as in industrial image processing – or performing complex vector calculations in diagnostic medical imaging procedures.
If processed in an x86 design, up to now these tasks required high computing performance with high clock frequencies, resulting in high-energy consumption and heat dissipation.
While multi-core technology and continuous efficiency improvements in processor technology can address these issues to a certain degree, the fact remains that a speeding up of the clock rate alone is not enough to meet all requirements.
For example, high 3D performance is needed to create appealing animation, visualisation and smooth playback of HD content. The graphics core also needs to support the CPU when decoding HD videos for the best experience.
To address this, AMD has mixed both technologies together in its embedded G-Series platform. Users receive an extremely powerful graphics unit with a highly scalable processor.
The Accelerated Processing Unit (APU) offers a twist of serial processing power availed from the processor cores, combined with parallel processing power from the graphics card.
This signals an end to the previous software-based division of tasks between the processor and the graphics unit. Simply put, this means that the processor cores can offload parallel tasks to the graphics unit, thereby increasing the overall performance of the system far beyond what has previously been possible.
Driven by the consumer market, the performance of the graphics cores has steadily increased. In particular, the 3D representation of virtual worlds has pushed the specialisation of graphics cards and created a demand for high parallel processing capacity.
Because of the variety of graphics data, such as the calculation of texture, volume and 3D modelling for collision detection and vertex shaders for geometry calculations, the functions are no longer firmly cast in hardware, but are freely programmable.
As a consequence, advanced graphics units provide an enormous and highly flexible performance potential. With the help of GPGPUs, this potential can be used not just for the calculation and representation of graphics, but also for data processing.
Possible uses include the calculation of 3D ultrasound images in medical applications, face recognition in the security sector, industrial image processing and data encryption or decryption. Certain types of data – e.g. sensors, transducers, transceivers and video cameras – can be processed much faster with more efficiency, using dedicated processing cores than with the generic serial computing power of x86 processors.
This is because with a GPGPU, it is irrelevant whether the data generated by the program code is purely virtual, or whether it is supplied via an external source. So it makes good sense to unite CPU and GPU in an APU for an even stronger team.
It is not so much the CPU, but the APU performance, which is important. This means OEMs and users need to break away from the cliché of ‘excellent CPU performance’, because processing power is no longer alone defined by the CPU; these days the graphics unit plays a crucial role as well.
In the past, developers struggled with the fact that traditional CPU architectures and programming tools were of limited use for vector-oriented data models with parallel multi-threading. With the introduction of AMD Fusion technology, that hurdle has been overcome.
Easy to use APIs such as Microsoft DirectCompute or OpenCL, which are supported by this technology, enable application developers to efficiently harness the power of the graphics core of the APU for a variety of tasks beyond imaging – provided, of course, that the graphics core supports this.
In future, GPGPUs will be able to fulfil the classical functions of DSPs even more closely. But it is also clear that a pure DSP application will not be replaced by a GPGPU. For a GPGPU to perform digital signal processing effectively, the application has to support typical computing features.
Congatec