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

Opt Backend Assembly #1370

Open
jeremylt opened this issue Oct 10, 2023 · 0 comments
Open

Opt Backend Assembly #1370

jeremylt opened this issue Oct 10, 2023 · 0 comments

Comments

@jeremylt
Copy link
Member

The /cpu/self/opt/* backends should implement their own version of diagonal/full assembly that assembles by element. A lot of the pieces are all there in the code, but spread out.

Current:

Assemble QFunction
for (elem in l-vec) Assemble Operator element

New:

for (elem in l-vec) {
  Assemble QFunction element
  Assemble Operator element
}

This is very similar to our approach with the operator application, except we would probably want to keep the block size set a 1 for simplicity. Then we can set /cpu/self/opt/serial as the operator fallback for /cpu/self/opt/blocked.

This would hopefully significantly decrease the assembly memory footprint (and speed things up) for the Opt, AVX, and XSMM backends.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Projects
None yet
Development

No branches or pull requests

1 participant