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

GPU vendor independent API #42

Closed
bd4 opened this issue Nov 22, 2020 · 2 comments
Closed

GPU vendor independent API #42

bd4 opened this issue Nov 22, 2020 · 2 comments

Comments

@bd4
Copy link

bd4 commented Nov 22, 2020

I'm really excited to see the maturity of the GPU support for Julia, particularly the speed of a working oneAPI implementation while everyone else (RAJA, Kokkos, etc) are still working on getting their implementations working. However, I am surprised that each GPU vendor lib is separate and has it's own slightly different API - this makes life more difficult in the Exascale multi-vendor HPC landscape. Is this being worked on or under consideration?

I've just started looking... so far the array types and broadcasting are nice and vendor independent, but the custom kernel and launch syntax varies a lot, in ways that I don't think are necessary. Sure the underlying runtimes have different names, and there are some subtle differences in SYCL ids vs CUDA ids, but HIP and CUDA are basically identical and I doubt very many people care about the differences in SYCL id naming or functionality.

@maleadt
Copy link
Member

maleadt commented Nov 22, 2020

As you mention the array API is supposed to be vendor neutral.

For kernel programming, we're aiming for https://github.com/JuliaGPU/KernelAbstractions.jl to be that neutral API. It currently has support for CUDA.jl, and is used by several projects, but its dependency on Cassette.jl is problematic (but we expect to be able to get rid of that in the future). Alternatively, GPUArrays.jl has a similar DSL for vendor-neutral kernels, but we hope to rebuild that on top of KernelAbstractions.jl as soon as possible.

@bd4
Copy link
Author

bd4 commented Nov 22, 2020

Thanks looks great, I'll try it out for prototyping!

@bd4 bd4 closed this as completed Nov 22, 2020
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