JuliaGPU / JuliaGPU/AMDGPU.jl

support unified memory

Open
#840 4 comments 3 reactions 0 assignees View on GitHub

Nobody has claimed this yet.

Dominant language
Julia
Stars
344
Forks
79
Avg merge
2d 23h
Merged PRs (30d)
27

Description

It would be great to have support for unified memory. CUDA.jl already supports the CUDA-equivalent of this and there is even support in KernelAbstractions for it. Implementation-wise this would probably mean adding another type of buffer besides HIPBuffer and HostBuffer. I'm not quite sure how this would interact wrt the pool allocator though.

We already support wrapping host memory as a ROCArray, but AFAIU, that's not the same as unified memory, as it is unidirectional and supposedly less optimized for accessing data from the device. With unified memory we could also have a no-copy unsafe_wrap(Array, ::ROCArray) which we're currently lacking.

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 CUDA.jl's unified-memory support and KernelAbstractions' handling with AMDGPU.jl's HIPBuffer and HostBuffer design. Read the HIP unified-memory documentation, then inspect how the pool allocator and existing ROCArray host-memory wrapping work. Done means unified memory is supported without breaking allocator behavior and enables the described no-copy access.

Written by the indexing model from the issue text.

Assessment

Tech stack
julia
Domain
hpc
Issue type
Feature
Difficulty
5/5
Estimated time
Over a week
Activity status
Active
Clarity
Needs clarification
Newbie friendliness
45/100

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.