Skip to content

Make all algorithms in cuda/std/algorithm available through cuda/std/algorithm.meow#7935

Open
miscco wants to merge 3 commits intoNVIDIA:mainfrom
miscco:expose_modularized_access
Open

Make all algorithms in cuda/std/algorithm available through cuda/std/algorithm.meow#7935
miscco wants to merge 3 commits intoNVIDIA:mainfrom
miscco:expose_modularized_access

Conversation

@miscco
Copy link
Contributor

@miscco miscco commented Mar 9, 2026

We had a poll to see how users would like to access individual features of umbrella headers like <cuda/std/algorithm>

The vast majority preferred a pattern like <cuda/std/algorithms/find.h>

However, we can get away with finding a similar but different name if we use the pattern umbrella_header.feature

We can create a wrapper for the internal file and also instruct our IDE to ignore all files that match the pattern [a-z_]*\.[a-z_]* This works because we do not have any .h files in neither <cuda/> not <cuda/std/>

@miscco miscco requested review from a team as code owners March 9, 2026 12:20
@miscco miscco requested a review from jrhemstad March 9, 2026 12:20
@github-project-automation github-project-automation bot moved this to Todo in CCCL Mar 9, 2026
@cccl-authenticator-app cccl-authenticator-app bot moved this from Todo to In Review in CCCL Mar 9, 2026
@miscco
Copy link
Contributor Author

miscco commented Mar 9, 2026

I am proposing to keep the current folder structure intact and only add symlinks EDIT: discussed this internally and we need real files for windows

For me this greatly improves maintainability of our code base. Otherwise there are 500+ files in <cuda/std/> and no proper way of organizing them

@miscco miscco force-pushed the expose_modularized_access branch from cabe671 to d7051d6 Compare March 9, 2026 12:32
@miscco miscco requested a review from a team as a code owner March 9, 2026 12:32
@miscco miscco requested a review from gonidelis March 9, 2026 12:32
@github-actions

This comment has been minimized.

@miscco miscco force-pushed the expose_modularized_access branch from d7051d6 to b0a1755 Compare March 9, 2026 15:45
@github-actions

This comment has been minimized.

@miscco miscco force-pushed the expose_modularized_access branch from b0a1755 to c8dd140 Compare March 9, 2026 18:36
@miscco miscco force-pushed the expose_modularized_access branch from c8dd140 to 36bc8b6 Compare March 9, 2026 18:39
Comment on lines +71 to +74
"search.exclude": {
"**/include/cuda/*.*": true,
"**/include/cuda/std/*.*": true
}
Copy link
Contributor Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Note this one here might be a tad dangerous, it also removes the files for search paths in the VS-code IDE

We might want to drop that

Copy link
Collaborator

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Can you elaborate on this? What was this added for?

Copy link
Contributor Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

These additional files add a considerable maintenance burden on the cuda/std folder.

What is now relatively well contained will contain a few hundred headers soon. vs-code and other IDEs offer exclude files, where one can hide those files.

vs-code in particular has 2 options

  • hide files from explorer view
  • hide files from search view -> searching in the repository will not show those files

@github-actions

This comment has been minimized.

@jrhemstad
Copy link
Collaborator

I am proposing to keep the current folder structure intact and only add symlinks

I don't think symlinks work on Windows, do they?

@jrhemstad
Copy link
Collaborator

Given this is a pretty extensive product facing change, I'd like more thoughts from @wmaxey @griwes @gevtushenko @brycelelbach @ericniebler

@miscco
Copy link
Contributor Author

miscco commented Mar 10, 2026

I am proposing to keep the current folder structure intact and only add symlinks

I don't think symlinks work on Windows, do they?

They dont, moved to forwarding headers

@github-actions
Copy link
Contributor

😬 CI Workflow Results

🟥 Finished in 1h 23m: Pass: 99%/453 | Total: 4d 05h | Max: 55m 56s | Hits: 99%/515395

See results here.

Copy link
Collaborator

@jrhemstad jrhemstad left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Some questions I'd like answered before we merge this:

  • How will we test this? I think we should have tests that include each micro-header and ensure that was is supposed to be available in that header is indeed available.
  • How will we document this?
  • I'd like to see an evaluation of how well this naming pattern will extend to other headers

@github-project-automation github-project-automation bot moved this from In Review to In Progress in CCCL Mar 10, 2026
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

Status: In Progress

Development

Successfully merging this pull request may close these issues.

4 participants