|
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
basically
> 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
end-user,
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 acm.org, gregod at cs.rpi.edu, cpdaniel at pacbell.net, john at johnmaddock.co.uk