Pixelglow Software today launched a major new version of their flagship library, macstl 0.2. Available now, macstl is a portable SIMD (single instruction multiple data) toolkit featuring fast transcendental and integer division functions, complex number arithmetic and cross-platform programming, all in an easy-to-use syntax. macstl requires Mac OS X 10.3 or Windows 2000, XP or Server 2003. The library is open-source and free when derived code is reciprocated, otherwise it is $99 for a Personal license and $499 for a Corporate License.
This year may see the SIMD architecture of the PowerPC Altivec acheive widespread adoption. Apple's new low-cost Mac Mini, the IBM/Sony Cell processor and the Microsoft Xbox2 console may all feature the parallel processing power of Altivec. And of course, SIMD features in the MMX/SSE/SSE2/SSE3 units of all Intel Pentium 3, Pentium 4 and Pentium M processors. Yet programming for SIMD largely remains the black art of assembly language magicians.
macstl tries to unify the disparate SIMD architectures in an straightforward C++ template library, while still offering 3.6x to 16.2x the performance of hand-coded scalar loops.
macstl is dual-licensed under the open-source Reciprocal Public LIcense (RPL) and proprietary Pixelglow Source License (PSL). The project is geared for open source with an extensible SIMD framework in place for other SIMD architectures, contributor license and mailing list, Subversion source control support and a profit-sharing scheme with contributors. Open source will bring many benefits to the project, including greater transparency of code and faster development turnaround.
The library has already won rare kudos in the Macintosh development and high performance computing industries. Holger Bettag, an Altivec enthusiast and programmer, reports that macstl "offers the nicest way of utilizing Altivec I know of: access to all the Altivec primitives, good code generation if you use a recent compiler and a much cleaner and more compact syntax that the official... interface." Gaurav Khanna, Assistant Professor of Physics at the University of Massachusetts at Dartmouth USA, says, "I'm looking closely into macstl and we are very intrigued and impressed." Paul Baxter of QinetiQ, a defense and security company in the UK, summarizes: "It's been evident... that you love this stuff and are very good with it."
The new features include:
• Added portable SIMD classes: partial support for MMX/SSE/SSE2/SSE3, standard initialization syntax.
• Added high performant transcendental functions: exp, log, sin, cos, tan.
• Added fused multiply-add optimization for valarrays.
• Added complex number arithmetic.
• Added fast integer division and modulus.
• Added adapters for Core Foundation and Foundation classes for STL.
• Added memory mapped containers.
• Updated 400+ VPERM constants.
• Updated Mach specialized vector.
• Updated COM server implementation.
• Updated and added many more unit tests and benchmarks.
• Changed licensing terms.
• Now supported on Apple Xcode 1.5 + gcc 3.3, Metrowerks CodeWarrior 9.3 and Microsoft Visual C++ .NET 2003.