[libcu++] Improve the implementation of tuple_cat - #11323
Conversation
|
Note Reviews pausedIt looks like this branch is under active development. To avoid overwhelming you with review comments due to an influx of new commits, CodeRabbit has automatically paused this review. You can configure this behavior by changing the Use the following commands to manage reviews:
Use the checkboxes below for quick actions:
No actionable comments were generated in the recent review. 🎉 ℹ️ Recent review info⚙️ Run configurationConfiguration used: Path: .coderabbit.yaml Review profile: CHILL Plan: Enterprise Run ID: 📒 Files selected for processing (1)
🚧 Files skipped from review as they are similar to previous changes (1)
Included review availability: Your plan provides up to 12 included reviews per hour; 11 remain after this review. 📝 SummarySummary by CodeRabbit
WalkthroughThe change refactors ChangesTuple concatenation
Suggested reviewers: Priority: ⬇️ Low Change: Refactor Merge Risk: 🔵 Low · up to The remaining concern is limited to annotated preprocessor comment consistency in a tuple type-support header and does not indicate a functional regression. Comment |
It relied on recursive types. Rather than that use recursive functions and type aliases.
d8a7407 to
a7d41d6
Compare
This comment has been minimized.
This comment has been minimized.
There was a problem hiding this comment.
🧹 Nitpick comments (1)
libcudacxx/include/cuda/std/__tuple_dir/make_tuple_types.h (1)
72-77: 📐 Maintainability & Code Quality | 🔵 Trivial | ⚡ Quick winsuggestion: Use the exact
#if _CCCL_COMPILER(MSVC)condition in each annotated#elseand#endifcomment. Do not use the negated!_CCCL_COMPILER(MSVC)form.
libcudacxx/include/cuda/std/__tuple_dir/make_tuple_types.h#L72-L77: update the#elseand#endifcomments.libcudacxx/include/cuda/std/__tuple_dir/make_tuple_types.h#L92-L97: update the#elseand#endifcomments.Source: Learnings
ℹ️ Review info
⚙️ Run configuration
Configuration used: Path: .coderabbit.yaml
Review profile: CHILL
Plan: Enterprise
Run ID: a3326b36-2078-4179-b9f7-7309e33c6dec
📒 Files selected for processing (1)
libcudacxx/include/cuda/std/__tuple_dir/make_tuple_types.h
Included review availability: Your plan provides up to 12 included reviews per hour; 11 remain after this review.
🥳 CI Workflow Results🟩 Finished in 3h 07m: Pass: 100%/195 | Total: 2d 23h | Max: 3h 06m | Hits: 74%/792259See results here. |
It relied on recursive types. Rather than that use recursive functions and type aliases.
Every event matching
tuple_catwhen compiling MatXtuple_catwere some of the more costly templates in MatxInclusive duration, grouped by NVCC primary template / header / function. 506 distinct specializations collapse into these six keys.
__tuple_cat_return_1__tuple_cat_return_impl__tuple_cat_return__tuple_cat_typetuple_cat.htuple_cat()Old recursive class helpers (
__tuple_cat_return_1,__tuple_cat_return,__tuple_cat_type) drop to zero. They are replaced by__tuple_cat_return_implat 171.7 s inclusive — cheaper than the 195.7 s class it replaces, plus the extra ~45 s of the other two helpers.