VME & Critical Systems - Summer 2011
When faced with optimizing multiple library APIs for multiple processor architectures, compilers are essential in cutting coding man-hours.
For a DSP system designer, the key to performance and portability is to use an optimized math library. For the library provider, there are many challenges to overcome to provide that performance across a variety of platforms.
The High Performance Embedded Computing landscape is a rapidly changing one. As recently as two years ago, the processor of choice for compute-intensive signal and image processing applications was PowerPC with Altivec. Today the choices are many and diverse – PowerPC with or without Altivec, Intel Architecture with SSE or AVX, GPGPU with CUDA or OpenCL, Tilera devices, ARM devices with SIMD coupled with DSPs, and more. For the application developer, the way forward is clear – use standards-based libraries such as VSIPL and VSIPL++ or higher level abstractions such as Model Based Design that exploit such libraries under the hood. For the COTS board developers, the challenge is how to optimize libraries for all these disparate architectures without resorting to coding methods that would be economically unviable. Here we explore some of the techniques and technologies that can be exploited.