-
Notifications
You must be signed in to change notification settings - Fork 225
enh: add cpu distributed support #3420
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
enh: add cpu distributed support #3420
Conversation
a2b408e to
cb98883
Compare
cpp/oneapi/dal/algo/linear_regression/backend/cpu/train_kernel_norm_eq.cpp
Show resolved
Hide resolved
|
@david-cortes-intel @david-cortes-intel Can you please review this pr one more time? I will add conda-recipe testing and optimizing dataset usage in the next pr. |
|
/intelci: run |
|
@Alexandr-Solovev Could you please add another line after this one: Line 350 in b217715
With requirements like this: |
|
@Alexandr-Solovev I see the CPU distributed sample depends on the DPC component, even though it doesn't use it: |
|
Also I get this error despite having the MPI dependencies installed: |
|
Are there tests added to ensure this runs on AArch64 as expected? |
|
/intelci: run |
I have fixed this issue! Thanks, now it has no deps on SYCL/dpc |
Can you doublecheck please with the latest commit? |
There are no tests, but I believe it should work, I will doublecheck it |
INSTALL.md
Outdated
|
|
||
| DPC++ examples (running on devices supported by SYCL, such as GPU) from oneAPI are also auto-generated within these folders when oneDAL is built with DPC++ support (target `oneapi` in the Makefile), but be aware that it requires a DPC++ compiler such as ICX, and executing the examples requires the DPC++ runtime as well as the GPGPU drivers. The DPC++ examples can be found under `examples/oneapi/dpc`. | ||
|
|
||
| oneDAL samples are also auto-generated in `daal/latest/samples/oneapi/cpp/`(Multi-CPU) and `daal/latest/samples/oneapi/dpc/`(Multi-GPU) when oneDAL is built with DPC++ support (target oneapi in the Makefile). Note that building and running the samples requires a DPC++ compiler such as ICX, and MPI/CCL. |
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.
I guess this last part shouldn't apply anymore to the CPU samples?
Note that building and running the samples requires a DPC++ compiler such as ICX, and MPI/CCL.
Example works for me now. |
| dal::preview::infer(comm, lr_desc, x_test_vec.at(rank_id), result_train.get_model()); | ||
|
|
||
| if (comm.get_rank() == 0) { | ||
| std::cout << "Prediction results:\n" << result_infer.get_responses() << std::endl; |
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.
Perhaps it could make it more clear here that it is printing only the data from the rank with ID=0. And maybe it could print the coefficients.
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.
For now I aligned this output with relevant GPU sample https://github.com/uxlfoundation/oneDAL/blob/main/samples/oneapi/dpc/mpi/sources/linear_regression_distr_mpi.cpp
david-cortes-intel
left a comment
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, pending the changes that will be left for the next PR.
|
/intelci: run |
Description
This pr is a copy of #3255 with extensions.
Enhancement: Add CPU distributed support
This PR introduces several improvements for CPU-based distributed computing in oneDAL:
Checklist:
Completeness and readability
Testing
Performance