llnl / llnl/RAJA

Merge HIP and CUDA policies, namespaces, and implementation into "gpu"

Open
#774 1 comment 2 reactions 0 assignees View on GitHub

Nobody has claimed this yet.

cuda support hip support Software design
Dominant language
C++
Stars
598
Forks
118
Avg merge
21h 29m
Merged PRs (30d)
1

Description

We have a ever growing amount of duplicated code that starts with cuda_XXX and hip_XXX.
Since HIP is supposed to be almost completely CUDA compatible (esp for how we are using it) we should be able to completely merge the two into a gpu_XXX naming.

I'm assuming that HIP and CUDA cannot be enabled at the same time (correct me if that's not true). So we can easily ifdef anything that has to call hip/cuda specific APIs.

This would eliminate the need to implement features in both places, keeping everything more up-to-date and bug free

Contributor guide

Open the contributing guide

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 with the duplicated cuda_XXX and hip_XXX code described in the issue and determine how HIP and CUDA are enabled and whether they can be mutually exclusive. Done means consolidating the shared policies, namespaces, and implementation under gpu_XXX while preserving the required backend-specific API calls and keeping both configurations working.

Written by the indexing model from the issue text.

Assessment

Tech stack
cpp
Domain
hpc
Issue type
Refactor
Difficulty
5/5
Estimated time
Over a week
Activity status
Stale
Clarity
Mostly clear
Newbie friendliness
25/100

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.