|
Boost : |
Subject: Re: [boost] [GSOC]SIMD Library
From: Tim Blechmann (tim_at_[hidden])
Date: 2011-03-29 08:29:13
>> Would it be possible to design Boost.SIMD so that it allows switching
>> between different implementations/backends. For example OS X already
>> provides the Accelerate framework so I might want to/need to use that,
>> or I might want/need to use Intel's MKL or AMD's ACML-MV or Framewave...?
>>
>> I'm looking for a library to replace Framewave (which seems to be dead
>> for almost two years and might perhaps be useful for scavenging), for
>> relatively simple 1D vector operations (multiplication, addition,
>> trigonometric functions, log, exp...), if NT2 already supports those
>> (SSE1 and optionally SSE2 versions) it would be a great place to start
>> with/as an intermediate solution while waiting for Boost.SIMD...(?)
>
> Boost.SIMD does not have first-class support for 1D vectors.
> It only works with SIMD registers. It's up to you to allocate your
> memory (which you can do using the SIMD allocator), load/store SIMD
> registers from/to it (which you can do using the SIMD iterator adaptor),
> run or parallelize loops, etc.
i think this is very important, since most frameworks only provide vector
functions, but are not composable.
> As for MKL, it provides fast implementations of math functions. We are
> not certain yet whether those will be part of Boost.SIMD or not --
> indeed, maybe Boost.SIMD should only contain 'trivial' arithmetic and
> bitwise functions.
> In any case, our implementations of the trigonometric and exponential
> math functions are faster and more accurate than those of MKL.
i would really appreciate if a boost.simd library would provide math functions!
implementing them is not really straight-forward but gives a significant
performance gain. they could be implemented in a way ontop of the `trivial'
arithmetic interface, so the implementan could be reused among different
backends.
cheers, tim
-- tim_at_[hidden] http://tim.klingt.org Linux is like a wigwam: no windows, no gates, apache inside, stable.
Boost list run by bdawes at acm.org, gregod at cs.rpi.edu, cpdaniel at pacbell.net, john at johnmaddock.co.uk