Add correlation distance algorithm
This PR implements the correlation distance algorithm for both the DAAL and oneDAL frameworks, computing pairwise correlation distances between feature vectors. The DAAL implementation includes block-based, batch processing containers, and complete user documentation. The oneDAL implementation adds GPU offload with SYCL/DPC++ support through compute kernels for both CPU and GPU backends, comprehensive test cases for both CPU and GPU, bazel build integration, and updated documentation with mathematical specifications and API references.
PR completeness and readability
- [x] I have reviewed my changes thoroughly before submitting this pull request.
- [x] I have commented my code, particularly in hard-to-understand areas.
- [x] Git commit message contains an appropriate signed-off-by string (see CONTRIBUTING.md for details).
- [x] I have added a respective label(s) to PR if I have a permission for that.
- [x] I have resolved any merge conflicts that might occur with the base branch.
Testing
- [x] I have run it locally and tested the changes extensively.
- [x] All CI jobs are green or I have provided justification why they aren't.
- [x] I have extended testing suite if new functionality was introduced in this PR.
Hey @richardnorth3 sorry if I overstepped, I marked it as still draft. Make sure to strip out the rbf_kernel from the gpu backend, I assume you'll use the correlation distance primitive for GPU, and make sure to write a fleshed-out description.
Its looking good!
Hey @richardnorth3 sorry if I overstepped, I marked it as still draft. Make sure to strip out the rbf_kernel from the gpu backend, I assume you'll use the correlation distance primitive for GPU, and make sure to write a fleshed-out description.
Its looking good!
No, thank you for putting the PR back into draft mode! I accidentally pushed it as a PR and just wanted to merge what changes I had locally in case I lost them. Think the algorithm is mostly finished now and I just have to finish the testing portion.
/intelci: run
Please also add C++ and DPC++ examples into examples/oneapi folder. The follow-up ticket about the respective update in the documentation is also needed.
To clarify, you are saying to update the documentation in a different PR?
/intelci: run
Please add a PR description for a change this large - should at least include a brief description of the additions plus clarification on changes to other files
Please add a PR description for a change this large - should at least include a brief description of the additions plus clarification on changes to other files
@ethanglaser, I just added a brief description. Let me know if more details are needed.
Please also add C++ and DPC++ examples into examples/oneapi folder. The follow-up ticket about the respective update in the documentation is also needed.
Will add another data distance.csv for two inputs for x and y
/intelci: run
I don't believe the failures generated by the internal CI are related to the changes in this PR. @Vika-F @icfaust @ethanglaser could one of you confirm and approve?
/intelci: run
/intelci: run
/intelci: run