You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
As we look to SIMD vectorize more code (more on that later) for performance, the MooseVariableData classes are a simple place to start. The operations they perform are trivially vectorizable (setting stuff to 0, multiplying shape functions, ...), and with a for loop on quadrature points for all of these operations. They do not necessarily show up in a profile so the interest of optimizing them is somewhat limited, but it's a good exercise.
Design
Re-arrange that class for memory locality and expose clear for for the compiler to vectorize when using the right compilation flags.
Most of these for loops are already clearly vectorizable from my first look into it
Impact
Performance optimization on CPUs with vector registers
The text was updated successfully, but these errors were encountered:
Motivation
As we look to SIMD vectorize more code (more on that later) for performance, the MooseVariableData classes are a simple place to start. The operations they perform are trivially vectorizable (setting stuff to 0, multiplying shape functions, ...), and with a for loop on quadrature points for all of these operations. They do not necessarily show up in a profile so the interest of optimizing them is somewhat limited, but it's a good exercise.
Design
Re-arrange that class for memory locality and expose clear for for the compiler to vectorize when using the right compilation flags.
Most of these for loops are already clearly vectorizable from my first look into it
Impact
Performance optimization on CPUs with vector registers
The text was updated successfully, but these errors were encountered: