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

[question] Support for a new backend #4

Open
TejaX-Alaghari opened this issue Aug 24, 2022 · 2 comments
Open

[question] Support for a new backend #4

TejaX-Alaghari opened this issue Aug 24, 2022 · 2 comments

Comments

@TejaX-Alaghari
Copy link

Currently INQ can run on Nvidia GPUs through CUDA backend.
What would be the design requirements required for supporting a new backend, say Intel's SYCL or AMD's HIP?

Would migrating/porting the CUDA code to SYCL/HIP and enabling support for a new configuration in the build be sufficient? If so, what files/modules in INQ and the external libraries be supported?
Otherwise, please suggest the expected requirements for enabling this feature.

@correaa
Copy link
Member

correaa commented Aug 26, 2022

Dear @TejaX-Alaghari

Thank you for your message.

Indeed, we would love to port the code to AMD or other devices, and HIP is within the medium term plans, OpenACC and SYCL perhaps later.
But works towards that goal, contributions, proofs of principle and implementations are very welcome.

Currently we are using GPU devices through a few different means in the code.
The multidimensional array (Multi) library uses mostly CUDA thrust behind the scenes, that should be replaced by thrustHIP when/if that works at some point.
Then there is an ad-hoc library of kernels for loops and reductions called gpu::run (written by @xavierandrade), those kernel need to be rewritten or translated to HIP or SYCL.
Finally, we use cudaBLAS and cuFFT which need to be replaced by the AMD or Intel versions.

As long as Intel/Khronos can provide similar backends, the work seems to doable for SYCL.

Please note that the development of inq is done on gitlab, so we would prefer any contributions to be sent there.

@TejaX-Alaghari
Copy link
Author

TejaX-Alaghari commented Sep 5, 2022

@correaa, Thanks for a detailed response and showing interest in enabling new backends.

After discussing internally, our team from Intel would like to discuss further on proposing the addition of SYCL backend for INQ.
Please let me know if you're okay with discussing this over an official call. If so, let me know where I can forward an invite for further discussion.

@correaa correaa pinned this issue Oct 20, 2022
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

No branches or pull requests

2 participants