Offload architecture for portable targets
Nobody has claimed this yet.
- Dominant language
- C++
- Stars
- 296
- Forks
- 66
- Avg merge
- 1h 3m
- Merged PRs (30d)
- 1
Description
In discussing updated sycl testing in RAJA, it came up that we currently don't have a way to specify what the target architectures are when enabling portable targets like SYCL and TARGET_OPENMP.
For sycl in dpcpp it looks like that would be `-Xsycl-target-backend` and possibly `--offload-arch`. For OpenMP offload it should be `-fopenmp-targets=...`.
Just to make it extra fun, dpcpp supports sycl compiling to rocm, and rocm compiling to either hip or cuda. So... yeah, not sure about that one, but at least a way to list the targets intended for a given compilation would help. Would be nice if we could make it a single target list that will apply to whatever offload type is in use, maybe with per-type overrides if someone needs them?
Contributor guide
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 reviewing BLT's existing CMake handling for portable targets such as SYCL and TARGET_OPENMP. Define what a shared target-architecture list and any per-offload overrides should mean, then validate the resulting configuration against the DPC++ and OpenMP offload flags named in the issue.
Written by the indexing model from the issue text.
Assessment
- Tech stack
- cmake, cpp
- Domain
- build-system, compilers
- Issue type
- Feature
- Difficulty
- 5/5
- Estimated time
- Over a week
- Activity status
- Stale
- Clarity
- Mostly clear
- Newbie friendliness
- 35/100