FIAS . Impressum . Privacy

Vc going for 1.0

Boudewijn Rempt [please enable javascript to see the address]
Mon Oct 5 10:56:26 CEST 2015


Yay!!!

-- 
Boudewijn Rempt | http://www.krita.org, http://www.valdyas.org

On Mon, 5 Oct 2015, Matthias Kretz wrote:

> Hi all,
>
> I'm finally (sorry, this took way too long) on track for releasing Vc 1.0.
>
> The most important changes are:
>
> * AVX (u)int_v is now only one SSE width instead of the full AVX width.
>
> * AVX2 support added with doubled width for (u)int_v and (u)short_v.
>
> * Xeon Phi support (Knights Corner). This requires an Intel compiler.
>
> * Dropped the guarantee of (u)int_v::size() == float_v::size(). Therefore, the
> implicit conversion between int and float vectors present in Vc 0.x is ill-
> formed with 1.0.
>
> * New simd_cast<T> cast function. It allows arbitrary conversions from one or
> more Vectors/SimdArrays to one or more Vectors/SimdArrays.
>
> * New simdize<T> expression "vectorizes T". This is still somewhat
> experimental.
>
> * sfloat_v is gone in favor of a generic SimdArray<T, N> class template
> allowing you to build vector objects of arbitrary width. Thus, to get the old
> sfloat_v type back you'd write 'using sfloat_v = Vc::SimdArray<float,
> Vc::short_v::size()>;'. SimdArray is not meant to be used as a container, i.e.
> N should be "small".
>
> * Besides Vc::Vector<T> you can also now directly use microarchitecture
> specific types, such as Vc::SSE::Vector<T>. This enables you to use SSE
> vectors and AVX vectors in the same translation unit. You should prefer
> SimdArray<T, N> in most cases, though.
>
> * In Vc 0.x the Vector<T> class template was defined multiple times in
> different namespaces. Now it's a single class template Vc::Vector<T, Abi> with
> aliases in the implementation namespaces. This enables you to write a function
> such as
>  template <typename T, typename Abi> void f(Vc::Vector<T, Abi> x)
> which matches any Vc Vector type, whether that's the Scalar implementation or
> an actual SIMD implementation.
>
> * Gather & scatter received a new interface that is a lot more intuitive and
> flexible. Use Vc::vector and/or Vc::array as alternatives to std::vector and
> std::array to get an additional subscript overload accepting Vc::Vector
> objects as argument to the subscript operator for gather & scatter.
>
> * Requires C++11. Thus, many older compiler versions and, at least for now,
> MSVC are not supported anymore.
>
> * More stuff I didn't think of right now.
>
> If you are interested in using Vc 1.0 in your project soon I recommend you
> check out current Vc master and check out whether it works for you. There are
> still a few remaining issues, especially with the Intel compiler that will
> need to get fixed for the final 1.0 release.
> Please report any issues you find on https://github.com/VcDevel/Vc/issues/new
>
> Cheers,
> 	Matthias
>
> _______________________________________________
> Vc mailing list
>[please enable javascript to see the address]
> https://compeng.uni-frankfurt.de/mailman/listinfo/vc
>



More information about the Vc mailing list
FIAS . Impressum . Privacy