oneapi-src / oneapi-src/unified-runtime

Provide a concrete way for program metadata defines or delete them

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

Nobody has claimed this yet.

compiler pi specification
Dominant language
C++
Stars
57
Forks
120
Avg merge
1d 14h
Merged PRs (30d)
1

Description

Program metadata defines are:

/// Program metadata tags recognized by the PI backends. For kernels the tag
/// must appear after the kernel name.
#define __SYCL_PI_PROGRAM_METADATA_TAG_REQD_WORK_GROUP_SIZE                    \
  "@reqd_work_group_size"
#define __SYCL_PI_PROGRAM_METADATA_GLOBAL_ID_MAPPING "@global_id_mapping"

Those defines seem to only be used inside pi_program::set_metadata() in pi_cuda backend. These values seem to also have been used in the compiler side by llvm/tools/sycl-post-link/sycl-post-link.cpp. So, was wandering, Does those defines had plans for other adapters other than cuda (or have any use case in general) and we should provide them in some way in the spec? or should we delete them?

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 tracing the metadata defines through pi_program::set_metadata() in the pi_cuda backend and their use in llvm/tools/sycl-post-link/sycl-post-link.cpp. Determine whether the defines have consumers beyond CUDA or the compiler path; done means documenting a concrete supported interface or removing the unused definitions and updating affected references.

Written by the indexing model from the issue text.

Assessment

Tech stack
cpp
Domain
backend-api-design, compilers
Issue type
Refactor
Difficulty
5/5
Estimated time
Over a week
Activity status
Stale
Clarity
Needs clarification
Newbie friendliness
25/100

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.