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

bigint-syrk-blas: split Q window, if it does not fit into the --maxSharedMemory limit #205

Closed
Tracked by #207
vasdommes opened this issue Mar 3, 2024 · 0 comments
Assignees
Milestone

Comments

@vasdommes
Copy link
Collaborator

vasdommes commented Mar 3, 2024

See details in parent issue #207

If total size for P (input) and Q (output) windows exceeds --maxSharedMemory, we should split P window, see #204.
If it doesn't help (i.e. size of Q exceeds --maxSharedMemory), we have to also split Q (choosing a minimal split factor to reduce performance overhead) and calculate subblocks of Q = P^T P independently.

@vasdommes vasdommes added this to the 2.8.0 milestone Mar 3, 2024
@vasdommes vasdommes self-assigned this Mar 3, 2024
vasdommes added a commit that referenced this issue Mar 7, 2024
…e --maxSharedMemory limit

TODO: update bigint_syrk/Readme.md
vasdommes added a commit that referenced this issue Mar 8, 2024
…e --maxSharedMemory limit

TODO: update also bigint_syrk/Readme.md

Changed two end-to-end tests: set low --maxSharedMemory to enforce Q window splitting
In unit tests, we set different shared memory limits - to calculate Q = P^T P without splitting, with splitting only P window, or with splitting both P and Q.

Also supported both uplo=UPPER and LOWER for syrk
vasdommes added a commit that referenced this issue Mar 8, 2024
…e --maxSharedMemory limit

TODO: update also bigint_syrk/Readme.md

Changed two end-to-end tests: set low --maxSharedMemory to enforce Q window splitting
In unit tests, we set different shared memory limits - to calculate Q = P^T P without splitting, with splitting only P window, or with splitting both P and Q.

Also supported both uplo=UPPER and LOWER for syrk
vasdommes added a commit that referenced this issue Mar 8, 2024
Added new parameter for reduce_scatter() to cover all cases.

Fix #205 bigint-syrk-blas: split Q window, if it does not fit into the --maxSharedMemory limit

TODO: update also bigint_syrk/Readme.md

Changed two end-to-end tests: set low --maxSharedMemory to enforce Q window splitting
In unit tests, we set different shared memory limits - to calculate Q = P^T P without splitting, with splitting only P window, or with splitting both P and Q.

Also supported both uplo=UPPER and LOWER for syrk.
Fixed reduce_scatter(): Old version synchronized only upper half always, but for off-diagonal blocks Q_IJ, we need to synchronize all.
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