-
Notifications
You must be signed in to change notification settings - Fork 231
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
perf(math): optimize radix2 domain #521
Conversation
7871564
to
829cb6b
Compare
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.
LGTM
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.
LGTM
829cb6b
to
62c364e
Compare
7b8d9db
to
a8d68ab
Compare
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.
LGTM
In ef58cee, I think you meant |
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.
LGTM
No, the methods were originally all public, and I changed |
LGTM |
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.
LGTM
This refactor moves the computation of the `mid` variable to where it is actually needed. This reduces the chance of mistakes when updating the `mid` value.
- parallelize swapping rows. - parallelize the multiplication between the matrix and the element.
This removes a call to `Zero()` that loops over the entire matrix.
Optimized to address several issues: 1. `conservativeResizeLike()` cannot be called with `Eigen::MatrixBase`, which is required by the next commit. 2. `conservativeResizeLike()` involves redundant large matrix creation. 3. `conservativeResizeLike()` is not parallelized.
To reduce RAM usage when calling these methods from the Rust side, inputs should not be copied. This is achieved by using `Eigen::Map<>`. The argument type is changed from `RowMajorMatrix<F>&` to `Eigen::MatrixBase<RowMajorMatrix<F>>&` to support this. See https://eigen.tuxfamily.org/dox/group__TutorialMapClass.html.
a8d68ab
to
bfbecf8
Compare
Description
This PR optimizes
CosetLDEBatch()
andIFFTBatch()
in a high view.