Skip to content

[Tile] Mark the thrust actor framework as tile enabled. - #10714

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

[Tile] Mark the thrust actor framework as tile enabled.#10714
miscco wants to merge 1 commit into
NVIDIA:mainfrom
miscco:tile_thrust_actor

Conversation

@miscco

@miscco miscco commented Aug 7, 2026

Copy link
Copy Markdown
Contributor

Those are purely forwarding structs, so they should be able to take whatever is thrown at them

Those are purely forwarding structs, so they should be able to take whatever is thrown at them
@miscco
miscco requested a review from a team as a code owner August 7, 2026 12:42
@miscco
miscco requested a review from elstehle August 7, 2026 12:42
@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

📝 Walkthrough

Summary by CodeRabbit

  • Bug Fixes
    • Improved compatibility and diagnostics for public functional utilities and type-erased assignment operations.
    • Preserved existing runtime behavior while refining how these APIs are exposed and checked across supported execution environments.

Walkthrough

Changes

The pull request replaces _CCCL_HOST_DEVICE annotations with _CCCL_API and, where applicable, _CCCL_EXEC_CHECK_DISABLE on functional actor APIs and any_assign operations. Runtime behavior remains unchanged.

Annotation updates

Layer / File(s) Summary
Functional API annotation migration
thrust/thrust/detail/functional/actor.h, thrust/thrust/iterator/detail/any_assign.h
Updated annotations on actor, argument, composite, operator adaptor, value, composition helpers, and any_assign constructors and assignment operators. Existing evaluation, forwarding, construction, and assignment behavior remains unchanged.

Suggested reviewers: elstehle


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

@coderabbitai coderabbitai Bot left a comment

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

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

🧹 Nitpick comments (2)
thrust/thrust/detail/functional/actor.h (2)

39-40: 📐 Maintainability & Code Quality | 🔵 Trivial | ⚡ Quick win

suggestion: Confirm the annotation policy for defaulted constructors.

These declarations add _CCCL_EXEC_CHECK_DISABLE, but they do not add _CCCL_API. _CCCL_EXEC_CHECK_DISABLE suppresses an execution-space check. It does not provide the function API annotation. (nvidia.github.io)

If explicitly defaulted special members are intentionally exempt because CUDA infers their execution space, document that exemption and cover host, device, and tile construction in a compile test. (docs.nvidia.com)

As per coding guidelines, “Functions must be marked with _CCCL_HOST_API, _CCCL_DEVICE_API, _CCCL_HOST_DEVICE_API, _CCCL_TILE_API, or _CCCL_API.” As per path instructions, preserve Thrust API compatibility and host/device callability.

Also applies to: 96-97, 122-123, 156-157

Sources: Coding guidelines, Path instructions, MCP tools


42-56: 🎯 Functional Correctness | 🔵 Trivial

suggestion: Run a focused host/device/tile compile test.

Use the relevant CCCL CMake preset and Thrust target. Test normal SIMT and tile-enabled compilation. Exercise actor construction, operator(), eval, make_actor, both compose overloads, and any_assign with arbitrary input types. Verify dispatch and ADL behavior.

No targeted build or test result is included in the provided context.

As per coding guidelines, “Validate changes with targeted builds and tests.” As per path instructions, verify API compatibility, dispatch behavior, host/device callability, and templated arbitrary-input support.

#!/usr/bin/env bash
set -euo pipefail

rg -n 'make_actor|compose\(|any_assign|_CCCL_API|_CCCL_EXEC_CHECK_DISABLE' . \
  --glob '*.cpp' --glob '*.cc' --glob '*.cxx' --glob '*.cu' \
  --glob '*.h' --glob '*.hh' --glob '*.hpp' --glob '*.cuh'

cmake --list-presets=all

ℹ️ Review info
⚙️ Run configuration

Configuration used: Path: .coderabbit.yaml

Review profile: CHILL

Plan: Enterprise

Run ID: bb985407-ffdb-416b-b482-2f08725f84bd

📥 Commits

Reviewing files that changed from the base of the PR and between 2bff086 and 055cd27.

📒 Files selected for processing (2)
  • thrust/thrust/detail/functional/actor.h
  • thrust/thrust/iterator/detail/any_assign.h

@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), 6 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

Direct file processing

-f file-processing exclusive --sort total

🟢 Direct file processing — Improvements
Rank Improvement impact Selected Δ Baseline Current Event Matched traces
1 0.752937 -0.752937 9.336447 8.583510 Processing Header File: libcudacxx/include/cuda/std/__cccl/prologue.h 550
2 0.472273 -0.472273 3.331492 2.859219 Processing Header File: libcudacxx/include/cuda/std/__cccl/epilogue.h 550
3 0.439944 -0.439944 7.982951 7.543007 Processing Header File: cub/cub/util_type.cuh 279
4 0.382773 -0.382773 6.315579 5.932806 Processing Header File: libcudacxx/include/cuda/std/__tuple_dir/vector_types.h 238
5 0.257114 -0.257114 4.126131 3.869017 Processing Header File: libcudacxx/include/cuda/std/__utility/pair.h 404
6 0.210818 -0.210818 20.701856 20.491038 Processing Header File: libcudacxx/include/cuda/__device/physical_device.h 94

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