New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Update CPU Architectures, Update YATeTo #962
Conversation
Maybe also related to #960 . (i.e. the split between |
Codecov Report
❗ Your organization needs to install the Codecov GitHub app to enable full functionality. @@ Coverage Diff @@
## master #962 +/- ##
=======================================
Coverage 14.39% 14.39%
=======================================
Files 253 253
Lines 14223 14223
=======================================
Hits 2047 2047
Misses 12176 12176
📣 We’re building smart automated test selection to slash your CI/CD build times. Learn more |
src/Kernels/common.hpp
Outdated
@@ -126,7 +126,7 @@ constexpr unsigned int | |||
* @return aligned number of reals. | |||
**/ | |||
constexpr unsigned int getNumberOfAlignedReals(unsigned int i_numberOfReals, | |||
unsigned int i_alignment = ALIGNMENT) { | |||
unsigned int i_alignment = VECTORSIZE) { |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Should we then also change the variable name to i_vectorsize
?
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
IMO no, because it is an alignment (to vectorsize)
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
(same below)
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Ok, I've left it that way for now—since even though it's VECTORSIZE
, we're aligning everything. Instead, we may have to rename the ALIGNMENT
variable soon, I'd guess. And also, make both of them a C++ constexpr maybe.
I've also cleaned up the file a bit (i.e. remove i_
etc.) and templated the functions with the size of the reals used. ... That could also become a parameter instead.
src/Kernels/common.hpp
Outdated
@@ -145,7 +145,7 @@ constexpr unsigned int getNumberOfAlignedReals(unsigned int i_numberOfReals, | |||
**/ | |||
constexpr unsigned int | |||
getNumberOfAlignedBasisFunctions(unsigned int i_convergenceOrder = CONVERGENCE_ORDER, | |||
unsigned int i_alignment = ALIGNMENT) { | |||
unsigned int i_alignment = VECTORSIZE) { |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Change variable name?
src/Kernels/common.hpp
Outdated
@@ -161,7 +161,7 @@ constexpr unsigned int | |||
**/ | |||
constexpr unsigned | |||
getNumberOfAlignedDerivativeBasisFunctions(unsigned int i_convergenceOrder = CONVERGENCE_ORDER, | |||
unsigned int i_alignment = ALIGNMENT) { | |||
unsigned int i_alignment = VECTORSIZE) { |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Change variable name?
…issol into davschneller/update-cpu-archs
apple-m2
). Also adds dummy architectures for SVE and NEON.ALIGNMENT
andVECTORSIZE
. The latter,VECTORSIZE
should equal the YaTeTo value; it's from now on used in calculating any aligned reals or basis functions. The former value,ALIGNMENT
may be larger (e.g. as large as a cache line), but mostly, it's still the same value.deepcop[ies]
to speed upstrengthReduction
yateto#66 , and by that a significant speed improvement for the kernel generation.GEMM_TOOLS_LIST=auto
option to include LIBXSMM_JIT before LIBXSMM, and the new architectures. Also, all of these programs need to be found by CMake before they are considered forauto
. Eigen is now always added at the end in this case.