Sourcery VSIPL++

Manuals

Questions

With Sourcery VSIPL++™, you'll significantly reduce the SLOC count of your signal- and image-processing application.

Fewer lines of code means an application that is:

  • Easier to write
  • Easier to debug
  • Easier to maintain

And best of all, your application can run just as fast as if you'd spent ages optimizing it by hand.

Learn more about the performance, productivity, and portability benefits of Sourcery VSIPL++.

Case Study: SIP Application Benchmark Results ASAP

A team of software developers at a major defense contractor recently embarked on an ambitious project: to evaluate the performance and power consumption of emerging multi-core processors for possible application in Department of Defense embedded systems using realistic signal- and image-processing application-level benchmarks. They were given just three short months to report initial results.

They chose two CodeSourcery products for their tests: Sourcery G++, a C++ development environment based on the GNU Toolchain and the Eclipse IDE, and Sourcery VSIPL++, an optimized implementation of the open standard VSIPL++ API.

The team started in the lab, developing on laptop computers. Although they had no previous experience with either C++ or the VSIPL++ API, they developed code for two benchmarking applications and started collecting data within two months. In the third month, they completed their initial data collection on schedule and even had time to begin tuning and optimizing their applications.

At the end of three months, they were encouraged by the initial performance results. They saw a 2x increase when moving from single to dual core operation — and identified possibilities for further performance improvements.

Sourcery VSIPL++ contributed to the team's efforts with its productivity, portability and performance.

Productivity. The use of VSIPL++ led to compact code. The team's Sourcery VSIPL++ implementation was more than 30% smaller than a C implementation of the same benchmark. The team concluded that the VSIPL++ API resulted in a clean design with easy to read code and relatively few chances for error.

Specifically, the developers noted two ways in which the use of Sourcery VSIPL++ enhanced their productivity. First, the VSIPL++ syntax handled much of the vector-matrix bookkeeping that otherwise must be laboriously written by hand for each application. Second, Sourcery VSIPL++ simplified the development of certain error-prone types of code, such as index management for subviews of matrices.

Portability. The Sourcery VSIPL++ application ported seamlessly to the target. The team ported their benchmark applications from the desktop without ever running a debugger on the target. And they achieved their performance results without using any processor-specific optimizations.

Performance. The team made use of Sourcery VSIPL++'s profiling capabilities to identify opportunities to to directly access a lower-level math library in selected areas to get the best performance.