GHS Best in Class Solution for PowerPC AltiVec Processors

Green Hills Software has a 20-year history offering the best in compilers for embedded processors. The Green Hills Software PowerPC AltiVec compiler is no exception, providing the ultimate in execution speed, code efficiency, portability, standards compliance, and tools integration.

AltiVec provides a SIMD (Single Instruction Multiple Data) extension to the PowerPC architecture that permits the same instruction operation to be applied to multiple data items simultaneously (for example, four adds can be executed in one clock cycle). The AltiVec vector engine performs a subset of the PowerPC's standard floating point operations, processing arithmetic data 128 bits at a time. For example, the vector engine can perform up to four 32-bit floating-point operations, eight character operations, or 16 integer operations in parallel in a single clock cycle. This vector processing capability greatly increases execution speed for repetitive, compute-intensive applications. Integrating the AltiVec engine on a PowerPC processor also increases performance and reduces cost by eliminating the need for external DSP clusters and other specialized math coprocessors.
 

GNU Compiler Benchmark Results

In a benchmark comparison recently completed by a Green Hills customer, a highly optimized version of the Free Software Foundation's GNU v2.95.2 compiler was pitted head-to-head against the Green Hills compiler in a variety of compute-intensive applications. These benchmarking applications included image recognition, synthetic aperture radar, seismic wave propagation, optical radio density, IC CAD, placement and global routing, double-precision FFT, and Clinpack linear algebra. In these tests, the Green Hills Software compiler consistently outperformed compiler by as much as 38%. The Green Hills Software C++ compiler was particularly fast at key operations such as throw/catch exceptions, dynamic memory allocation, and procedure calls, and generated by far the most efficient code for C++ templates.
 

 

Results from Benchmark Report

  • Contest - SAR, single processor implementation (fp)
  • OFDM/FFT - using AltiVec extensions (mixed)
  • Predication - Averaging function from SAR (fp) (both PPC and AltiVec)
  • 179.art - Image Recognition (fp)
  • 183.equake - Seismic wave propagation (fp)
  • 056.ear - simulates ear using FFT and other math functions (fp)
  • Clinpack - linear algebra package benchmark in C (fp)
  • Slalom - optical radio density of interior of a box (fp)
  • Tfft - tests double precision fft (fp)
  • 175.vpr - IC CAD (int)
  • 052.alvinn - trains neural net using backprojection (fp)
  • 008.espresso -- integer ops (int)
  • 023.eqntott - integer sorting (int)
  • Stanford - mixed program benchmark (int & fp)
  • AltiVec Example -- a simple sum of squared differences which operates on two frames of data (int)

Test

 

Result vs. GNU
(% better)

Contest   -1.8
OFDM/FFT   0.0
Predication - AltiVec   37.7
Predication - PPC   23.6
179.art   4.3
183.equake   -1.1
056.ear   25.6
Clinpack SR
SU
DR
DU
  16.2
6.4
8.5
4.9
Slalom   0.4
tfft   1.9
175.vpr   0.0
052.alvinn   8.5
008.espresso   1.1
023.equtott   9.4
AltiVec example   14.6