Loopsimd alignment
This MR adds a additional template parameter to LoopSIMD to specify the alignment.
The default alignment is the alignment of the underlying type.
I'm not sure how to determine the proper alignment for some return types or RebindType
. To mitigate that problem I define conversion constructors and assignment operators from LoopSIMD types with different alignment.
This MR depends on !669 (merged).
Feel free to push at the source branch!
Merge request reports
Activity
- Resolved by Nils-Arne Dreier
added 2 commits
added 1 commit
- 303b6538 - Apply suggestion to dune/common/simd/loop.hh
added 1 commit
- 2f131bbe - add assertion that checks the allignement of a LoopSIMD object
added 1 commit
- d7f8f261 - only check whether LoopSIMD is at least as good aligned as it is guaranteed
regarding the
RebindType
I suggest to take the max alignment of the old and the new type.You are right. I changed this. I recognized that previously even
Rebind<double, LoopSIMD<float, 1>>
was ill-formed. Since it would be resolved toLoopSIMD<double, 1, 4>
, which is ill-formed since the natural alignemnt ofdouble
is 8.regarding the implementation, please check with Jö, I have the impression that you started with an older master and now there are some inconsistencies regarding the bool return types.
I don't really know what you mean. I merged the current master. It went through without problems. Just waiting for the CI...
added 48 commits
-
d7f8f261...dfa40b10 - 46 commits from branch
core:master
- 4356f480 - Merge remote-tracking branch 'origin/master' into loopsimd_alignment
- bbe30918 - use the maximum of A and the alignemnt of the underlying type for a rebind type
-
d7f8f261...dfa40b10 - 46 commits from branch
assigned to @christi
mentioned in commit 3c5922d7
Please revert this. MR !669 (merged) already increase the amount of memory needed to build
looptest.cc.o
withg++-8 -c -O0
to about 9gb. This MR !670 (merged) is even worse: Now I can no longer build this target (and thusbuild_tests
) with 16gb memory.Also the time used by the CI increased from about 5min to about 1h. The fact that the pipeline failed with a timeout could have been an indicator for this.
mentioned in commit ebae92f0
mentioned in merge request !782 (merged)