JuliaGPU / JuliaGPU/GPUCompiler.jl

PTX: Conditional reference-to-value rewrite

Open
#483 0 comments 0 reactions 0 assignees View on GitHub
ptx
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

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.