Skip to content
Snippets Groups Projects

LoopSIMD for vector types

All threads resolved!

This MR adapts LoopSIMD to take another vectorized type as template argument. If Tis a vectorized type, then LoopSIMD<T,k> has lanes<T>()*k lanes and the same scalar as T (Scalar<LoopSIMD<T,k>> == Scalar<T>).

This is useful with dune-vectorclass, to create arbitrary large vector types with explicit SIMD support, for example.

Feel free to push any changes to the source branch!

Edited by Nils-Arne Dreier

Merge request reports

Loading
Loading

Activity

Filter activity
  • Approvals
  • Assignees & reviewers
  • Comments (from bots)
  • Comments (from users)
  • Commits & branches
  • Edits
  • Labels
  • Lock status
  • Mentions
  • Merge request status
  • Tracking
  • added 1 commit

    • c1ced7de - use the mask type explicitly in any* and all* functions of LoopSIMD

    Compare with previous version

  • added 1 commit

    • a47e522f - adapt `cond` method of LoopSIMD

    Compare with previous version

  • Nils-Arne Dreier resolved all discussions

    resolved all discussions

  • added 1 commit

    • 4863b4e7 - adapt `cond` method of LoopSIMD

    Compare with previous version

  • added 1 commit

    • ee4d0000 - fix return type of LoopSIMD::lane for rvalue references

    Compare with previous version

  • Nils-Arne Dreier mentioned in merge request !670 (merged)

    mentioned in merge request !670 (merged)

  • Nils-Arne Dreier unmarked as a Work In Progress

    unmarked as a Work In Progress

  • mentioned in commit 32c2fdd3

  • mentioned in commit 3c5922d7

  • Please revert this. While building the tests in dune-common was not a problem before (despite the huge amount of tests just for the SIMD stuff), after merging this, building looptest.cc.o with g++-8 -c -O0 take about 9gb of memory.

  • @carsten.graeser what is taking that long? The updated SIMD tests, or also the other tests?

  • The 9gb are just for the looptest.cc.o target, nothing else. I did not check the execution time of the tests.

  • Thanks for pointing out this issue. @nils.dreier is not in office this week, but we'll try to fix this next weeks.

  • The reason it's taking so much memory is because Nils added a test for LoopSIMD<LoopSIMD<...> >, but did not add explicit instantiations for that.

  • Please register or sign in to reply
    Loading