
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.
In fact, I had been thinking recently about writing my own version of a Boost.SIMD library based on Proto and Eigen2's
Yup, crawling the ML showed that lots of user had performances issues with those sometimes. 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