
Sourcery VSIPL++™ lets you take advantage of the multi-core performance gain without the development pain.
Sourcery VSIPL++ makes multi-core programming easy because you can:
- Express your SIP algorithm naturally — in terms of FFTs, matrix operations, etc.
- Achieve streaming and parallel operation without writing message-passing or DMA code
- Stay away from complex architecture-specific code and maintain portability
- Scale up to more processors by changing no more than a few lines of code
Learn more about the performance, productivity, and portability benefits of Sourcery VSIPL++.
Sourcery VSIPL++ for the Cell Broadband Engine Processor: Resources
- Download a CodeSourcery white paper on developing signal-processing applications for the Cell/B.E. processor.
- Read an IBM Global Engineering Solutions briefing paper on Sourcery VSIPL++ for the Cell/B.E. processor.
The Right Software Tool: A True Story
A company once announced a software tool that promised to making programming easier without sacrificing
performance. With this tool, wrote its inventors, a problem, which has been concisely stated in a
language which does not resemble a machine language, will be executed in about the same time that
would be required had the problem been laboriously hand coded.
Initially, the idea met with resistance. Why would an expert programmer ever use a software program to generate code when he or she could program the computer directly in assembly code?
Eventually, however, this tool found widespread acceptance and facilitated the development of more complex applications for the latest high speed computers. In fact, today, no programmer would consider writing an entire application in assembly code.
The software tool? The IBM Formula Translating System, i.e., the first FORTRAN compiler, first announced in 1954.
Although much has changed in the past fifty years, the advantages of leveraging the right software tool remain the same. In fact, with today's complex multi-core systems, increasing developer productivity is even more essential.
Consider the advantages of Sourcery VSIPL++ for the Cell Broadband Engine for developers of signal- and image-processing applications:
First develop, then profile, then optimize. Skeptics may suggest that the only way to get optimal performance from the Cell/B.E. is to hand code both the computations for the Synergistic Processing Engines and the DMAs to manage communications. History, though, suggests a better approach.
FORTRAN succeeded partly because it automated tedious, error-prone aspects of programming. Developers found that they could achieve the best results by coding in a high-level language, profiling their application, and perhaps rewriting an inner loop in assembly language.
Sourcery VSIPL++ offers similar productivity benefits. Using the compact VSIPL++ API, SIP developers can first implement a functionally complete application with significantly fewer lines of code than they would otherwise need. Then, using Sourcery VSIPL++'s built-in profiling capability, they can tune application performance by hand coding a few custom SPE computation kernels (called user-defined kernels) or by experimenting with different data transfer patterns to balance the amount of computation with the amount of data transferred to and from the SPEs for certain computations.
Reduce the learning curve. The Cell/B.E., with its heterogeneous multi-core architecture, presents obvious challenges for the developer experienced in programming for a conventional processor. And multi-Cell systems compound the difficulty.
Another winning attribute of FORTRAN was that it was easier to learn than IBM 704 assembly language.
Sourcery VSIPL++ for the Cell/B.E. likewise reduces training time by allowing developers to use what they already know. Developers can express their SIP algorithms in terms of FFTs and matrix operations, while Sourcery VSIPL++ takes care of details such as double-buffering of communications to hide communication latency behind computation. Moreover, Sourcery VSIPL++ implements a C++ API, so it can be used with familiar development tools.
References
Preliminary Report,
Specifications for the IBM Mathematical FORmula TRANslating System,
Fortran. New York: IBM Corp., Nov.10, 1954 (http://www.softwarepreservation.org/projects/FORTRAN/FORTRAN_PreliminaryReport_1954.pdf).
IBM Archives, John Backus (http://www-03.ibm.com/ibm/history/exhibits/builders/builders_backus.html)