Live data from Hacker News

Generic GPU Kernels in Julia

mikeinnes.github.io

1–10 of 15 posts

Re: Generic GPU Kernels in Julia

#3
post #2

Generic GPU kernels... for just NVIDIA devices.

The `generic` in the title applies to `kernel` rather than `GPU`. However, since LLVM does have an AMDGPU backend I suspect it's possible to do the same for AMD GPUs as well using the same technique and without changing the frontend code (assuming the AMD driver accepts whatever comes out of the AMDGPU backend). However, I can hardly blame folks for focusing on NVIDIA devices. For better or worse, they're dominating the GPGPU space right now. Just as an example, all the cloud providers have NVIDIA GPUs on offer, but the same is not true for AMD GPUs (though IIRC, Google is planning to offer them in the next generation).

Re: Generic GPU Kernels in Julia

#4
post #2

Generic GPU kernels... for just NVIDIA devices.

To add to Keno's comment, a bunch of this stuff actually can work with OpenCL and OpenGL, and you can see it in action in GPUArrays.jl [1]. In general, there's a bunch of work to make Julia as hardware-agnostic as possible, but you gotta start somewhere.

[1]: https://github.com/JuliaGPU/GPUArrays.jl

Re: Generic GPU Kernels in Julia

#6
post #2

Generic GPU kernels... for just NVIDIA devices.

To add to Keno's comment, a bunch of this stuff actually can work with OpenCL and OpenGL, and you can see it in action in GPUArrays.jl [1]. In general, there's a bunch of work to make Julia as hardware-agnostic as possible, but you gotta start somewhere. [1]: https://github.com/JuliaGPU/GPUArrays.jl

Very cool!

My comment came off as more snarky than I intended. I just like choice. I'm an HPC guy so I follow Julia with great interest.

Re: Generic GPU Kernels in Julia

#8
post #5
post #2

Generic GPU kernels... for just NVIDIA devices.

Yeah, I hate vendor lockin and would love to see this extended to OpenCL

As replied in the thread above, the GPUArrays package can use OpenCL: https://github.com/JuliaGPU/GPUArrays.jl

More details in this package: https://github.com/SimonDanisch/Transpiler.jl

Post reply on HN