JuliaGPU / JuliaGPU/KernelAbstractions.jl

Auto-tuning workgroupsize when localmem consumption depends on it

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

Description

Does KernelAbstractions.jl support auto-setting workgroupsize when the kernel has local memory size that depends on groupsize? For example, `CUDA.launch_configuration` takes a `shmem` callback that maps a number of threads to shared memory used. This is used for [implementing `mapreduce` in CUDA.jl](https://github.com/JuliaGPU/CUDA.jl/blob/465535069383ce66b137c6c64f188e4b9164ec15/src/mapreduce.jl#L187-L196). Since `shmem` argument for [`CUDA.launch_configuration`](https://github.com/JuliaGPU/KernelAbstractions.jl/blob/b2f7105ef2a0a570cc7f5807289faad7db9c0b35/lib/CUDAKernels/src/CUDAKernels.jl#L196) is not used in `Kernel{CUDADevice}`, I guess it's not implemented yet? Is it related to #19?

Contributor guide

No contributing guide indexed for this repository

Research direction

Start by reading lib/CUDAKernels/src/CUDAKernels.jl around the unused shmem argument in CUDA.launch_configuration, then compare it with the CUDA.jl mapreduce implementation linked in the issue. Review issue #19 for related design context; done would mean defining and implementing support for workgroup-size selection when local-memory usage depends on the group size.

Written by the indexing model from the issue text.

Assessment

Tech stack
julia
Domain
backend-api-design, performance
Issue type
Feature
Difficulty
5/5
Estimated time
Over a week
Activity status
Stale
Clarity
Needs clarification
Newbie friendliness
30/100

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.