Rework library linking
Nobody has claimed this yet.
- Dominant language
- Julia
- Stars
- 344
- Forks
- 79
- Avg merge
- 2d 19h
- Merged PRs (30d)
- 25
Description
Adaptations to GPUCompiler could benefit from the approach as done in https://github.com/JuliaGPU/CUDA.jl/pull/3131
Currently, AMDGPU requires a two pass approach. The first pass feeds functions into the optimizer. The second pass catches symbols the runtime introduced after the optimizer ran.
Maybe CUDA's runtime doesn't introduce new references to libdevice symbols after link_libraries! runs? Which allows the single pass + lazy linking approach?
In any case, this could be reworked eventually.
Contributor guide
No contributing guide indexed for this repository
First steps
- Read the whole issue, then the project's contributing guide.
- Comment on the issue to say you are picking it up — it saves two people doing the same work.
- Fork the repository and make your change on a branch.
- Open a pull request that references the issue number.
Research direction
Start by comparing AMDGPU’s current two-pass linking flow with the approach in CUDA.jl pull request 3131, focusing on GPUCompiler, the optimizer, and link_libraries!. Determine whether runtime-introduced libdevice references prevent a single pass with lazy linking; done means the linking approach is reworked consistently and the relevant behavior is verified.
Written by the indexing model from the issue text.
Assessment
- Tech stack
- julia
- Domain
- hpc
- Issue type
- Refactor
- Difficulty
- 5/5
- Estimated time
- Over a week
- Activity status
- Quiet
- Clarity
- Needs clarification
- Newbie friendliness
- 25/100