JuliaGPU / JuliaGPU/KernelAbstractions.jl

exposing warp-level semantics

Open
#420 13 comments 3 reactions 0 assignees View on GitHub
Dominant language
Julia
Stars
523
Forks
88
Avg merge
1d 11h
Merged PRs (30d)
25

Description

I had a request from a user to use warp-level semantics from CUDA: `sync_warp`, `warpsize`, and stuff here: https://cuda.juliagpu.org/stable/api/kernel/#Warp-level-functions.

They seem to be available here: https://rocm.docs.amd.com/projects/rocPRIM/en/latest/warp_ops/index.html, but I don't know where they exist in AMDGPU.jl or how to use them in KA.

They might be available, but I couldn't find "warp" or "wavefront" or anything else in either the AMDGPU or KernelAbstractions docs. I mean, there was this page: https://amdgpu.juliagpu.org/stable/wavefront_ops/ ... but it's a bit sparse ^^

If this is already available in KA, I'm happy to add a bit to the docs explaining how they are used. If it is not available, I guess I need to put some PRs forward for CUDA(kernels), ROC(kernels), and here with the new syntax.

Related discussion: https://github.com/JuliaMolSim/Molly.jl/pull/147

Putting it here because I think I found kinda what I was looking for for AMDGPU here: https://github.com/JuliaGPU/AMDGPU.jl/blob/master/test/device/wavefront.jl

* `wavefrontsize` = warpsize
* `wfred` = wavefront reduce
* `wfscan` = wafecron scan
* `wfany` = ???
* `wfail` = ???
* `wfsame` = ???
* ??? = `warp_sync`

Contributor guide

No contributing guide indexed for this repository

Research direction

Start with AMDGPU.jl's test/device/wavefront.jl and the wavefront_ops documentation, then compare the available operations with the CUDA warp-level API linked in the issue. Determine whether KernelAbstractions already exposes equivalent semantics; done should be a documented, scoped conclusion about supported operations or the cross-backend work required.

Written by the indexing model from the issue text.

Assessment

Tech stack
julia
Domain
hpc
Issue type
Feature
Difficulty
5/5
Estimated time
Over a week
Activity status
Stale
Clarity
Needs clarification
Newbie friendliness
25/100

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.