Skip to content

Extended SIMD interface

Jö Fahlke requested to merge feature/proper-simd-interface into master

Intent to merge: 2018-05-21.

Design of the interface: dune/common/simd/DESIGN.md

  • Move the documentation (vc.org) into Doxygen.
  • Move the documentation (simd-abstraction.md) into Doxygen. (Moved to dune/common/simd/DESIGN.md instead)
  • (Maybe) make the test switchable between the strict and the watered-down version. (Not doing that right now, but test labels are implemented in master, !423 (merged))
  • (Maybe) use concepts for tests that can fail during compile time. If they fail during compile time we could just report them as failed during run-time. That would mean you get an overview over everything that fails, instead of seeing only the next item. (Not doing that right now)
  • Decide what to do about the failing unary - on Vc::Vector<unsigned short> [AVX] (this was, in fact, a bug in the test).
  • Decide what to do about the missing broadcast for the long, long unsigned, long long and long long unsigned versions of Vc::Vector [AVX]. (We simply don't support those types for now.)
  • Test Vc::SimdArray in addition to Vc::Vector
  • Do the explicit instantiations for Vc.
  • (Maybe) do the explicit instantiations with some cmake trickery, instead of using an extra .cc for each instantiation. (See cmake/modules/DuneInstances.cmake)
  • Introduce enough additional interface functions for the vectorization of luDecomposition() in densematrix.hh.
  • Work around (or fix) the SFINAE issue with clang (see CI). (I don't remember what this was about, seems gone)
  • What to do about the unary +, -, and ~ on masks (not supported by Vc atm), see test.hh (line 1084). Leaving that open for the moment -- we have similar issues with vectorclass, see https://gitlab.dune-project.org/lukas.renelt/dune-vectorclass/merge_requests/3#note_42995.
  • Deal with compile time of unit tests.
Edited by Jö Fahlke

Merge request reports