Hacker Newsnew | past | comments | ask | show | jobs | submit | pxl-th's commentslogin

Дякую! :)


Hi Christian! Thank you! :)


Definitely, with backend agnostic code you can target only a common set of features. It's convenient to use where it makes sense as it reduces the complexity: 1 kernel for all backends. And you can actually go a long way with this without sacrificing too much of the performance.

But for squeezing maximum performance & using latest features you have to target each device individually.


Thanks!

> May I ask, is there any reason why one would focus themselfves on a single type of graphics card instead of relying on a library that works for other variants too?

AMDGPU.jl is actually one of the backends supported by Julia. We do support CUDA, Metal, Intel, OpenCL as well to a varying degree: https://github.com/JuliaGPU

Each GPU backend implements a common array interface and a way to compile Julia code for low-level kernels relying on the GPUCompiler infrastructure: https://github.com/JuliaGPU/GPUCompiler.jl

Once that is done, users can write code and low-level kernels (using KernelAbstractions.jl) in a backend-agnostic manner.

Here're some examples of packages that target multiple GPU backends in this way:

- Real-time gaussian splatting supporting AMD GPU & Nvidia GPUs (probably others as well with minor work): https://github.com/JuliaNeuralGraphics/GaussianSplatting.jl

- AcceleratedKernels.jl which is like STD library: https://github.com/JuliaGPU/AcceleratedKernels.jl

- NNop.jl implements Flash-Attention and other NN fused kernels: https://github.com/pxl-th/NNop.jl

- Flux.jl a Deep-Learning library: https://github.com/FluxML/Flux.jl


Consider applying for YC's Winter 2027 batch! Applications are open till November 2.

Guidelines | FAQ | Lists | API | Security | Legal | Apply to YC | Contact

Search: