Boost logo

Ublas :

Subject: [ublas] Numeric bindings for Intel Performance Primitives (IPP)
From: Markus Rickert (rickert_at_[hidden])
Date: 2009-03-24 11:24:02


I've been using the Intel Performance Primitives (IPP) for quite some
time at our department for several applications in robotics, collision
detection and motion planning. Maybe these bindings are also interesting
for other users.

The ippm library for small matrices only works on dense matrices, but
has support for stride parameters. Vector and matrix proxies such as
ranges, rows, columns etc. are supported through this.
These stride parameters are however missing in the ipps library. Due to
this, proxies are not supported there.

In order to be able to use optimized implementations on different
architectures (Intel, AMD, Cell, ...), I am also thinking about a common
interface description - similar to the proposed lapack::solve prototype.
The idea would be to simply change a namespace to switch to a different
platform (using boost::numeric::bindings::ipp; -> using
boost::numeric::bindings::acml;) without additional modifications.

Please find attached the implemented bindings and additional test code.