[STF] Extract standalone __places project from __stf/places#8189
Merged
andralex merged 36 commits intoNVIDIA:mainfrom Mar 30, 2026
Merged
[STF] Extract standalone __places project from __stf/places#8189andralex merged 36 commits intoNVIDIA:mainfrom
andralex merged 36 commits intoNVIDIA:mainfrom
Conversation
Contributor
Contributor
Author
|
/ok to test 21a427b |
andralex
reviewed
Mar 26, 2026
andralex
reviewed
Mar 26, 2026
andralex
reviewed
Mar 26, 2026
| #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> |
Contributor
There was a problem hiding this comment.
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.
Contributor
Author
There was a problem hiding this comment.
We need to decide where to move such utilities ...
This comment has been minimized.
This comment has been minimized.
andralex
reviewed
Mar 26, 2026
Contributor
|
/ok to test 9560eaf |
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
4c45bcc to
a12219d
Compare
Contributor
|
/ok to test a12219d |
This comment has been minimized.
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
Contributor
|
/ok to test 314272f |
The transitive include was broken when interpreted_execution_policy.cuh was removed from places.cuh. Made-with: Cursor
Contributor
|
/ok to test 5bbf017 |
This comment has been minimized.
This comment has been minimized.
Contributor
Author
|
/ok to test 3d1cce4 |
Provides a single include entry point (cuda/experimental/places.cuh) for the standalone places API, so external consumers don't need to reference internal __places/ paths or pull in the full stf.cuh. Made-with: Cursor
This comment has been minimized.
This comment has been minimized.
Include these two headers explicitly for discoverability, even though they are already pulled in transitively. Made-with: Cursor
This comment has been minimized.
This comment has been minimized.
Contributor
Author
|
/ok to test 8a7cfe0 |
Contributor
Author
|
/ok to test 006b00d |
This comment has been minimized.
This comment has been minimized.
Wire data_place_composite::allocate/deallocate to a VMM-backed localized_array implementation instead of throwing. Add a Thrust device_vector example that uses data_place as a memory resource, demonstrating transparent single-device and multi-device (composite) placement. Made-with: Cursor
Partitions are a places concept (they define how data maps onto a grid of places), not an STF task-graph concept. Move blocked_partition, tiled_partition, and cyclic_shape into __places/partitions/ and update all include paths and unittested header registrations accordingly. Made-with: Cursor
Contributor
Author
|
/ok to test 09fc48f |
2 tasks
This comment has been minimized.
This comment has been minimized.
Contributor
Author
|
/ok to test feab5e7 |
miscco
approved these changes
Mar 30, 2026
This comment has been minimized.
This comment has been minimized.
The test incorrectly assumed blocked_partition maps to a multi-dimensional grid, but it only partitions along a single dimension (the highest-rank one) and maps to grid_dims.x places. The test was never registered in stf_unittested_headers so the bug went unnoticed until this branch. Made-with: Cursor
- places.cuh: already registered in places_unittested_headers - logical_data.cuh, parallel_for_scope.cuh: no UNITTEST blocks Made-with: Cursor
Contributor
Author
|
/ok to test 984cd43 |
Contributor
Author
|
/ok to test 51917d1 |
NaderAlAwar
approved these changes
Mar 30, 2026
Contributor
🥳 CI Workflow Results🟩 Finished in 5h 56m: Pass: 100%/445 | Total: 5d 15h | Max: 1h 23m | Hits: 98%/514771See results here. |
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
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:
Remove unused occupancy.cuh include from __places/places.cuh.
Made-with: Cursor
Description
closes
Checklist