microsoft / microsoft/STL

Consider extending Clang-CUDA support/testing

Open
#2,430 0 comments 0 reactions 0 assignees View on GitHub

Nobody has claimed this yet.

enhancement test
Dominant language
C++
Stars
11.1k
Forks
1.7k
Avg merge
4d 15h
Merged PRs (30d)
22

Description

Related to #2075. Possibly related to #1598, if Clang-CUDA requires a recent NVIDIA CUDA Toolkit to be installed.

Test coverage

Currently, we have no test coverage for Clang-CUDA. If this scenario is important to some users (as it appears to be) and is likely to be damaged as we modify preprocessor logic for Clang and CUDA separately, we should have test coverage to prevent major/obvious regressions.

__CUDACC__ preprocessor logic

Also, if this is important, we should audit the codebase for places where we're testing __CUDACC__ but Clang-CUDA could handle the normal codepath instead of needing the workaround codepath. (I suspect that Clang-CUDA can handle the normal codepath when "front-end stuff" is involved, but that we need the workaround codepath when "codegen intrinsic stuff" is involved.)

Current examples:

Already patched

No action necessary

Possible enhancements

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 the Clang-CUDA-related CUDACC checks in stl/inc/functional, stl/inc/xutility, and stl/inc/yvals_core.h, along with the examples in stl/inc/cmath, stl/inc/limits, and stl/inc/type_traits. Determine which paths need Clang-CUDA coverage and which can use normal Clang handling. Done means relevant tests exist and the audit's necessary preprocessor changes are covered against regressions.

Written by the indexing model from the issue text.

Assessment

Tech stack
cpp
Domain
compilers, testing-qa
Issue type
Feature
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.