Skip to content

[Tile] Disable execution checks in thrust defaulted constructors - #10710

Open
miscco wants to merge 1 commit into
NVIDIA:mainfrom
miscco:tile_thrust
Open

[Tile] Disable execution checks in thrust defaulted constructors#10710
miscco wants to merge 1 commit into
NVIDIA:mainfrom
miscco:tile_thrust

Conversation

@miscco

@miscco miscco commented Aug 7, 2026

Copy link
Copy Markdown
Contributor

We have issues with execution checks in synthesized constructors, so mark the checks aas explicitly disabled

@miscco
miscco requested review from a team as code owners August 7, 2026 10:26
@miscco
miscco requested review from elstehle and ericniebler August 7, 2026 10:26
@github-project-automation github-project-automation Bot moved this to Todo in CCCL Aug 7, 2026
@cccl-authenticator-app cccl-authenticator-app Bot moved this from Todo to In Review in CCCL Aug 7, 2026
@coderabbitai

coderabbitai Bot commented Aug 7, 2026

Copy link
Copy Markdown
Contributor

Review Change Stack

No actionable comments were generated in the recent review. 🎉

ℹ️ Recent review info
⚙️ Run configuration

Configuration used: Path: .coderabbit.yaml

Review profile: CHILL

Plan: Enterprise

Run ID: b44b125e-723d-4893-acb3-cd811a2573c4

📥 Commits

Reviewing files that changed from the base of the PR and between 10d2278 and 65a5f84.

📒 Files selected for processing (19)
  • libcudacxx/include/cuda/std/__cccl/sequence_access.h
  • thrust/testing/device_delete.cu
  • thrust/thrust/detail/allocator/tagged_allocator.h
  • thrust/thrust/detail/pointer.h
  • thrust/thrust/detail/seq.h
  • thrust/thrust/device_allocator.h
  • thrust/thrust/device_ptr.h
  • thrust/thrust/iterator/constant_iterator.h
  • thrust/thrust/iterator/detail/normal_iterator.h
  • thrust/thrust/iterator/detail/tagged_iterator.h
  • thrust/thrust/iterator/detail/tuple_of_iterator_references.h
  • thrust/thrust/iterator/iterator_adaptor.h
  • thrust/thrust/iterator/permutation_iterator.h
  • thrust/thrust/iterator/strided_iterator.h
  • thrust/thrust/iterator/tabulate_output_iterator.h
  • thrust/thrust/iterator/transform_input_output_iterator.h
  • thrust/thrust/iterator/transform_iterator.h
  • thrust/thrust/iterator/transform_output_iterator.h
  • thrust/thrust/iterator/zip_iterator.h

📝 Walkthrough

Summary by CodeRabbit

  • Bug Fixes

    • Improved CUDA host/device compatibility for sequence access operations, including forward and reverse iteration.
    • Prevented unsupported virtual-destructor tests from running in tile compilation mode.
    • Improved compatibility of pointer, allocator, sequence, and iterator construction across supported execution environments.
  • Refactor

    • Standardized execution-check handling for constructors and iterator-related components without changing their public behavior.

Walkthrough

The pull request updates generated sequence-access functions for host/device compilation, suppresses execution checks on selected Thrust types and constructors, and excludes a virtual-destructor test during tile compilation.

Changes

CUDA compilation compatibility

Layer / File(s) Summary
Sequence access API annotations
libcudacxx/include/cuda/std/__cccl/sequence_access.h
Generated forward and reverse access functions now use _CCCL_HOST_DEVICE_API. Their return expressions and noexcept behavior remain unchanged.
Execution-check annotations
thrust/thrust/detail/*, thrust/thrust/device_*.h, thrust/thrust/iterator/*
Selected Thrust constructors and declarations now use _CCCL_EXEC_CHECK_DISABLE. The default thrust::pointer constructor is explicitly defaulted.
Tile-mode test guard
thrust/testing/device_delete.cu
The virtual-destructor device deletion test is excluded during tile compilation.

Possibly related PRs

  • NVIDIA/cccl#10707: Updates other CUDA/CCCL APIs from _CCCL_API to _CCCL_HOST_DEVICE_API.

Suggested reviewers: ericniebler, elstehle, jacobfaib


Comment @coderabbitai help to get the list of available commands.

@github-actions

This comment has been minimized.

@github-actions

github-actions Bot commented Aug 7, 2026

Copy link
Copy Markdown
Contributor

⏱️ CCCL compile-time benchmark comparison: Public headers compile-time bench

Result: 0 regression row(s), 10 improvement row(s) above threshold.

Run Value
Config public-headers-gcc13
Baseline origin/main
Preset all-dev
Targets cub.headers.base, thrust.cpp.cuda.headers.base, libcudacxx.test.public_headers
GPU / launch args rtx2080 / --cuda 13.3 --host gcc13

Artifacts: reports and traces

TU total compilation

-f total-compilation inclusive --sort total

🟢 TU total compilation — Improvements
Rank Improvement impact Selected Δ Baseline Current Event Matched traces
1 4.215200 -4.215200 12.746109 8.530909 Total Compilation Time: cub/device/device_segmented_reduce.cuh 1

Direct file processing

-f file-processing exclusive --sort total

🟢 Direct file processing — Improvements
Rank Improvement impact Selected Δ Baseline Current Event Matched traces
1 1.160317 -1.160317 9.836149 8.675832 Processing Header File: libcudacxx/include/cuda/std/__cccl/prologue.h 550
2 0.537338 -0.537338 20.298138 19.760800 Processing Header File: libcudacxx/include/cuda/__device/physical_device.h 94
3 0.357054 -0.357054 3.066177 2.709123 Processing Header File: libcudacxx/include/cuda/std/__atomic/functions/cuda_ptx_generated.h 57
4 0.354327 -0.354327 11.647714 11.293387 Processing Header File: libcudacxx/include/cuda/std/__type_traits/type_list.h 477
5 0.267310 -0.267310 6.197349 5.930039 Processing Header File: libcudacxx/include/cuda/std/__tuple_dir/vector_types.h 238
6 0.262441 -0.262441 11.209320 10.946879 Processing Header File: libcudacxx/include/cuda/std/__iterator/concepts.h 437
7 0.220090 -0.220090 3.362322 3.142232 Processing Header File: libcudacxx/include/cuda/std/__cccl/epilogue.h 550
8 0.212632 -0.212632 1.504685 1.292053 Processing Header File: cub/cub/device/dispatch/tuning/tuning_select_if.cuh 43
9 0.200354 -0.200354 1.202235 1.001881 Processing Header File: cub/cub/device/dispatch/tuning/tuning_unique_by_key.cuh 41

@github-actions

github-actions Bot commented Aug 7, 2026

Copy link
Copy Markdown
Contributor

🥳 CI Workflow Results

🟩 Finished in 4h 21m: Pass: 100%/169 | Total: 8d 06h | Max: 4h 20m | Hits: 34%/1871483

See results here.

@miscco
miscco enabled auto-merge (squash) August 7, 2026 17:20
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

Status: In Review

Development

Successfully merging this pull request may close these issues.

1 participant