llnl / llnl/blt

Offload architecture for portable targets

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

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

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 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

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.