JuliaGPU / JuliaGPU/GPUCompiler.jl
PTX: Conditional reference-to-value rewrite
- Dominant language
- Julia
- Stars
- 187
- Forks
- 68
- Avg merge
- 1d 12h
- Merged PRs (30d)
- 28
Description
We should not unconditionally rewrite all parameters to be passed by-value, as there's actually a limit:
> `__global__` function parameters are passed to the device via constant memory and are limited to 32,764 bytes starting with Volta, and 4 KB on older architectures.
Not doing the rewrite requires that CUDA.jl allocates a box on the GPU that contains the argument. This also needs to be a stream-ordered allocation, in order to respect the kernel's lifetime.
Contributor guide
No contributing guide indexed for this repository
Research direction
The issue names no files or tests. Start by tracing where GPUCompiler.jl unconditionally rewrites kernel parameters to by-value arguments, then inspect the CUDA.jl path for boxing and stream-ordered allocation; done means large parameter arguments avoid the rewrite while respecting the kernel lifetime.
Written by the indexing model from the issue text.
Assessment
- Tech stack
- julia
- Domain
- backend, compilers
- Issue type
- Feature
- Difficulty
- 5/5
- Estimated time
- Over a week
- Activity status
- Stale
- Clarity
- Needs clarification
- Newbie friendliness
- 30/100