JuliaGPU / JuliaGPU/KernelAbstractions.jl
Auto-tuning workgroupsize when localmem consumption depends on it
- 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