Hacker News new | ask | show | jobs
by pabs3 1838 days ago
Are there similar things for other types of GPUs?

Edit: the site has one project per GPU type, shame there isn't one interface that works with every GPU type instead.

3 comments

https://github.com/JuliaGPU/AMDGPU.jl

https://github.com/JuliaGPU/oneAPI.jl

These are both less mature than CUDA.jl, but are in active development.

> Edit: the site has one project per GPU type, shame there isn't one interface that works with every GPU type instead.

That would be https://juliagpu.github.io/KernelAbstractions.jl

For kernel programming, https://github.com/JuliaGPU/KernelAbstractions.jl (shortened to KA) is what the JuliaGPU team has been developing as a unified programming interface for GPUs of any flavor. It's not significantly different from the (basically identical) interfaces exposed by CUDA.jl and AMDGPU.jl, so it's easy to transition to. I think the event system in KA is also far superior to CUDA's native synchronization system, since it allows one to easily express graphs of dependencies between kernels and data transfers.
These libraries provide the same API, so from a user perspective, as long as you do not need low-level access, it does not matter what your GPU is.

However, the low-level library for AMD GPUs is more of an alpha quality in Julia.