macstl is 450x faster on Linux PPC

26

Author: Glen Low

Glen Low writes “Pixelglow Software today launched a new version of their flagship library, macstl 0.3.1. Available now, macstl is a portable SIMD (single instruction multiple data) toolkit that massively accelerates array-based code. It features fast transcendental and integer division functions, complex number arithmetic and cross-platform programming, all in an easy-to-use syntax. Highlights of this version: Linux x86 and Cygwin support, new conjugate function, new refarray class and extensive re-optimization for gcc 4.0.”If the G4 [microprocessor] were a rocket… then macstl would be its fuel,” reports Ilya Lipovsky, Algorithms Engineer at SKY Computers, provider of high performance embedded servers. Ilya tested macstl 0.3.1 with gcc 4.0 on a Linux PPC system and achieved a 450x speed up in trigonometric code over raw array loops.

macstl requires Mac OS X 10.3 or 10.4, Windows 2000, XP or Server 2003, Linux PPC or x86, or Cygwin 1.5. The library is open-source and free when derived code is reciprocated, otherwise it is $99 for a Personal license, $499 for a Corporate License and $2499 for a Redistributable License.

Product: http://www.pixelglow.com/macstl/
Download: http://www.pixelglow.com/macstl/download/
Email: macstl at pixelglow dot com.

List of New Features

– Fixed class scope vector typedefs, missing PowerPC intrinsics header, vector initializer syntax for FSF 3.4 [ILi*].
– Added complex conj function for vec and valarray [ILi*].
– Improved valarray expression performance: v1 [slice].
– Improved valarray code generation: CSE, inlining limits, literal terms, array term elements, statarray construction, compiling -faltivec without -maltivec for Apple gcc 4.0.
– Added refarray class [PBa].
– Fixed buffer overflow in integral valarrays for SSE2; added optimizations for valarray expressions: v1 >> k and v1 k for SSE2 [MSh].
– Fixed accumulate array dispatch, integer constant overflow, literal benchmark test for SSE2; fixed chunking iterator pessimization for gcc 3.3/4 [ILi, RBe].
– Added makefile for Linux x86 [ILi*].
– Added support for FSF gcc 3.4 on Cygwin 1.5.
– Added differently typed valarray construct and assign from terms, valarrays of sized booleans, select with sized booleans [ILi].
– Fixed unix makefile directory.
– Added macstlizer conversions: abs, abss, cmpeq, max, min.
– Improved readme file.

More about macstl and Pixelglow Software

SIMD is a feature of modern CPUs like the PowerPC Altivec and Intel MMX/SSE that allows them to process data 4x to 16x faster than regular, scalar processors. Until now, each processor had its own sets of opcodes and extensions, and previous library-based solutions have either been inflexible or slow. macstl tries to unify the disparate SIMD architectures in an straightforward C++ header-only library, while still offering the full surprising speed of SIMD.

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 brings many benefits to the project, including greater transparency of code and faster development turnaround. 0.3.1 is the first version featuring significant open-source collaboration.

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.”

Pixelglow Software stands for “simply brilliant stuff” — the software house that specializes in synthesizing disparate technologies, making deeply powerful tech simple to use. Pixelglow Software’s flagship product, the Altivec-optimized SIMD toolkit macstl, is well regarded in numerics, high-performance and open-source circles since 2003. Their port of Graphviz to Mac OS X took two prizes in the Apple Design Awards of 2004: Winner for Best Open Source Product and Runner-Up for Best New Product.”