Boost logo

Boost :

Subject: Re: [boost] How to structurate libraries ?
From: joel falcou (joel.falcou_at_[hidden])
Date: 2009-01-19 02:24:44

Le Lun 19 janvier 2009 07:49, Patrick Mihelich a écrit :
uBlas doesn't do any explicit vectorization. In an ideal world the
> compiler would handle this and emit optimal code for whatever
> architecture. Back in the real world, speed issues make uBlas
> unusable for my work. Better compiler technology would
help, BUT, I think
> that it is a mistake to simply blame poor
compilers. A high-level library
> like uBlas has a great deal of
compile-time knowledge about data layout
> and computational
structure that a compiler optimization pass on IR code
> does not.
In such circumstances I think it is reasonable and logical to
shift some effort from the compiler to library-side code generation.

Exactly and that's exactly the same need I had for my own linear
algebra library.
> I think this is a useful
abstraction, and demonstrates the difference between something
like Boost.SIMD and uBlas. The SIMD library is concerned with operating
> with maximal efficiency on fixed-size "packets" of data,
where the size of
> a packet is determined by the data type and
available instruction set.
> This can be used as a building block
by, say, uBlas in operating on general
> arrays of data.

Yes, and that's why I proposed it to the list. I had need that I covered
as much as I could but I'm sure seasoned Boost dev adn user will fidn
things I didn't catch first. Hence, the proposal I made.

Although I would be very happy to use Boost.SIMD directly as an

You made my day :)

> I think that its
greatest impact would be in other libraries. uBlas, dynamic
bitset, GIL, and Math are Boost libraries which spring to mind as
> potentially benefiting enormously from a good cross-platform
wrapper for
> SIMD operations.

Yup, crawling the ML
showed that lots of user had performances issues with those sometimes.

> In fact, I had been thinking recently about writing my own
version of a
> Boost.SIMD library based on Proto and Eigen2's
packet model, but I'm very
> happy that Joel has taken the lead
and actually produced some working
> code.

I plan to do
some clean-up and "boostify" my code so far and uploading
something either on the vault or on my webpage in the upcoming weeks. What
I seek is experience and return for user using "exotic" compiler
I can't access too (Borland and things) and Visual studio users cause I
had hard times getting a proper abstraction going on with VC++

> I think a good Boost.SIMD library would be tremendously exciting,
and I'm
> eager to see some code in the Vault. I'm a little
surprised at the
> apparent hostility on the list so far.

So do I

Boost list run by bdawes at, gregod at, cpdaniel at, john at