support unified memory
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
- 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 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