-
Notifications
You must be signed in to change notification settings - Fork 146
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
Enable using oneMKL with hipSYCL #99
Comments
@sbalint98 |
In general, the currently open PRs make small changes to make adding hipSYCL more elegant. After these (100-103) a last PR can be opend, that will add the actual hipSYCL specific details. In order to enable adding hipSYCL the following changes are necessary, appart from the ones in #100: #102 Is required since hipSYCL does not support Furthermore, hipSYCL does not implement After these PRs, it would be logical to continue with adding support for rocm. A preliminary implementation is already available here. However, it will need more testing until a PR could be opened here. As far as I understand, since dpc++ does not support ROCm devices currently, adding support for a SYCL implementation, that does, is the only way to enable it in a way that it can be actually used. I ping @illuhad, he is able to answer questions more in depth, if necessary. |
@sbalint98 A similar solution to #103 will be needed also for cuRAND. (I needed to use |
In short: Yes, this is exactly what this is about :) We are currently working on porting oneAPI libraries to hipSYCL/AMD hardware, including oneMKL. Apart from the benefit of additional hardware support, adding support for new SYCL implementations can also be beneficial to make the code more stable. For example, we found the bug from PR #96 by testing with hipSYCL (apparently, it does not show up with DPC++ even though it's clearly a bug). One thing I see that might need discussion is how you would like to handle CI. Would it be possible to add hipSYCL to your CI infrastructure? Or would it be more appropriate to let it run on github actions infrastructure - at least for testing on CPU? EDIT: Thanks @sbalint98 for all this work :-) |
Thank you for your answers and clarifications. I still have a few questions. Do you think it would be possible to arrange a small meeting so that we can have a more in depth discussion? If that is ok, I can setup the meeting. You can reach to me directly at mesut.meterelliyoz@intel.com to discuss meeting details. |
Summary
With a set of Pull requests, we would like to upstream changes to enable the use of oneMKL BLAS with hipSYCL. The changes and added features encompass the following:
PR[Remove non standard function calls, and use qualified name for half #100]PR[Replace get_cl_code() with what() #104]PR[Use appropiately qualified names in blas and rng #105] Replace non-standard types and member function calls, eghalf
->cl::sycl::half
and.get_cl_code()
->.what()
-Problem statement
Our intention is to make oneMKL more available for the general SYCL community. These changes will allow easier integration with other SYCL implementation and enable adding rocm libraries to oneMKL.
In case the PRs from #100, #101, #102, #104, #105 are merged, adding the actual hipSYCL support could look like this: https://github.com/sbalint98/oneMKL/tree/ustream-hipsycl-specific-changes .
when 100-103 is merged into the current develop e8e3dab, all tests pass locally: int_test_oneapi.log
The text was updated successfully, but these errors were encountered: