Skip to content

[STF] Extract standalone __places project from __stf/places#8189

Draft
caugonnet wants to merge 4 commits intoNVIDIA:mainfrom
caugonnet:stf_standalone_places_v2
Draft

[STF] Extract standalone __places project from __stf/places#8189
caugonnet wants to merge 4 commits intoNVIDIA:mainfrom
caugonnet:stf_standalone_places_v2

Conversation

@caugonnet
Copy link
Contributor

Move core place-concept headers (data_place, exec_place, stream_pool, green context, CUDA stream exec place, place_partition) from cudax/__stf/places/ into a new cudax/__places/ directory. Non-core files (tiled_partition, blocked_partition, cyclic_shape, callback_queues) remain in __stf/places/.

All consumers are updated to include from the new __places/ paths directly (no forwarding headers).

Add build/test infrastructure for __places:

  • cudax_ENABLE_PLACES CMake option
  • cudaxPlacesConfigureTarget.cmake for target configuration
  • Header compilation tests in cudaxHeaderTesting.cmake
  • UNITTESTED_FILE support via places_header_unittest.in.cu
  • Test directory with smoke test and header unit tests
  • CMakePresets.json updated to enable places

Remove unused occupancy.cuh include from __places/places.cuh.

Made-with: Cursor

Description

closes

Checklist

  • New or existing tests cover these changes.
  • The documentation is up to date with these changes.

@caugonnet caugonnet self-assigned this Mar 26, 2026
@caugonnet caugonnet added stf Sequential Task Flow programming model places labels Mar 26, 2026
@github-project-automation github-project-automation bot moved this to Todo in CCCL Mar 26, 2026
@copy-pr-bot
Copy link
Contributor

copy-pr-bot bot commented Mar 26, 2026

This pull request requires additional validation before any workflows can run on NVIDIA's runners.

Pull request vetters can view their responsibilities here.

Contributors can view more details about this message here.

@cccl-authenticator-app cccl-authenticator-app bot moved this from Todo to In Progress in CCCL Mar 26, 2026
@caugonnet
Copy link
Contributor Author

/ok to test 21a427b

target_link_libraries(${headertest_target} PUBLIC cudax.compiler_interface)
endif()

# FIXME: Enable MSVC
Copy link
Contributor

Choose a reason for hiding this comment

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

What's the problem with msvc?

Copy link
Contributor Author

Choose a reason for hiding this comment

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

CUDASTF is not supported / tested on Windows/MSVC

#include <cuda/experimental/__places/data_place_interface.cuh>
#include <cuda/experimental/__places/exec/green_ctx_view.cuh>
#include <cuda/experimental/__places/places.cuh>
#include <cuda/experimental/__stf/utility/hash.cuh>
Copy link
Contributor

Choose a reason for hiding this comment

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

I see code in __places still includes code in __stf. Is that an intermediary state of affairs and is the long-term plan to excise that dependency? Far as I can tell right now __places and __stf depend on each other.

Copy link
Contributor Author

Choose a reason for hiding this comment

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

We need to decide where to move such utilities ...

@github-actions

This comment has been minimized.

Comment on lines +30 to +31
../../cudax/include/cuda/experimental/__places \
../../cudax/include/cuda/experimental/__places/exec \
Copy link
Contributor

Choose a reason for hiding this comment

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

Would be nice to place these before the __stf files, not in between them.

@andralex
Copy link
Contributor

/ok to test 9560eaf

@andralex
Copy link
Contributor

/ok to test 2570296

Move core place-concept headers (data_place, exec_place, stream_pool,
green context, CUDA stream exec place, place_partition) from
cudax/__stf/places/ into a new cudax/__places/ directory. Non-core
files (tiled_partition, blocked_partition, cyclic_shape, callback_queues)
remain in __stf/places/.

All consumers are updated to include from the new __places/ paths
directly (no forwarding headers).

Add build/test infrastructure for __places:
- cudax_ENABLE_PLACES CMake option
- cudaxPlacesConfigureTarget.cmake for target configuration
- Header compilation tests in cudaxHeaderTesting.cmake
- UNITTESTED_FILE support via places_header_unittest.in.cu
- Test directory with smoke test and header unit tests
- CMakePresets.json updated to enable places

Remove unused occupancy.cuh include from __places/places.cuh.

Made-with: Cursor
…aces/places.cuh

No types or functions from this header are used in places.cuh; the
include was a leftover from before the deferred implementation was
extracted to interpreted_execution_policy_impl.cuh.

Made-with: Cursor
@andralex andralex force-pushed the stf_standalone_places_v2 branch from 4c45bcc to a12219d Compare March 26, 2026 22:08
@andralex
Copy link
Contributor

/ok to test a12219d

@github-actions

This comment has been minimized.

Use cuda::experimental::scope_exit instead of the STF-specific
SCOPE(exit) macro. This removes __places' dependency on
scope_guard.cuh (and transitively on unittest.cuh, traits.cuh,
core.cuh), reducing the __stf -> __places coupling.

Made-with: Cursor
@andralex
Copy link
Contributor

/ok to test 314272f

The transitive include was broken when interpreted_execution_policy.cuh
was removed from places.cuh.

Made-with: Cursor
@andralex
Copy link
Contributor

/ok to test 5bbf017

@github-actions
Copy link
Contributor

😬 CI Workflow Results

🟥 Finished in 1h 14m: Pass: 90%/445 | Total: 3d 05h | Max: 48m 37s | Hits: 99%/489910

See results here.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

places stf Sequential Task Flow programming model

Projects

Status: In Progress

Development

Successfully merging this pull request may close these issues.

2 participants