Skip to content
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

Optimize and vectorize MooseVariableData FE classes #29696

Open
GiudGiud opened this issue Jan 17, 2025 · 0 comments
Open

Optimize and vectorize MooseVariableData FE classes #29696

GiudGiud opened this issue Jan 17, 2025 · 0 comments
Labels
C: Framework T: task An enhancement to the software.

Comments

@GiudGiud
Copy link
Contributor

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

@GiudGiud GiudGiud added C: Framework T: task An enhancement to the software. labels Jan 17, 2025
GiudGiud added a commit to GiudGiud/moose that referenced this issue Jan 17, 2025
GiudGiud added a commit to GiudGiud/moose that referenced this issue Jan 17, 2025
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
C: Framework T: task An enhancement to the software.
Projects
None yet
Development

No branches or pull requests

1 participant