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

feature: adding svd(GPU) support + removing code duplications in Cov/PcaCov #2618

Conversation

Alexandr-Solovev
Copy link
Contributor

It's a copy of #2520 with new changes

@Alexandr-Solovev
Copy link
Contributor Author

/intelci: run

@Alexandr-Solovev Alexandr-Solovev changed the title feature: adding svd(GPU) support feature: adding svd(GPU) support + removing code duplications in Cov/PcaCov Dec 27, 2023
@Alexandr-Solovev
Copy link
Contributor Author

/intelci: run

@Alexandr-Solovev Alexandr-Solovev added new algorithm New algorithm or method in oneDAL perf Performance optimization labels Dec 27, 2023
@Alexandr-Solovev
Copy link
Contributor Author

/intelci: run

@Alexandr-Solovev
Copy link
Contributor Author

/intelci: run

@Alexandr-Solovev
Copy link
Contributor Author

/intelci: run

@Alexandr-Solovev
Copy link
Contributor Author

/intelci: run

Copy link
Contributor

@Vika-F Vika-F left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

The code looks good in general.

My biggest concern is that the added PCA SVD method for GPU does different computations than the PCA SVD method on CPU. Is this the correct behavior?

Because the reason of having PCA SVD is because it is more numerically stable due to using the original data in the decomposition. And when we first compute covariance/correlation it is, yes, faster in case of tall and skinny data. But the conditional number of the matrix grows in this case quadratically and the numerical errors too.

Another concern is that refactoring changes are incorporated into this PR. For the future activities, It would be better top have them as a separate PR.

@Alexandr-Solovev
Copy link
Contributor Author

/intelci: run

@Alexandr-Solovev
Copy link
Contributor Author

/intelci: run

@Alexandr-Solovev
Copy link
Contributor Author

/intelci: run

Copy link
Contributor

@Vika-F Vika-F left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Thank you for taking effort to align this SYCL implementation with C++ implementation for CPU.
The code looks good, but there are several things that need to be addressed. Please see the comments below.

@Alexandr-Solovev
Copy link
Contributor Author

/intelci: run

Copy link
Contributor

@Vika-F Vika-F left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

LGTM

@Alexandr-Solovev Alexandr-Solovev merged commit 1373db4 into oneapi-src:main Jan 26, 2024
12 of 13 checks passed
Alexandr-Solovev added a commit to Alexandr-Solovev/oneDAL that referenced this pull request Mar 7, 2024
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
new algorithm New algorithm or method in oneDAL perf Performance optimization
Projects
None yet
Development

Successfully merging this pull request may close these issues.

3 participants