JuliaGPU / JuliaGPU/AMDGPU.jl

Rework library linking

Open
#917 0 comments 0 reactions 0 assignees View on GitHub

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

  1. Read the whole issue, then the project's contributing guide.
  2. Comment on the issue to say you are picking it up — it saves two people doing the same work.
  3. Fork the repository and make your change on a branch.
  4. 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

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.