From dedf08166a89468b5161665334f00e9bdf0abf48 Mon Sep 17 00:00:00 2001 From: muh-bot Date: Thu, 6 Aug 2026 02:14:18 +0000 Subject: [PATCH] [CCCL] Add missing CCCL components: c2h, nvbench_helper, cmake, cudax, AGENTS.md MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Added 863 files from NVIDIA/cccl sparse checkout: - c2h/ (27 files): Catch2 test helpers — generators, validators, runner - nvbench_helper/ (10 files): Benchmark harness utilities - cmake/ (29 files): CMake presets and build helpers - cudax/ (794 files): Experimental CUDA extensions - AGENTS.md: NVIDIA's official AI agent instructions for CCCL - CMakePresets.json: Standardized build configurations - cccl-version.json: Version tracking Also added CCCL_ASSET_MAP.md mapping all 4295 CCCL files to competition value and PRD items. cccl_upstream now covers 100% of competition-critical assets: - 27 tuning headers (SM80/90/100 benchmark data) - 32 dispatch headers (algorithm implementations) - 60 Thrust examples (correctness verification) - 217 CUB Catch2 tests (regression matrix) - 153 CUB benchmarks (parameter space search) - 18 CUB examples (API verification) - 27 test helpers + benchmark harness - 794 cudax experimental extensions --- CCCL_ASSET_MAP.md | 90 + cccl_upstream/AGENTS.md | 404 +++ cccl_upstream/CMakePresets.json | 972 ++++++ cccl_upstream/c2h/CMakeLists.txt | 65 + cccl_upstream/c2h/catch2_runner.cu | 10 + cccl_upstream/c2h/catch2_runner_helper.cu | 9 + cccl_upstream/c2h/catch2_runner_helper.inl | 38 + cccl_upstream/c2h/generators.cu | 291 ++ cccl_upstream/c2h/generators_gen_values.cu | 96 + .../c2h/generators_uniform_offsets.cu | 66 + cccl_upstream/c2h/generators_vector.cu | 167 ++ cccl_upstream/c2h/include/c2h/bfloat16.cuh | 256 ++ cccl_upstream/c2h/include/c2h/catch2_main.h | 51 + .../c2h/include/c2h/catch2_runner_helper.h | 7 + .../c2h/include/c2h/catch2_test_helper.h | 670 +++++ .../c2h/include/c2h/catch2_test_macros.h | 200 ++ .../c2h/include/c2h/check_results.cuh | 154 + .../c2h/include/c2h/checked_allocator.cuh | 205 ++ cccl_upstream/c2h/include/c2h/cpu_timer.h | 83 + cccl_upstream/c2h/include/c2h/custom_type.h | 191 ++ .../c2h/include/c2h/detail/generators.cuh | 70 + cccl_upstream/c2h/include/c2h/device_policy.h | 19 + .../c2h/include/c2h/extended_types.h | 41 + cccl_upstream/c2h/include/c2h/fill_striped.h | 70 + cccl_upstream/c2h/include/c2h/generators.h | 166 ++ cccl_upstream/c2h/include/c2h/half.cuh | 345 +++ cccl_upstream/c2h/include/c2h/operator.cuh | 104 + cccl_upstream/c2h/include/c2h/test_util_vec.h | 416 +++ cccl_upstream/c2h/include/c2h/utility.h | 36 + cccl_upstream/c2h/include/c2h/vector.h | 68 + cccl_upstream/cccl-version.json | 6 + .../cmake/AppendOptionIfAvailable.cmake | 11 + cccl_upstream/cmake/CCCLAddExecutable.cmake | 53 + cccl_upstream/cmake/CCCLAddSubdir.cmake | 6 + cccl_upstream/cmake/CCCLAddSubdirHelper.cmake | 75 + cccl_upstream/cmake/CCCLAddTidyTarget.cmake | 186 ++ .../cmake/CCCLBuildCompilerTargets.cmake | 262 ++ .../cmake/CCCLCheckCudaArchitectures.cmake | 122 + .../cmake/CCCLClangdCompileInfo.cmake | 39 + cccl_upstream/cmake/CCCLConfigureTarget.cmake | 66 + cccl_upstream/cmake/CCCLDevBuildChecks.cmake | 36 + .../cmake/CCCLEnsureMetaTargets.cmake | 52 + .../cmake/CCCLGenerateHeaderTests.cmake | 242 ++ cccl_upstream/cmake/CCCLGetDependencies.cmake | 127 + .../cmake/CCCLHideThirdPartyOptions.cmake | 39 + cccl_upstream/cmake/CCCLInstallRules.cmake | 146 + cccl_upstream/cmake/CCCLTestParams.cmake | 110 + cccl_upstream/cmake/CCCLUtilities.cmake | 291 ++ cccl_upstream/cmake/CPM.cmake | 1297 ++++++++ cccl_upstream/cmake/PrintCTestRunTimes.cmake | 135 + .../cmake/PrintNinjaBuildTimes.cmake | 108 + .../cmake/find_modules/FindNCCL.cmake | 120 + cccl_upstream/cmake/header_test.cu.in | 89 + cccl_upstream/cmake/install/cccl.cmake | 1 + cccl_upstream/cmake/install/cub.cmake | 6 + cccl_upstream/cmake/install/cudax.cmake | 7 + cccl_upstream/cmake/install/libcudacxx.cmake | 8 + cccl_upstream/cmake/install/thrust.cmake | 6 + cccl_upstream/cmake/link_check_main.cpp | 4 + cccl_upstream/cmake/run_clang_tidy.sh.in | 18 + cccl_upstream/cudax/CMakeLists.txt | 94 + cccl_upstream/cudax/LICENSE.TXT | 222 ++ cccl_upstream/cudax/README.md | 32 + cccl_upstream/cudax/benchmarks/CMakeLists.txt | 69 + .../cudax/benchmarks/bench/copy/copy_bench.cu | 331 +++ .../benchmarks/bench/cuco/common/defaults.cuh | 44 + .../bench/cuco/common/key_generator.cuh | 285 ++ .../bench/cuco/fixed_capacity_map/contains.cu | 110 + .../bench/cuco/fixed_capacity_map/find.cu | 108 + .../bench/cuco/fixed_capacity_map/insert.cu | 105 + .../cudax/benchmarks/bench/cuco/hashers.cu | 131 + .../benchmarks/bench/cuco/hyperloglog.cu | 133 + .../cudax/cmake/cudaxAddSubdir.cmake | 1 + .../cmake/cudaxBuildCompilerTargets.cmake | 65 + .../cudax/cmake/cudaxHeaderTesting.cmake | 109 + .../cmake/cudaxPlacesConfigureTarget.cmake | 23 + .../cudax/cmake/cudaxSTFConfigureTarget.cmake | 58 + cccl_upstream/cudax/cmake/header_test.in.cu | 66 + .../cudax/cmake/places_header_unittest.in.cu | 9 + .../cudax/cmake/stf_header_unittest.in.cu | 9 + cccl_upstream/cudax/examples/CMakeLists.txt | 56 + .../cudax/examples/async_buffer_add.cu | 92 + cccl_upstream/cudax/examples/cub_reduce.cu | 53 + .../cudax/examples/places/CMakeLists.txt | 30 + .../thrust_device_data_place_allocator.cu | 117 + cccl_upstream/cudax/examples/simple_p2p.cu | 262 ++ .../cudax/examples/stdexec_stream.cu | 82 + .../cudax/examples/stf/01-axpy-cuda_kernel.cu | 73 + .../examples/stf/01-axpy-cuda_kernel_chain.cu | 80 + .../cudax/examples/stf/01-axpy-launch.cu | 62 + .../examples/stf/01-axpy-parallel_for.cu | 61 + cccl_upstream/cudax/examples/stf/01-axpy.cu | 72 + .../cudax/examples/stf/02-axpy-host_launch.cu | 81 + .../cudax/examples/stf/03-temporary-data.cu | 69 + .../examples/stf/04-fibonacci-run_once.cu | 79 + .../cudax/examples/stf/04-fibonacci.cu | 75 + .../cudax/examples/stf/08-cub-reduce.cu | 95 + .../cudax/examples/stf/09-dot-reduce.cu | 55 + cccl_upstream/cudax/examples/stf/1f1b.cu | 118 + .../cudax/examples/stf/CMakeLists.txt | 124 + .../cudax/examples/stf/axpy-annotated.cu | 82 + .../cudax/examples/stf/binary_fhe.cu | 201 ++ .../examples/stf/binary_fhe_stackable.cu | 240 ++ cccl_upstream/cudax/examples/stf/cfd.cu | 480 +++ .../examples/stf/custom_data_interface.cu | 327 ++ .../examples/stf/explicit_data_places.cu | 87 + cccl_upstream/cudax/examples/stf/fdtd_mgpu.cu | 300 ++ .../cudax/examples/stf/fdtd_repeat_n.cu | 186 ++ .../cudax/examples/stf/fdtd_while.cu | 288 ++ .../cudax/examples/stf/frozen_data_init.cu | 53 + .../stf/graph_algorithms/degree_centrality.cu | 64 + .../examples/stf/graph_algorithms/jaccard.cu | 137 + .../examples/stf/graph_algorithms/pagerank.cu | 121 + .../stf/graph_algorithms/pagerank_batched.cu | 203 ++ .../stf/graph_algorithms/pagerank_while.cu | 135 + .../examples/stf/graph_algorithms/tricount.cu | 100 + .../cudax/examples/stf/graph_scope.cu | 105 + cccl_upstream/cudax/examples/stf/heat.cu | 126 + cccl_upstream/cudax/examples/stf/heat_mgpu.cu | 163 + cccl_upstream/cudax/examples/stf/jacobi.cu | 153 + .../cudax/examples/stf/jacobi_pfor.cu | 95 + .../cudax/examples/stf/jacobi_stackable.cu | 97 + .../examples/stf/jacobi_stackable_raii.cu | 104 + .../cudax/examples/stf/jacobi_update_cond.cu | 101 + .../cudax/examples/stf/launch_histogram.cu | 170 ++ .../cudax/examples/stf/launch_scan.cu | 162 + .../cudax/examples/stf/launch_sum.cu | 81 + .../cudax/examples/stf/launch_sum_cub.cu | 73 + .../stf/linear_algebra/06-pdgemm-stackable.cu | 484 +++ .../examples/stf/linear_algebra/06-pdgemm.cu | 399 +++ .../stf/linear_algebra/07-cholesky.cu | 748 +++++ .../examples/stf/linear_algebra/07-potri.cu | 1678 +++++++++++ .../examples/stf/linear_algebra/burger.cu | 372 +++ .../stf/linear_algebra/burger_sensitivity.cu | 479 +++ .../examples/stf/linear_algebra/cg_csr.cu | 232 ++ .../stf/linear_algebra/cg_csr_stackable.cu | 240 ++ .../stf/linear_algebra/cg_dense_2D.cu | 462 +++ .../examples/stf/linear_algebra/cg_solver.cuh | 189 ++ .../cudax/examples/stf/linear_algebra/dot.cuh | 70 + .../stf/linear_algebra/newton_solver.cuh | 172 ++ .../examples/stf/linear_algebra/strassen.cu | 489 +++ .../examples/stf/logical_gates_composition.cu | 73 + .../cudax/examples/stf/mandelbrot.cu | 129 + .../cudax/examples/stf/parallel_for_2D.cu | 74 + .../cudax/examples/stf/partitioned_axpy.cu | 143 + cccl_upstream/cudax/examples/stf/pi.cu | 52 + cccl_upstream/cudax/examples/stf/scan.cu | 204 ++ .../examples/stf/sqrt_newton_stackable.cu | 80 + .../cudax/examples/stf/standalone-launches.cu | 77 + .../cudax/examples/stf/thrust_zip_iterator.cu | 135 + .../cudax/examples/stf/void_data_interface.cu | 57 + .../cudax/examples/stf/word_count.cu | 91 + .../cudax/examples/stf/word_count_reduce.cu | 68 + cccl_upstream/cudax/examples/vector.cuh | 159 + cccl_upstream/cudax/examples/vector_add.cu | 127 + .../experimental/__container/graph_buffer.cuh | 318 ++ .../__container/uninitialized_buffer.cuh | 292 ++ .../cuda/experimental/__coop/any_of.cuh | 137 + .../cuda/experimental/__coop/reduce.cuh | 414 +++ .../cuda/experimental/__coop/scratch.cuh | 149 + .../cuda/experimental/__coop/shuffle.cuh | 85 + .../cuda/experimental/__coop/shuffle_down.cuh | 89 + .../cuda/experimental/__coop/shuffle_up.cuh | 91 + .../experimental/__copy/copy_contiguous.cuh | 236 ++ .../experimental/__copy/copy_optimized.cuh | 149 + .../__copy/copy_shared_memory.cuh | 442 +++ .../__copy/copy_shared_memory_utils.cuh | 293 ++ .../__copy/dispatch_by_vector.cuh | 149 + .../cuda/experimental/__copy/mdspan_d2d.cuh | 266 ++ .../experimental/__copy/tensor_copy_utils.cuh | 192 ++ .../experimental/__copy/tensor_iterator.cuh | 170 ++ .../experimental/__copy/vector_access.cuh | 74 + .../experimental/__copy_bytes/abs_integer.cuh | 57 + .../__copy_bytes/mdspan_d2h_h2d.cuh | 263 ++ .../__copy_bytes/mdspan_to_raw_tensor.cuh | 134 + .../__copy_bytes/memcpy_batch_tiles.cuh | 205 ++ .../__copy_bytes/print_raw_tensor.cuh | 68 + .../__copy_bytes/simplify_paired.cuh | 212 ++ .../__copy_bytes/tensor_query.cuh | 180 ++ .../cuda/experimental/__copy_bytes/types.cuh | 56 + .../cuda/experimental/__cuco/capacity.cuh | 126 + .../__cuco/detail/bitwise_compare.cuh | 59 + .../__cuco/detail/equal_wrapper.cuh | 131 + .../detail/hash_functions/murmurhash3.cuh | 848 ++++++ .../__cuco/detail/hash_functions/utils.cuh | 150 + .../__cuco/detail/hash_functions/xxhash.cuh | 426 +++ .../detail/hyperloglog/default_policy.cuh | 126 + .../__cuco/detail/hyperloglog/finalizer.cuh | 189 ++ .../detail/hyperloglog/hyperloglog_impl.cuh | 618 ++++ .../__cuco/detail/hyperloglog/kernels.cuh | 182 ++ .../__cuco/detail/hyperloglog/tuning.cuh | 166 ++ .../detail/open_addressing/functors.cuh | 119 + .../__cuco/detail/open_addressing/kernels.cuh | 294 ++ .../open_addressing/open_addressing_impl.cuh | 464 +++ .../open_addressing_ref_impl.cuh | 1028 +++++++ .../open_addressing/slot_storage_ref.cuh | 126 + .../cuda/experimental/__cuco/detail/prime.cuh | 173 ++ .../__cuco/detail/probing_scheme_base.cuh | 89 + .../__cuco/detail/utility/cuda.cuh | 88 + .../__cuco/detail/utility/strong_type.cuh | 64 + .../__cuco/detail/utility/traits.cuh | 45 + .../__cuco/fixed_capacity_map.cuh | 569 ++++ .../__cuco/fixed_capacity_map_ref.cuh | 354 +++ .../experimental/__cuco/hash_functions.cuh | 97 + .../cuda/experimental/__cuco/hll_policies.cuh | 26 + .../cuda/experimental/__cuco/hyperloglog.cuh | 437 +++ .../experimental/__cuco/hyperloglog_ref.cuh | 364 +++ .../experimental/__cuco/probing_scheme.cuh | 273 ++ .../cuda/experimental/__cuco/types.cuh | 66 + .../cuda/experimental/__cufile/cufile.cuh | 311 ++ .../cuda/experimental/__cufile/cufile_ref.cuh | 61 + .../cuda/experimental/__cufile/driver.cuh | 314 ++ .../__cufile/driver_attributes.cuh | 173 ++ .../cuda/experimental/__cufile/exception.cuh | 107 + .../cuda/experimental/__cufile/open_mode.cuh | 73 + .../experimental/__detail/type_traits.cuh | 119 + .../cuda/experimental/__detail/utility.cuh | 54 + .../experimental/__device/logical_device.cuh | 140 + .../cuda/experimental/__driver/driver_api.cuh | 332 +++ .../__execution/any_allocator.cuh | 145 + .../experimental/__execution/apply_sender.cuh | 84 + .../__execution/atomic_intrusive_queue.cuh | 83 + .../cuda/experimental/__execution/bulk.cuh | 472 +++ .../__execution/completion_behavior.cuh | 193 ++ .../__execution/completion_signatures.cuh | 663 +++++ .../experimental/__execution/concepts.cuh | 160 + .../experimental/__execution/conditional.cuh | 316 ++ .../experimental/__execution/continues_on.cuh | 481 +++ .../cuda/experimental/__execution/cpos.cuh | 191 ++ .../experimental/__execution/diagnostics.cuh | 173 ++ .../cuda/experimental/__execution/domain.cuh | 486 +++ .../cuda/experimental/__execution/env.cuh | 352 +++ .../experimental/__execution/epilogue.cuh | 24 + .../experimental/__execution/exception.cuh | 116 + .../cuda/experimental/__execution/fwd.cuh | 337 +++ .../__execution/get_completion_signatures.cuh | 345 +++ .../__execution/inline_scheduler.cuh | 102 + .../__execution/intrusive_queue.cuh | 295 ++ .../cuda/experimental/__execution/just.cuh | 182 ++ .../experimental/__execution/just_from.cuh | 198 ++ .../cuda/experimental/__execution/lazy.cuh | 135 + .../experimental/__execution/let_value.cuh | 655 ++++ .../cuda/experimental/__execution/meta.cuh | 170 ++ .../cuda/experimental/__execution/on.cuh | 299 ++ .../parallel_scheduler_backend.cuh | 213 ++ .../cuda/experimental/__execution/policy.cuh | 137 + .../experimental/__execution/prologue.cuh | 43 + .../cuda/experimental/__execution/queries.cuh | 409 +++ .../experimental/__execution/rcvr_ref.cuh | 105 + .../__execution/rcvr_with_env.cuh | 103 + .../experimental/__execution/read_env.cuh | 169 ++ .../experimental/__execution/run_loop.cuh | 313 ++ .../__execution/schedule_from.cuh | 104 + .../experimental/__execution/sequence.cuh | 301 ++ .../experimental/__execution/sndr_ref.cuh | 68 + .../__execution/start_detached.cuh | 112 + .../experimental/__execution/starts_on.cuh | 212 ++ .../experimental/__execution/stop_token.cuh | 518 ++++ .../__execution/stream/adaptor.cuh | 434 +++ .../experimental/__execution/stream/bulk.cuh | 226 ++ .../__execution/stream/context.cuh | 65 + .../__execution/stream/domain.cuh | 186 ++ .../__execution/stream/launch.cuh | 46 + .../__execution/stream/let_value.cuh | 73 + .../__execution/stream/schedule_from.cuh | 231 ++ .../__execution/stream/scheduler.cuh | 300 ++ .../__execution/stream/sequence.cuh | 48 + .../__execution/stream/sync_wait.cuh | 130 + .../__execution/stream_context.cuh | 36 + .../experimental/__execution/sync_wait.cuh | 331 +++ .../__execution/task_scheduler.cuh | 718 +++++ .../cuda/experimental/__execution/then.cuh | 409 +++ .../cuda/experimental/__execution/thread.cuh | 87 + .../__execution/thread_context.cuh | 72 + .../__execution/trampoline_scheduler.cuh | 322 ++ .../transform_completion_signatures.cuh | 196 ++ .../__execution/transform_sender.cuh | 138 + .../experimental/__execution/type_traits.cuh | 47 + .../cuda/experimental/__execution/utility.cuh | 434 +++ .../cuda/experimental/__execution/variant.cuh | 278 ++ .../cuda/experimental/__execution/visit.cuh | 210 ++ .../experimental/__execution/when_all.cuh | 574 ++++ .../experimental/__execution/write_attrs.cuh | 155 + .../experimental/__execution/write_env.cuh | 227 ++ .../__fill_bytes/fill_bytes_mdspan.cuh | 218 ++ .../__fill_bytes/fill_bytes_mdspan_utils.cuh | 96 + .../cuda/experimental/__graph/child_graph.cuh | 92 + .../cuda/experimental/__graph/concepts.cuh | 48 + .../experimental/__graph/conditional_node.cuh | 187 ++ .../cuda/experimental/__graph/copy_bytes.cuh | 147 + .../cuda/experimental/__graph/depends_on.cuh | 59 + .../cuda/experimental/__graph/fill_bytes.cuh | 128 + .../include/cuda/experimental/__graph/fwd.cuh | 44 + .../cuda/experimental/__graph/graph.cuh | 155 + .../experimental/__graph/graph_builder.cuh | 198 ++ .../__graph/graph_builder_ref.cuh | 290 ++ .../__graph/graph_memory_resource.cuh | 162 + .../experimental/__graph/graph_node_ref.cuh | 280 ++ .../experimental/__graph/graph_node_type.cuh | 99 + .../cuda/experimental/__graph/host_launch.cuh | 142 + .../experimental/__graph/path_builder.cuh | 244 ++ .../__green_context/green_ctx.cuh | 103 + .../cuda/experimental/__group/concepts.cuh | 68 + .../include/cuda/experimental/__group/fwd.cuh | 130 + .../cuda/experimental/__group/group.cuh | 256 ++ .../__group/implicit_hierarchy.cuh | 48 + .../cuda/experimental/__group/invoke_one.cuh | 106 + .../__group/mapping/binary_partition.cuh | 103 + .../__group/mapping/composite_mapping.cuh | 140 + .../experimental/__group/mapping/group_as.cuh | 330 +++ .../experimental/__group/mapping/group_by.cuh | 237 ++ .../__group/mapping/identity_mapping.cuh | 50 + .../__group/mapping/mapping_result.cuh | 217 ++ .../experimental/__group/mapping/take.cuh | 173 ++ .../cuda/experimental/__group/queries.cuh | 123 + .../synchronizer/barrier_synchronizer.cuh | 160 + .../synchronizer/lane_synchronizer.cuh | 94 + .../synchronizer/level_synchronizer.cuh | 220 ++ .../cuda/experimental/__group/this_group.cuh | 361 +++ .../cuda/experimental/__group/traits.cuh | 57 + .../cuda/experimental/__kernel/attributes.cuh | 131 + .../cuda/experimental/__kernel/kernel_ref.cuh | 169 ++ .../cuda/experimental/__launch/launch.cuh | 478 +++ .../cuda/experimental/__launch/param_kind.cuh | 87 + .../cuda/experimental/__library/library.cuh | 122 + .../experimental/__library/library_ref.cuh | 236 ++ .../__memory_resource/graph_resource.cuh | 61 + .../__multi_gpu/algorithm/common.h | 130 + .../__multi_gpu/algorithm/reduce/reduce.h | 387 +++ .../__multi_gpu/algorithm/scan/scan.h | 530 ++++ .../cuda/experimental/__multi_gpu/concepts.h | 237 ++ .../__multi_gpu/nccl_communicator.h | 197 ++ .../__multi_gpu/nccl_communicator_ref.h | 750 +++++ .../cuda/experimental/__nccl/abi_compatible.h | 151 + .../cuda/experimental/__nccl/nccl_api.h | 767 +++++ .../cuda/experimental/__nccl/shared_library.h | 203 ++ .../experimental/__places/cute_partition.cuh | 2283 ++++++++++++++ .../experimental/__places/data_place_impl.cuh | 414 +++ .../__places/data_place_interface.cuh | 241 ++ .../__places/exec/cuda_context.cuh | 295 ++ .../__places/exec/cuda_stream.cuh | 110 + .../__places/exec/green_context.cuh | 668 +++++ .../__places/exec/green_ctx_view.cuh | 83 + .../__places/exec_place_resources.cuh | 134 + .../experimental/__places/localized_array.cuh | 745 +++++ .../cuda/experimental/__places/machine.cuh | 129 + .../__places/partitions/blocked_partition.cuh | 178 ++ .../__places/partitions/cyclic_shape.cuh | 391 +++ .../__places/partitions/tiled_partition.cuh | 188 ++ .../experimental/__places/place_partition.cuh | 329 ++ .../cuda/experimental/__places/places.cuh | 2623 ++++++++++++++++ .../experimental/__places/stream_pool.cuh | 290 ++ .../__stf/allocators/adapters.cuh | 231 ++ .../__stf/allocators/block_allocator.cuh | 185 ++ .../__stf/allocators/buddy_allocator.cuh | 367 +++ .../__stf/allocators/cached_allocator.cuh | 385 +++ .../__stf/allocators/pooled_allocator.cuh | 525 ++++ .../__stf/allocators/uncached_allocator.cuh | 73 + .../experimental/__stf/graph/graph_ctx.cuh | 1084 +++++++ .../__stf/graph/graph_data_interface.cuh | 87 + .../experimental/__stf/graph/graph_task.cuh | 873 ++++++ .../__stf/graph/interfaces/slice.cuh | 283 ++ .../__stf/graph/interfaces/void_interface.cuh | 111 + .../__stf/graph/internal/event_types.cuh | 200 ++ .../__stf/internal/acquire_release.cuh | 427 +++ .../experimental/__stf/internal/algorithm.cuh | 374 +++ .../__stf/internal/async_prereq.cuh | 513 ++++ .../__stf/internal/async_resources_handle.cuh | 370 +++ .../internal/backend_allocator_setup.cuh | 123 + .../__stf/internal/backend_ctx.cuh | 1202 ++++++++ .../experimental/__stf/internal/constants.cuh | 125 + .../experimental/__stf/internal/context.cuh | 1924 ++++++++++++ .../internal/cooperative_group_system.cuh | 121 + .../__stf/internal/ctx_resource.cuh | 175 ++ .../__stf/internal/cuda_kernel_scope.cuh | 579 ++++ .../__stf/internal/data_interface.cuh | 483 +++ .../cuda/experimental/__stf/internal/dot.cuh | 1574 ++++++++++ .../__stf/internal/exec_affinity.cuh | 112 + .../__stf/internal/executable_graph_cache.cuh | 257 ++ .../__stf/internal/execution_policy.cuh | 716 +++++ .../__stf/internal/frozen_logical_data.cuh | 292 ++ .../internal/hashtable_linearprobing.cuh | 257 ++ .../__stf/internal/host_launch_scope.cuh | 437 +++ .../__stf/internal/inner_shape.cuh | 134 + .../__stf/internal/instance_id.cuh | 41 + .../internal/interpreted_execution_policy.cuh | 326 ++ .../interpreted_execution_policy_impl.cuh | 219 ++ .../experimental/__stf/internal/launch.cuh | 542 ++++ .../__stf/internal/logical_data.cuh | 2634 +++++++++++++++++ .../__stf/internal/loop_dispatch.cuh | 201 ++ .../cuda/experimental/__stf/internal/msir.cuh | 222 ++ .../__stf/internal/parallel_for_scope.cuh | 1246 ++++++++ .../experimental/__stf/internal/reducer.cuh | 196 ++ .../__stf/internal/reduction_base.cuh | 73 + .../experimental/__stf/internal/reorderer.cuh | 379 +++ .../experimental/__stf/internal/repeat.cuh | 89 + .../__stf/internal/scalar_interface.cuh | 331 +++ .../experimental/__stf/internal/scheduler.cuh | 465 +++ .../experimental/__stf/internal/slice.cuh | 1149 +++++++ .../internal/stf_places_extended_exports.cuh | 84 + .../internal/stf_places_into_stf_core.cuh | 37 + .../stf_places_partition_into_stf.cuh | 31 + .../cuda/experimental/__stf/internal/task.cuh | 760 +++++ .../experimental/__stf/internal/task_dep.cuh | 370 +++ .../__stf/internal/task_statistics.cuh | 315 ++ .../__stf/internal/thread_hierarchy.cuh | 519 ++++ .../__stf/internal/void_interface.cuh | 103 + .../__stf/localization/composite_slice.cuh | 331 +++ .../places/exec/host/callback_queues.cuh | 616 ++++ .../__stf/stackable/conditional_nodes.cuh | 86 + .../__stf/stackable/stackable_ctx.cuh | 2263 ++++++++++++++ .../__stf/stackable/stackable_ctx_impl.cuh | 1939 ++++++++++++ .../stackable/stackable_node_hierarchy.cuh | 155 + .../__stf/stackable/stackable_task_dep.cuh | 59 + .../interfaces/hashtable_linearprobing.cuh | 162 + .../__stf/stream/interfaces/slice.cuh | 282 ++ .../stream/interfaces/slice_reduction_ops.cuh | 229 ++ .../stream/interfaces/void_interface.cuh | 95 + .../__stf/stream/internal/event_types.cuh | 470 +++ .../experimental/__stf/stream/reduction.cuh | 166 ++ .../experimental/__stf/stream/stream_ctx.cuh | 1340 +++++++++ .../__stf/stream/stream_data_interface.cuh | 192 ++ .../experimental/__stf/stream/stream_task.cuh | 919 ++++++ .../__stf/utility/cartesian_iterator.cuh | 521 ++++ .../__stf/utility/constant_logical_data.cuh | 122 + .../cuda/experimental/__stf/utility/core.cuh | 426 +++ .../__stf/utility/cuda_safe_call.cuh | 550 ++++ .../experimental/__stf/utility/dimensions.cuh | 733 +++++ .../experimental/__stf/utility/handle.cuh | 290 ++ .../cuda/experimental/__stf/utility/hash.cuh | 240 ++ .../experimental/__stf/utility/memory.cuh | 1153 ++++++++ .../cuda/experimental/__stf/utility/nvtx.cuh | 101 + .../experimental/__stf/utility/occupancy.cuh | 117 + .../__stf/utility/pretty_print.cuh | 263 ++ .../experimental/__stf/utility/run_once.cuh | 106 + .../__stf/utility/scope_guard.cuh | 652 ++++ .../__stf/utility/source_location.cuh | 169 ++ .../experimental/__stf/utility/threads.cuh | 125 + .../experimental/__stf/utility/traits.cuh | 473 +++ .../experimental/__stf/utility/unique_id.cuh | 96 + .../experimental/__stf/utility/unittest.cuh | 717 +++++ .../cuda/experimental/__stream/stream.cuh | 161 + .../cuda/experimental/__stream/stream_ref.cuh | 137 + .../__utility/ensure_current_device.cuh | 69 + .../__utility/manual_lifetime.cuh | 80 + .../__utility/meyers_singleton.cuh | 93 + .../__utility/optionally_static.cuh | 246 ++ .../experimental/__utility/result_policy.cuh | 85 + .../cuda/experimental/__utility/scope.cuh | 308 ++ .../experimental/__utility/shared_ptr.cuh | 367 +++ .../__utility/unstable_unique.cuh | 103 + .../include/cuda/experimental/container.cuh | 29 + .../cudax/include/cuda/experimental/coop.cuh | 31 + .../cudax/include/cuda/experimental/copy.cuh | 26 + .../include/cuda/experimental/copy_bytes.cuh | 26 + .../include/cuda/experimental/cufile.cuh | 42 + .../include/cuda/experimental/execution.cuh | 52 + .../include/cuda/experimental/fill_bytes.cuh | 26 + .../cudax/include/cuda/experimental/graph.cuh | 30 + .../cuda/experimental/green_context.cuh | 16 + .../cudax/include/cuda/experimental/group.cuh | 42 + .../include/cuda/experimental/kernel.cuh | 17 + .../include/cuda/experimental/launch.cuh | 20 + .../include/cuda/experimental/library.cuh | 18 + .../cuda/experimental/memory_resource.cuh | 25 + .../include/cuda/experimental/places.cuh | 35 + .../cudax/include/cuda/experimental/stf.cuh | 42 + .../include/cuda/experimental/stream.cuh | 17 + .../include/cuda/experimental/version.cuh | 21 + .../cudax/scripts/stf/dot_cleanup.py | 230 ++ cccl_upstream/cudax/test/CMakeLists.txt | 342 +++ cccl_upstream/cudax/test/algorithm/common.cuh | 128 + cccl_upstream/cudax/test/algorithm/copy.cu | 187 ++ cccl_upstream/cudax/test/algorithm/fill.cu | 93 + .../cudax/test/common/group_testing.cuh | 103 + .../cudax/test/common/host_device.cuh | 101 + cccl_upstream/cudax/test/common/testing.cuh | 110 + cccl_upstream/cudax/test/common/utility.cuh | 151 + .../test/containers/uninitialized_buffer.cu | 314 ++ .../cudax/test/coop/any_of/this_thread.cu | 139 + .../cudax/test/coop/any_of/this_warp.cu | 156 + .../test/coop/any_of/threads_within_warp.cu | 187 ++ .../cudax/test/coop/reduce/this_block.cu | 223 ++ .../cudax/test/coop/reduce/this_cluster.cu | 242 ++ .../cudax/test/coop/reduce/this_grid.cu | 252 ++ .../cudax/test/coop/reduce/this_thread.cu | 242 ++ .../cudax/test/coop/reduce/this_warp.cu | 213 ++ .../test/coop/reduce/threads_within_warp.cu | 279 ++ .../test/coop/reduce/warps_within_block.cu | 234 ++ cccl_upstream/cudax/test/coop/scratch.cu | 274 ++ .../test/coop/shuffle/threads_within_warp.cu | 141 + .../coop/shuffle_down/threads_within_warp.cu | 143 + .../coop/shuffle_up/threads_within_warp.cu | 142 + cccl_upstream/cudax/test/copy/copy.cu | 339 +++ cccl_upstream/cudax/test/copy/copy_common.cuh | 183 ++ .../cudax/test/copy/copy_edge_cases.cu | 463 +++ cccl_upstream/cudax/test/copy/copy_llm.cu | 228 ++ cccl_upstream/cudax/test/copy/copy_nvmath.cu | 230 ++ .../cudax/test/copy/copy_nvmath_transpose.cu | 174 ++ .../cudax/test/copy/copy_shared_memory.cu | 93 + .../cudax/test/copy/copy_vectorize.cu | 91 + .../cudax/test/copy/copy_vectorize_5d.cu | 47 + .../cudax/test/copy_bytes/mdspan_d2h_h2d.cu | 515 ++++ .../test/copy_bytes/mdspan_d2h_h2d_relaxed.cu | 151 + .../cuco/fixed_capacity_map/test_capacity.cu | 92 + .../test/cuco/fixed_capacity_map/test_find.cu | 172 ++ .../test_insert_and_contains.cu | 150 + .../fixed_capacity_map/test_key_sentinel.cu | 80 + .../fixed_capacity_map/test_key_size_fail.cu | 26 + .../test_misaligned_storage.cu | 137 + .../fixed_capacity_map/test_retrieve_all.cu | 159 + .../fixed_capacity_map/test_shared_memory.cu | 102 + .../fixed_capacity_map/test_slot_size_fail.cu | 32 + .../test/cuco/hyperloglog/test_hyperloglog.cu | 341 +++ .../cudax/test/cuco/utility/test_capacity.cu | 58 + .../cudax/test/cuco/utility/test_hashers.cu | 243 ++ cccl_upstream/cudax/test/cufile/common.h | 34 + cccl_upstream/cudax/test/cufile/cufile.cu | 224 ++ cccl_upstream/cudax/test/cufile/cufile_ref.cu | 69 + .../cudax/test/cufile/driver_attributes.cu | 289 ++ .../cudax/test/cufile/driver_register.cu | 63 + cccl_upstream/cudax/test/cufile/open_mode.cu | 98 + .../execution/common/checked_receiver.cuh | 219 ++ .../test/execution/common/dummy_scheduler.cuh | 107 + .../test/execution/common/error_scheduler.cuh | 134 + .../execution/common/impulse_scheduler.cuh | 206 ++ .../cudax/test/execution/common/retry.cuh | 190 ++ .../execution/common/stopped_scheduler.cuh | 120 + .../cudax/test/execution/common/utility.cuh | 290 ++ cccl_upstream/cudax/test/execution/env.cu | 269 ++ .../policies/get_execution_policy.cu | 142 + .../cudax/test/execution/policies/policies.cu | 34 + .../cudax/test/execution/test_bulk.cu | 1079 +++++++ .../execution/test_completion_signatures.cu | 140 + .../cudax/test/execution/test_concepts.cu | 86 + .../cudax/test/execution/test_conditional.cu | 58 + .../cudax/test/execution/test_continues_on.cu | 217 ++ .../cudax/test/execution/test_just.cu | 90 + .../cudax/test/execution/test_let_value.cu | 509 ++++ cccl_upstream/cudax/test/execution/test_on.cu | 125 + .../cudax/test/execution/test_sequence.cu | 48 + .../cudax/test/execution/test_starts_on.cu | 290 ++ .../test/execution/test_stream_context.cu | 256 ++ .../test/execution/test_task_scheduler.cu | 94 + .../cudax/test/execution/test_then.cu | 288 ++ .../execution/test_trampoline_scheduler.cu | 97 + .../cudax/test/execution/test_visit.cu | 81 + .../cudax/test/execution/test_when_all.cu | 261 ++ .../cudax/test/execution/test_write_attrs.cu | 31 + .../cudax/test/execution/test_write_env.cu | 98 + .../test/fill_bytes/fill_bytes_mdspan.cu | 441 +++ .../fill_bytes/fill_bytes_mdspan_example.cu | 47 + .../cudax/test/graph/graph_buffer_smoke.cu | 331 +++ .../cudax/test/graph/graph_node_ops_smoke.cu | 555 ++++ cccl_upstream/cudax/test/graph/graph_smoke.cu | 309 ++ .../test/green_context/green_ctx_smoke.cu | 107 + .../cudax/test/group/cooperative_algorithm.cu | 218 ++ cccl_upstream/cudax/test/group/group.cu | 184 ++ cccl_upstream/cudax/test/group/invoke_one.cu | 290 ++ .../cudax/test/group/make_this_group.cu | 79 + .../test/group/mapping/binary_partition.cu | 209 ++ .../test/group/mapping/composite_mapping.cu | 196 ++ .../cudax/test/group/mapping/group_as.cu | 528 ++++ .../cudax/test/group/mapping/group_by.cu | 377 +++ .../test/group/mapping/identity_mapping.cu | 101 + .../cudax/test/group/mapping/take.cu | 212 ++ .../cudax/test/group/segmented_algorithm.cu | 113 + .../synchronizer/barrier_synchronizer.cu | 150 + .../group/synchronizer/lane_synchronizer.cu | 90 + .../group/synchronizer/level_synchronizer.cu | 102 + cccl_upstream/cudax/test/group/this_group.cu | 325 ++ cccl_upstream/cudax/test/kernel/kernel_ref.cu | 318 ++ .../cudax/test/launch/launch_smoke.cu | 396 +++ cccl_upstream/cudax/test/library/library.cu | 343 +++ .../cudax/test/library/library_ref.cu | 268 ++ .../cudax/test/multi_gpu/CMakeLists.txt | 73 + .../test/multi_gpu/algorithms/CMakeLists.txt | 13 + .../algorithms/exclusive_scan/CMakeLists.txt | 20 + .../algorithms/exclusive_scan/range_basic.cu | 388 +++ .../exclusive_scan/range_defaults.cu | 112 + .../exclusive_scan/single_comm_basic.cu | 289 ++ .../exclusive_scan/single_comm_defaults.cu | 120 + .../algorithms/inclusive_scan/CMakeLists.txt | 20 + .../algorithms/inclusive_scan/range_basic.cu | 389 +++ .../inclusive_scan/range_defaults.cu | 112 + .../inclusive_scan/single_comm_basic.cu | 290 ++ .../inclusive_scan/single_comm_defaults.cu | 120 + .../algorithms/reduce/CMakeLists.txt | 20 + .../algorithms/reduce/range_basic.cu | 341 +++ .../algorithms/reduce/range_defaults.cu | 112 + .../algorithms/reduce/single_comm_basic.cu | 347 +++ .../algorithms/reduce/single_comm_defaults.cu | 122 + .../multi_gpu/communicators/CMakeLists.txt | 11 + .../communicators/nccl/CMakeLists.txt | 20 + .../multi_gpu/communicators/nccl/basic.cu | 223 ++ .../communicators/nccl/collective.cu | 487 +++ .../multi_gpu/communicators/nccl/concepts.cu | 92 + .../communicators/nccl/peer_to_peer.cu | 150 + .../test/multi_gpu/concepts/CMakeLists.txt | 15 + .../concepts/collective_concepts_common.cuh | 66 + .../test/multi_gpu/concepts/communicator.cu | 44 + .../multi_gpu/concepts/concepts_common.cuh | 43 + .../test/multi_gpu/concepts/has_all_gather.cu | 43 + .../test/multi_gpu/concepts/has_all_reduce.cu | 53 + .../test/multi_gpu/concepts/has_all_to_all.cu | 43 + .../multi_gpu/concepts/has_all_to_all_v.cu | 51 + .../test/multi_gpu/concepts/has_broadcast.cu | 44 + .../test/multi_gpu/concepts/has_gather.cu | 44 + .../test/multi_gpu/concepts/has_gather_v.cu | 51 + .../cudax/test/multi_gpu/concepts/has_recv.cu | 50 + .../test/multi_gpu/concepts/has_reduce.cu | 44 + .../cudax/test/multi_gpu/concepts/has_send.cu | 50 + .../test/multi_gpu/include/algorithm_common.h | 76 + .../test/multi_gpu/include/nccl_test_common.h | 94 + .../cudax/test/multi_gpu/nccl/CMakeLists.txt | 15 + .../test/multi_gpu/nccl/abi_compatible.cu | 129 + .../cudax/test/multi_gpu/nccl/concepts.cu | 100 + .../cudax/test/places/CMakeLists.txt | 136 + .../cudax/test/places/data_place_alloc.cu | 195 ++ .../cudax/test/places/data_place_vmm.cu | 395 +++ .../cudax/test/places/exec_place_scope.cu | 283 ++ .../exec_place_scope_data_place_fail.cu | 26 + .../cudax/test/places/include_only.cu | 31 + cccl_upstream/cudax/test/places/placement.cu | 379 +++ .../cudax/test/places/stream_pool.cu | 181 ++ cccl_upstream/cudax/test/stf/CMakeLists.txt | 340 +++ .../test/stf/algorithm/algorithm_with_read.cu | 58 + .../test/stf/algorithm/graph_algorithms.cu | 108 + .../cudax/test/stf/algorithm/in_graph_ctx.cu | 68 + .../cudax/test/stf/algorithm/nested.cu | 67 + .../cudax/test/stf/allocators/adapter.cu | 60 + .../test/stf/allocators/buddy_allocator.cu | 43 + .../test/stf/allocators/cap_tmp_buffers.cu | 56 + .../test/stf/context/context_resource_test.cu | 222 ++ .../context/simple_context_resource_test.cu | 114 + .../cudax/test/stf/cpp/concurrency_test.cu | 98 + .../cudax/test/stf/cpp/read_const.cu | 93 + .../cudax/test/stf/cpp/redundant_data.cu | 86 + .../stf/cpp/redundant_data_different_modes.cu | 55 + .../cudax/test/stf/cpp/reuse_computation.cu | 80 + .../cudax/test/stf/cpp/reuse_computation_2.cu | 65 + .../cudax/test/stf/cpp/scoped_graph_task.cu | 103 + .../cudax/test/stf/cpp/task_get_stream.cu | 65 + .../cudax/test/stf/cpp/test_pick_stream.cu | 251 ++ .../stf/cpp/test_pick_stream_green_context.cu | 259 ++ .../cudax/test/stf/cpp/user_streams.cu | 99 + .../cudax/test/stf/cpp/wait_token.cu | 60 + .../0_Introduction/vectorAdd/README.md | 69 + .../0_Introduction/vectorAdd/vectorAdd.cu | 44 + .../vectorAdd/vectorAdd_cudastf.cu | 149 + .../graphConditionalNodes.cu | 367 +++ .../jacobiCudaGraphs/README.md | 69 + .../jacobiCudaGraphs/jacobi.cu | 638 ++++ .../jacobiCudaGraphs/jacobi_cudastf.cu | 376 +++ .../conjugateGradientMultiDeviceCG_custf.cu | 521 ++++ .../MonteCarloMultiGPU.cu | 210 ++ .../MonteCarlo_common.cuh | 109 + .../MonteCarlo_gold.cu | 160 + .../MonteCarlo_kernel.cu | 246 ++ .../MonteCarlo_reduction.cuh | 85 + .../MonteCarloMultiGPU_cudastf/README.md | 75 + .../MonteCarloMultiGPU_cudastf/realtype.cuh | 49 + cccl_upstream/cudax/test/stf/dot/basic.cu | 48 + .../cudax/test/stf/dot/graph_print_to_dot.cu | 50 + .../cudax/test/stf/dot/section_movable.cu | 47 + cccl_upstream/cudax/test/stf/dot/sections.cu | 63 + .../cudax/test/stf/dot/sections_2.cu | 49 + .../cudax/test/stf/dot/sections_stackable.cu | 61 + .../cudax/test/stf/dot/with_events.cu | 49 + .../test/stf/error_checks/ctx_mismatch.cu | 91 + .../error_checks/data_interface_mismatch.cu | 101 + .../test/stf/error_checks/double_finalize.cu | 80 + .../test/stf/error_checks/erase_frozen.cu | 77 + .../error_checks/misformed_tasks_dbl_end.cu | 78 + .../error_checks/misformed_tasks_dbl_start.cu | 75 + .../test/stf/error_checks/non_managed_data.cu | 70 + .../stf/error_checks/slice_check_bounds.cu | 83 + .../error_checks/stackable_fence_in_nested.cu | 75 + .../error_checks/stackable_illegal_export.cu | 82 + .../stackable_inconsistent_access_modes.cu | 92 + .../error_checks/stackable_wait_in_nested.cu | 75 + .../stf/error_checks/uninitialized_data.cu | 72 + .../stf/error_checks/unsatisfiable_spec.cu | 72 + .../test/stf/error_checks/write_frozen.cu | 79 + .../stf/examples/01-axpy-launch-ranges-cg.cu | 75 + .../cudax/test/stf/examples/01-axpy-places.cu | 119 + .../test/stf/examples/05-stencil-no-copy.cu | 256 ++ .../test/stf/examples/05-stencil-places.cu | 92 + .../cudax/test/stf/examples/05-stencil.cu | 265 ++ .../test/stf/examples/05-stencil2d-places.cu | 114 + .../test/stf/examples/07-cholesky-redux.cu | 750 +++++ .../test/stf/examples/07-cholesky-unified.cu | 693 +++++ .../test/stf/examples/09-nbody-algorithm.cu | 129 + .../test/stf/examples/09-nbody-blocked.cu | 283 ++ .../cudax/test/stf/examples/09-nbody.cu | 122 + .../test/stf/examples/cuda_kernels_driver.cu | 123 + .../batcher_sort_interpreted_cufhe.bool.ir | 355 +++ .../kernel_sharpen_interpreted_cufhe.bool.ir | 556 ++++ .../cudax/test/stf/fhe/parse_arctyrex.cu | 434 +++ .../test/stf/freeze/constant_logical_data.cu | 72 + cccl_upstream/cudax/test/stf/freeze/freeze.cu | 82 + .../cudax/test/stf/freeze/freeze_rw.cu | 86 + .../test/stf/freeze/freeze_untyped_rw.cu | 74 + .../test/stf/freeze/freeze_write_back.cu | 65 + .../cudax/test/stf/freeze/task_fence.cu | 98 + cccl_upstream/cudax/test/stf/freeze/token.cu | 37 + .../cudax/test/stf/gnu/06-pdgemm.cpp | 366 +++ .../cudax/test/stf/gnu/07-cholesky.cpp | 718 +++++ .../cudax/test/stf/gnu/include_only.cpp | 23 + .../cudax/test/stf/graph/concurrency_test.cu | 86 + cccl_upstream/cudax/test/stf/graph/epoch.cu | 56 + .../cudax/test/stf/graph/explicit_graph.cu | 57 + .../test/stf/graph/explicit_graph_async.cu | 57 + .../stf/graph/explicit_graph_while-kernels.cu | 92 + .../test/stf/graph/explicit_graph_while.cu | 92 + .../cudax/test/stf/graph/freeze_for_graph.cu | 74 + .../test/stf/graph/freeze_nested_graphs.cu | 96 + .../graph/freeze_nested_graphs_allocator.cu | 96 + .../test/stf/graph/freeze_while_graphs.cu | 127 + .../test/stf/graph/freeze_while_graphs_2.cu | 128 + .../test/stf/graph/freeze_while_graphs_3.cu | 146 + .../cudax/test/stf/graph/get_cache_stats.cu | 51 + .../test/stf/graph/graph_cache_policy.cu | 57 + .../stf/graph/graph_child_move_ownership.cu | 68 + .../cudax/test/stf/graph/graph_composition.cu | 117 + .../test/stf/graph/graph_ctx_low_level.cu | 56 + .../graph/graph_multiple_launch_resources.cu | 61 + .../cudax/test/stf/graph/graph_tmp_data.cu | 60 + cccl_upstream/cudax/test/stf/graph/many.cu | 34 + .../test/stf/graph/multiple_graph_ctx.cu | 71 + .../cudax/test/stf/graph/static_graph_ctx.cu | 53 + .../cudax/test/stf/green_context/axpy_gc.cu | 112 + .../test/stf/green_context/cuda_graph.cu | 90 + .../cudax/test/stf/green_context/gc_grid.cu | 110 + cccl_upstream/cudax/test/stf/hash/ctx_hash.cu | 69 + .../cudax/test/stf/hash/logical_data.cu | 51 + .../cudax/test/stf/hashtable/fusion.cu | 64 + .../test/stf/hashtable/fusion_reduction.cu | 122 + .../cudax/test/stf/hashtable/parallel_for.cu | 38 + .../test/stf/hashtable/parallel_for_shape.cu | 39 + .../cudax/test/stf/hashtable/test.cu | 65 + .../interface/cuda_kernel_chain-add_deps.cu | 85 + .../cuda_kernel_chain-add_deps_low_level.cu | 89 + .../stf/interface/cuda_kernel_empty_args.cu | 55 + .../test/stf/interface/data_from_device.cu | 82 + .../test/stf/interface/data_from_device_2.cu | 97 + .../test/stf/interface/data_from_device_wb.cu | 78 + .../stf/interface/graph_use_device_data.cu | 100 + .../test/stf/interface/host_launch_deps.cu | 388 +++ .../stf/interface/mix_stream_and_graph.cu | 87 + .../stf/interface/mix_stream_and_graph_2.cu | 119 + .../cudax/test/stf/interface/move_operator.cu | 64 + .../cudax/test/stf/interface/scal.cu | 71 + .../cudax/test/stf/interface/scalar_div.cu | 124 + .../test/stf/interface/scalar_interface.cu | 72 + .../test/stf/interface/stream_add_callback.cu | 50 + .../cudax/test/stf/local_stf/interop_cuda.cu | 70 + .../cudax/test/stf/local_stf/legacy_to_stf.cu | 250 ++ .../stf/local_stf/legacy_to_stf_in_capture.cu | 429 +++ .../stf/local_stf/logical_data_t_template.cu | 320 ++ .../cudax/test/stf/local_stf/stackable.cu | 88 + .../cudax/test/stf/local_stf/stackable2.cu | 69 + .../test/stf/local_stf/stackable_add_deps.cu | 58 + .../test/stf/local_stf/stackable_export.cu | 66 + .../test/stf/local_stf/stackable_export2.cu | 77 + .../test/stf/local_stf/stackable_move.cu | 75 + .../test/stf/local_stf/stackable_nested.cu | 73 + .../stf/local_stf/stackable_nested_lib.cu | 83 + .../stf/local_stf/stackable_nested_repeat.cu | 71 + .../stf/local_stf/stackable_nested_while.cu | 93 + .../local_stf/stackable_node_pool_growth.cu | 71 + .../test/stf/local_stf/stackable_read_only.cu | 78 + .../stf/local_stf/stackable_redundant_deps.cu | 51 + .../test/stf/local_stf/stackable_threads.cu | 89 + .../cudax/test/stf/local_stf/stackable_tmp.cu | 57 + .../test/stf/local_stf/stackable_token.cu | 76 + .../stf/local_stf/stackable_write_back.cu | 100 + .../stf/local_stf/stream_ctx_lifetime_btb.cu | 201 ++ .../local_stf/task_dep_copy_move_semantics.cu | 229 ++ .../stf/local_stf/threads_multiple_graphs.cu | 109 + .../stf/loop_dispatch/dispatch_on_streams.cu | 45 + .../test/stf/loop_dispatch/loop_dispatch.cu | 41 + .../stf/loop_dispatch/nested_loop_dispatch.cu | 52 + .../loop_dispatch/stackable_loop_dispatch.cu | 50 + .../stf/parallel_for/empty_shape_reduce.cu | 47 + .../cudax/test/stf/parallel_for/fdtd.cu | 254 ++ .../cudax/test/stf/parallel_for/fdtd_acc.cpp | 300 ++ .../stf/parallel_for/parallel_for_all_devs.cu | 82 + .../test/stf/parallel_for/parallel_for_box.cu | 91 + .../stf/parallel_for/parallel_for_host.cu | 27 + .../stf/parallel_for/parallel_for_repeat.cu | 75 + .../test2_parallel_for_context.cu | 74 + .../test/stf/parallel_for/tiled_loops.cu | 84 + .../cudax/test/stf/places/affinity_gc.cu | 42 + .../test/stf/places/cuda_stream_place.cu | 75 + .../test/stf/places/cute_block_owners.cu | 230 ++ .../test/stf/places/cute_parallel_for.cu | 294 ++ .../execution_policy_kernel_launch_test.cu | 56 + .../cudax/test/stf/places/managed.cu | 87 + .../test/stf/places/managed_from_shape.cu | 92 + .../test/stf/places/managed_from_user.cu | 90 + .../test/stf/places/non_current_device.cu | 77 + .../cudax/test/stf/places/place_partition.cu | 53 + .../cudax/test/stf/places/recursion.cu | 41 + .../test/stf/places/replicated_data_place.cu | 517 ++++ .../stf/places/replicated_frozen_import.cu | 168 ++ .../cudax/test/stf/reclaiming/graph.cu | 74 + .../cudax/test/stf/reclaiming/graph_2.cu | 68 + .../test/stf/reclaiming/graph_real_oom.cu | 79 + .../cudax/test/stf/reclaiming/stream.cu | 145 + .../cudax/test/stf/reductions/many_inc.cu | 51 + .../cudax/test/stf/reductions/reduce_sum.cu | 45 + .../cudax/test/stf/reductions/redux_test.cu | 42 + .../cudax/test/stf/reductions/redux_test2.cu | 78 + .../test/stf/reductions/slice2d_reduction.cu | 59 + .../test/stf/reductions/slice_custom_op.cu | 72 + .../stf/reductions/successive_reductions.cu | 67 + .../reductions/successive_reductions_pfor.cu | 45 + .../cudax/test/stf/reductions/sum.cu | 108 + .../cudax/test/stf/reductions/sum_array.cu | 120 + .../stf/reductions/sum_multiple_places.cu | 62 + .../sum_multiple_places_no_refvalue.cu | 118 + .../stf/reductions/write_back_after_redux.cu | 67 + cccl_upstream/cudax/test/stf/slice/pinning.cu | 59 + .../stf/stackable/composite_conditional.cu | 100 + .../test/stf/stackable/graph_scope_test.cu | 177 ++ .../stf/static_error_checks/CMakeLists.txt | 38 + .../static_error_checks/cuda_try_ambiguous.cu | 30 + .../graph_task_prototype.cu | 28 + .../test/stf/static_error_checks/static.cu | 19 + .../stream_task_prototype.cu | 28 + .../stf/static_error_checks/task_prototype.cu | 28 + .../cudax/test/stf/stencil/stencil-1D.cu | 210 ++ .../cudax/test/stf/stress/empty_tasks.cu | 54 + .../test/stf/stress/empty_tasks_alloc.cu | 46 + .../cudax/test/stf/stress/kernel_chain.cu | 72 + .../test/stf/stress/kernel_chain_fused.cu | 70 + .../cudax/test/stf/stress/launch_overhead.cu | 65 + .../test/stf/stress/launch_vs_parallelfor.cu | 133 + .../cudax/test/stf/stress/many_read.cu | 70 + .../test/stf/stress/parallel_for_overhead.cu | 59 + .../cudax/test/stf/stress/task_bench.cu | 319 ++ .../cudax/test/stf/threads/axpy-threads-2.cu | 115 + .../stf/threads/axpy-threads-graph-capture.cu | 85 + .../test/stf/threads/axpy-threads-graph.cu | 74 + .../test/stf/threads/axpy-threads-pfor.cu | 114 + .../cudax/test/stf/threads/axpy-threads.cu | 112 + .../test/stf/utility/source_location_map.cu | 51 + .../test/stf/utility/timing_with_fences.cu | 101 + .../cudax/test/stream/stream_smoke.cu | 184 ++ .../test/utility/ensure_current_device.cu | 51 + .../cudax/test/utility/optionally_static.cu | 59 + cccl_upstream/cudax/test/utility/scope.cu | 191 ++ .../cudax/test/utility/unstable_unique.cu | 101 + cccl_upstream/nvbench_helper/CMakeLists.txt | 89 + .../nvbench_helper/device_side_benchmark.cuh | 124 + .../nvbench_helper/look_back_helper.cuh | 23 + .../nvbench_helper/nvbench_helper.cu | 840 ++++++ .../nvbench_helper/nvbench_helper.cuh | 777 +++++ .../nvbench_helper/test/gen_entropy.cu | 157 + .../test/gen_power_law_distribution.cu | 49 + .../nvbench_helper/test/gen_range.cu | 37 + cccl_upstream/nvbench_helper/test/gen_seed.cu | 34 + .../test/gen_uniform_distribution.cu | 204 ++ 864 files changed, 174321 insertions(+) create mode 100644 CCCL_ASSET_MAP.md create mode 100644 cccl_upstream/AGENTS.md create mode 100644 cccl_upstream/CMakePresets.json create mode 100644 cccl_upstream/c2h/CMakeLists.txt create mode 100644 cccl_upstream/c2h/catch2_runner.cu create mode 100644 cccl_upstream/c2h/catch2_runner_helper.cu create mode 100644 cccl_upstream/c2h/catch2_runner_helper.inl create mode 100644 cccl_upstream/c2h/generators.cu create mode 100644 cccl_upstream/c2h/generators_gen_values.cu create mode 100644 cccl_upstream/c2h/generators_uniform_offsets.cu create mode 100644 cccl_upstream/c2h/generators_vector.cu create mode 100644 cccl_upstream/c2h/include/c2h/bfloat16.cuh create mode 100644 cccl_upstream/c2h/include/c2h/catch2_main.h create mode 100644 cccl_upstream/c2h/include/c2h/catch2_runner_helper.h create mode 100644 cccl_upstream/c2h/include/c2h/catch2_test_helper.h create mode 100644 cccl_upstream/c2h/include/c2h/catch2_test_macros.h create mode 100644 cccl_upstream/c2h/include/c2h/check_results.cuh create mode 100644 cccl_upstream/c2h/include/c2h/checked_allocator.cuh create mode 100644 cccl_upstream/c2h/include/c2h/cpu_timer.h create mode 100644 cccl_upstream/c2h/include/c2h/custom_type.h create mode 100644 cccl_upstream/c2h/include/c2h/detail/generators.cuh create mode 100644 cccl_upstream/c2h/include/c2h/device_policy.h create mode 100644 cccl_upstream/c2h/include/c2h/extended_types.h create mode 100644 cccl_upstream/c2h/include/c2h/fill_striped.h create mode 100644 cccl_upstream/c2h/include/c2h/generators.h create mode 100644 cccl_upstream/c2h/include/c2h/half.cuh create mode 100644 cccl_upstream/c2h/include/c2h/operator.cuh create mode 100644 cccl_upstream/c2h/include/c2h/test_util_vec.h create mode 100644 cccl_upstream/c2h/include/c2h/utility.h create mode 100644 cccl_upstream/c2h/include/c2h/vector.h create mode 100644 cccl_upstream/cccl-version.json create mode 100644 cccl_upstream/cmake/AppendOptionIfAvailable.cmake create mode 100644 cccl_upstream/cmake/CCCLAddExecutable.cmake create mode 100644 cccl_upstream/cmake/CCCLAddSubdir.cmake create mode 100644 cccl_upstream/cmake/CCCLAddSubdirHelper.cmake create mode 100644 cccl_upstream/cmake/CCCLAddTidyTarget.cmake create mode 100644 cccl_upstream/cmake/CCCLBuildCompilerTargets.cmake create mode 100644 cccl_upstream/cmake/CCCLCheckCudaArchitectures.cmake create mode 100644 cccl_upstream/cmake/CCCLClangdCompileInfo.cmake create mode 100644 cccl_upstream/cmake/CCCLConfigureTarget.cmake create mode 100644 cccl_upstream/cmake/CCCLDevBuildChecks.cmake create mode 100644 cccl_upstream/cmake/CCCLEnsureMetaTargets.cmake create mode 100644 cccl_upstream/cmake/CCCLGenerateHeaderTests.cmake create mode 100644 cccl_upstream/cmake/CCCLGetDependencies.cmake create mode 100644 cccl_upstream/cmake/CCCLHideThirdPartyOptions.cmake create mode 100644 cccl_upstream/cmake/CCCLInstallRules.cmake create mode 100644 cccl_upstream/cmake/CCCLTestParams.cmake create mode 100644 cccl_upstream/cmake/CCCLUtilities.cmake create mode 100644 cccl_upstream/cmake/CPM.cmake create mode 100644 cccl_upstream/cmake/PrintCTestRunTimes.cmake create mode 100644 cccl_upstream/cmake/PrintNinjaBuildTimes.cmake create mode 100644 cccl_upstream/cmake/find_modules/FindNCCL.cmake create mode 100644 cccl_upstream/cmake/header_test.cu.in create mode 100644 cccl_upstream/cmake/install/cccl.cmake create mode 100644 cccl_upstream/cmake/install/cub.cmake create mode 100644 cccl_upstream/cmake/install/cudax.cmake create mode 100644 cccl_upstream/cmake/install/libcudacxx.cmake create mode 100644 cccl_upstream/cmake/install/thrust.cmake create mode 100644 cccl_upstream/cmake/link_check_main.cpp create mode 100755 cccl_upstream/cmake/run_clang_tidy.sh.in create mode 100644 cccl_upstream/cudax/CMakeLists.txt create mode 100644 cccl_upstream/cudax/LICENSE.TXT create mode 100644 cccl_upstream/cudax/README.md create mode 100644 cccl_upstream/cudax/benchmarks/CMakeLists.txt create mode 100644 cccl_upstream/cudax/benchmarks/bench/copy/copy_bench.cu create mode 100644 cccl_upstream/cudax/benchmarks/bench/cuco/common/defaults.cuh create mode 100644 cccl_upstream/cudax/benchmarks/bench/cuco/common/key_generator.cuh create mode 100644 cccl_upstream/cudax/benchmarks/bench/cuco/fixed_capacity_map/contains.cu create mode 100644 cccl_upstream/cudax/benchmarks/bench/cuco/fixed_capacity_map/find.cu create mode 100644 cccl_upstream/cudax/benchmarks/bench/cuco/fixed_capacity_map/insert.cu create mode 100644 cccl_upstream/cudax/benchmarks/bench/cuco/hashers.cu create mode 100644 cccl_upstream/cudax/benchmarks/bench/cuco/hyperloglog.cu create mode 100644 cccl_upstream/cudax/cmake/cudaxAddSubdir.cmake create mode 100644 cccl_upstream/cudax/cmake/cudaxBuildCompilerTargets.cmake create mode 100644 cccl_upstream/cudax/cmake/cudaxHeaderTesting.cmake create mode 100644 cccl_upstream/cudax/cmake/cudaxPlacesConfigureTarget.cmake create mode 100644 cccl_upstream/cudax/cmake/cudaxSTFConfigureTarget.cmake create mode 100644 cccl_upstream/cudax/cmake/header_test.in.cu create mode 100644 cccl_upstream/cudax/cmake/places_header_unittest.in.cu create mode 100644 cccl_upstream/cudax/cmake/stf_header_unittest.in.cu create mode 100644 cccl_upstream/cudax/examples/CMakeLists.txt create mode 100644 cccl_upstream/cudax/examples/async_buffer_add.cu create mode 100644 cccl_upstream/cudax/examples/cub_reduce.cu create mode 100644 cccl_upstream/cudax/examples/places/CMakeLists.txt create mode 100644 cccl_upstream/cudax/examples/places/thrust_device_data_place_allocator.cu create mode 100644 cccl_upstream/cudax/examples/simple_p2p.cu create mode 100644 cccl_upstream/cudax/examples/stdexec_stream.cu create mode 100644 cccl_upstream/cudax/examples/stf/01-axpy-cuda_kernel.cu create mode 100644 cccl_upstream/cudax/examples/stf/01-axpy-cuda_kernel_chain.cu create mode 100644 cccl_upstream/cudax/examples/stf/01-axpy-launch.cu create mode 100644 cccl_upstream/cudax/examples/stf/01-axpy-parallel_for.cu create mode 100644 cccl_upstream/cudax/examples/stf/01-axpy.cu create mode 100644 cccl_upstream/cudax/examples/stf/02-axpy-host_launch.cu create mode 100644 cccl_upstream/cudax/examples/stf/03-temporary-data.cu create mode 100644 cccl_upstream/cudax/examples/stf/04-fibonacci-run_once.cu create mode 100644 cccl_upstream/cudax/examples/stf/04-fibonacci.cu create mode 100644 cccl_upstream/cudax/examples/stf/08-cub-reduce.cu create mode 100644 cccl_upstream/cudax/examples/stf/09-dot-reduce.cu create mode 100644 cccl_upstream/cudax/examples/stf/1f1b.cu create mode 100644 cccl_upstream/cudax/examples/stf/CMakeLists.txt create mode 100644 cccl_upstream/cudax/examples/stf/axpy-annotated.cu create mode 100644 cccl_upstream/cudax/examples/stf/binary_fhe.cu create mode 100644 cccl_upstream/cudax/examples/stf/binary_fhe_stackable.cu create mode 100644 cccl_upstream/cudax/examples/stf/cfd.cu create mode 100644 cccl_upstream/cudax/examples/stf/custom_data_interface.cu create mode 100644 cccl_upstream/cudax/examples/stf/explicit_data_places.cu create mode 100644 cccl_upstream/cudax/examples/stf/fdtd_mgpu.cu create mode 100644 cccl_upstream/cudax/examples/stf/fdtd_repeat_n.cu create mode 100644 cccl_upstream/cudax/examples/stf/fdtd_while.cu create mode 100644 cccl_upstream/cudax/examples/stf/frozen_data_init.cu create mode 100644 cccl_upstream/cudax/examples/stf/graph_algorithms/degree_centrality.cu create mode 100644 cccl_upstream/cudax/examples/stf/graph_algorithms/jaccard.cu create mode 100644 cccl_upstream/cudax/examples/stf/graph_algorithms/pagerank.cu create mode 100644 cccl_upstream/cudax/examples/stf/graph_algorithms/pagerank_batched.cu create mode 100644 cccl_upstream/cudax/examples/stf/graph_algorithms/pagerank_while.cu create mode 100644 cccl_upstream/cudax/examples/stf/graph_algorithms/tricount.cu create mode 100644 cccl_upstream/cudax/examples/stf/graph_scope.cu create mode 100644 cccl_upstream/cudax/examples/stf/heat.cu create mode 100644 cccl_upstream/cudax/examples/stf/heat_mgpu.cu create mode 100644 cccl_upstream/cudax/examples/stf/jacobi.cu create mode 100644 cccl_upstream/cudax/examples/stf/jacobi_pfor.cu create mode 100644 cccl_upstream/cudax/examples/stf/jacobi_stackable.cu create mode 100644 cccl_upstream/cudax/examples/stf/jacobi_stackable_raii.cu create mode 100644 cccl_upstream/cudax/examples/stf/jacobi_update_cond.cu create mode 100644 cccl_upstream/cudax/examples/stf/launch_histogram.cu create mode 100644 cccl_upstream/cudax/examples/stf/launch_scan.cu create mode 100644 cccl_upstream/cudax/examples/stf/launch_sum.cu create mode 100644 cccl_upstream/cudax/examples/stf/launch_sum_cub.cu create mode 100644 cccl_upstream/cudax/examples/stf/linear_algebra/06-pdgemm-stackable.cu create mode 100644 cccl_upstream/cudax/examples/stf/linear_algebra/06-pdgemm.cu create mode 100644 cccl_upstream/cudax/examples/stf/linear_algebra/07-cholesky.cu create mode 100644 cccl_upstream/cudax/examples/stf/linear_algebra/07-potri.cu create mode 100644 cccl_upstream/cudax/examples/stf/linear_algebra/burger.cu create mode 100644 cccl_upstream/cudax/examples/stf/linear_algebra/burger_sensitivity.cu create mode 100644 cccl_upstream/cudax/examples/stf/linear_algebra/cg_csr.cu create mode 100644 cccl_upstream/cudax/examples/stf/linear_algebra/cg_csr_stackable.cu create mode 100644 cccl_upstream/cudax/examples/stf/linear_algebra/cg_dense_2D.cu create mode 100644 cccl_upstream/cudax/examples/stf/linear_algebra/cg_solver.cuh create mode 100644 cccl_upstream/cudax/examples/stf/linear_algebra/dot.cuh create mode 100644 cccl_upstream/cudax/examples/stf/linear_algebra/newton_solver.cuh create mode 100644 cccl_upstream/cudax/examples/stf/linear_algebra/strassen.cu create mode 100644 cccl_upstream/cudax/examples/stf/logical_gates_composition.cu create mode 100644 cccl_upstream/cudax/examples/stf/mandelbrot.cu create mode 100644 cccl_upstream/cudax/examples/stf/parallel_for_2D.cu create mode 100644 cccl_upstream/cudax/examples/stf/partitioned_axpy.cu create mode 100644 cccl_upstream/cudax/examples/stf/pi.cu create mode 100644 cccl_upstream/cudax/examples/stf/scan.cu create mode 100644 cccl_upstream/cudax/examples/stf/sqrt_newton_stackable.cu create mode 100644 cccl_upstream/cudax/examples/stf/standalone-launches.cu create mode 100644 cccl_upstream/cudax/examples/stf/thrust_zip_iterator.cu create mode 100644 cccl_upstream/cudax/examples/stf/void_data_interface.cu create mode 100644 cccl_upstream/cudax/examples/stf/word_count.cu create mode 100644 cccl_upstream/cudax/examples/stf/word_count_reduce.cu create mode 100644 cccl_upstream/cudax/examples/vector.cuh create mode 100644 cccl_upstream/cudax/examples/vector_add.cu create mode 100644 cccl_upstream/cudax/include/cuda/experimental/__container/graph_buffer.cuh create mode 100644 cccl_upstream/cudax/include/cuda/experimental/__container/uninitialized_buffer.cuh create mode 100644 cccl_upstream/cudax/include/cuda/experimental/__coop/any_of.cuh create mode 100644 cccl_upstream/cudax/include/cuda/experimental/__coop/reduce.cuh create mode 100644 cccl_upstream/cudax/include/cuda/experimental/__coop/scratch.cuh create mode 100644 cccl_upstream/cudax/include/cuda/experimental/__coop/shuffle.cuh create mode 100644 cccl_upstream/cudax/include/cuda/experimental/__coop/shuffle_down.cuh create mode 100644 cccl_upstream/cudax/include/cuda/experimental/__coop/shuffle_up.cuh create mode 100644 cccl_upstream/cudax/include/cuda/experimental/__copy/copy_contiguous.cuh create mode 100644 cccl_upstream/cudax/include/cuda/experimental/__copy/copy_optimized.cuh create mode 100644 cccl_upstream/cudax/include/cuda/experimental/__copy/copy_shared_memory.cuh create mode 100644 cccl_upstream/cudax/include/cuda/experimental/__copy/copy_shared_memory_utils.cuh create mode 100644 cccl_upstream/cudax/include/cuda/experimental/__copy/dispatch_by_vector.cuh create mode 100644 cccl_upstream/cudax/include/cuda/experimental/__copy/mdspan_d2d.cuh create mode 100644 cccl_upstream/cudax/include/cuda/experimental/__copy/tensor_copy_utils.cuh create mode 100644 cccl_upstream/cudax/include/cuda/experimental/__copy/tensor_iterator.cuh create mode 100644 cccl_upstream/cudax/include/cuda/experimental/__copy/vector_access.cuh create mode 100644 cccl_upstream/cudax/include/cuda/experimental/__copy_bytes/abs_integer.cuh create mode 100644 cccl_upstream/cudax/include/cuda/experimental/__copy_bytes/mdspan_d2h_h2d.cuh create mode 100644 cccl_upstream/cudax/include/cuda/experimental/__copy_bytes/mdspan_to_raw_tensor.cuh create mode 100644 cccl_upstream/cudax/include/cuda/experimental/__copy_bytes/memcpy_batch_tiles.cuh create mode 100644 cccl_upstream/cudax/include/cuda/experimental/__copy_bytes/print_raw_tensor.cuh create mode 100644 cccl_upstream/cudax/include/cuda/experimental/__copy_bytes/simplify_paired.cuh create mode 100644 cccl_upstream/cudax/include/cuda/experimental/__copy_bytes/tensor_query.cuh create mode 100644 cccl_upstream/cudax/include/cuda/experimental/__copy_bytes/types.cuh create mode 100644 cccl_upstream/cudax/include/cuda/experimental/__cuco/capacity.cuh create mode 100644 cccl_upstream/cudax/include/cuda/experimental/__cuco/detail/bitwise_compare.cuh create mode 100644 cccl_upstream/cudax/include/cuda/experimental/__cuco/detail/equal_wrapper.cuh create mode 100644 cccl_upstream/cudax/include/cuda/experimental/__cuco/detail/hash_functions/murmurhash3.cuh create mode 100644 cccl_upstream/cudax/include/cuda/experimental/__cuco/detail/hash_functions/utils.cuh create mode 100644 cccl_upstream/cudax/include/cuda/experimental/__cuco/detail/hash_functions/xxhash.cuh create mode 100644 cccl_upstream/cudax/include/cuda/experimental/__cuco/detail/hyperloglog/default_policy.cuh create mode 100644 cccl_upstream/cudax/include/cuda/experimental/__cuco/detail/hyperloglog/finalizer.cuh create mode 100644 cccl_upstream/cudax/include/cuda/experimental/__cuco/detail/hyperloglog/hyperloglog_impl.cuh create mode 100644 cccl_upstream/cudax/include/cuda/experimental/__cuco/detail/hyperloglog/kernels.cuh create mode 100644 cccl_upstream/cudax/include/cuda/experimental/__cuco/detail/hyperloglog/tuning.cuh create mode 100644 cccl_upstream/cudax/include/cuda/experimental/__cuco/detail/open_addressing/functors.cuh create mode 100644 cccl_upstream/cudax/include/cuda/experimental/__cuco/detail/open_addressing/kernels.cuh create mode 100644 cccl_upstream/cudax/include/cuda/experimental/__cuco/detail/open_addressing/open_addressing_impl.cuh create mode 100644 cccl_upstream/cudax/include/cuda/experimental/__cuco/detail/open_addressing/open_addressing_ref_impl.cuh create mode 100644 cccl_upstream/cudax/include/cuda/experimental/__cuco/detail/open_addressing/slot_storage_ref.cuh create mode 100644 cccl_upstream/cudax/include/cuda/experimental/__cuco/detail/prime.cuh create mode 100644 cccl_upstream/cudax/include/cuda/experimental/__cuco/detail/probing_scheme_base.cuh create mode 100644 cccl_upstream/cudax/include/cuda/experimental/__cuco/detail/utility/cuda.cuh create mode 100644 cccl_upstream/cudax/include/cuda/experimental/__cuco/detail/utility/strong_type.cuh create mode 100644 cccl_upstream/cudax/include/cuda/experimental/__cuco/detail/utility/traits.cuh create mode 100644 cccl_upstream/cudax/include/cuda/experimental/__cuco/fixed_capacity_map.cuh create mode 100644 cccl_upstream/cudax/include/cuda/experimental/__cuco/fixed_capacity_map_ref.cuh create mode 100644 cccl_upstream/cudax/include/cuda/experimental/__cuco/hash_functions.cuh create mode 100644 cccl_upstream/cudax/include/cuda/experimental/__cuco/hll_policies.cuh create mode 100644 cccl_upstream/cudax/include/cuda/experimental/__cuco/hyperloglog.cuh create mode 100644 cccl_upstream/cudax/include/cuda/experimental/__cuco/hyperloglog_ref.cuh create mode 100644 cccl_upstream/cudax/include/cuda/experimental/__cuco/probing_scheme.cuh create mode 100644 cccl_upstream/cudax/include/cuda/experimental/__cuco/types.cuh create mode 100644 cccl_upstream/cudax/include/cuda/experimental/__cufile/cufile.cuh create mode 100644 cccl_upstream/cudax/include/cuda/experimental/__cufile/cufile_ref.cuh create mode 100644 cccl_upstream/cudax/include/cuda/experimental/__cufile/driver.cuh create mode 100644 cccl_upstream/cudax/include/cuda/experimental/__cufile/driver_attributes.cuh create mode 100644 cccl_upstream/cudax/include/cuda/experimental/__cufile/exception.cuh create mode 100644 cccl_upstream/cudax/include/cuda/experimental/__cufile/open_mode.cuh create mode 100644 cccl_upstream/cudax/include/cuda/experimental/__detail/type_traits.cuh create mode 100644 cccl_upstream/cudax/include/cuda/experimental/__detail/utility.cuh create mode 100644 cccl_upstream/cudax/include/cuda/experimental/__device/logical_device.cuh create mode 100644 cccl_upstream/cudax/include/cuda/experimental/__driver/driver_api.cuh create mode 100644 cccl_upstream/cudax/include/cuda/experimental/__execution/any_allocator.cuh create mode 100644 cccl_upstream/cudax/include/cuda/experimental/__execution/apply_sender.cuh create mode 100644 cccl_upstream/cudax/include/cuda/experimental/__execution/atomic_intrusive_queue.cuh create mode 100644 cccl_upstream/cudax/include/cuda/experimental/__execution/bulk.cuh create mode 100644 cccl_upstream/cudax/include/cuda/experimental/__execution/completion_behavior.cuh create mode 100644 cccl_upstream/cudax/include/cuda/experimental/__execution/completion_signatures.cuh create mode 100644 cccl_upstream/cudax/include/cuda/experimental/__execution/concepts.cuh create mode 100644 cccl_upstream/cudax/include/cuda/experimental/__execution/conditional.cuh create mode 100644 cccl_upstream/cudax/include/cuda/experimental/__execution/continues_on.cuh create mode 100644 cccl_upstream/cudax/include/cuda/experimental/__execution/cpos.cuh create mode 100644 cccl_upstream/cudax/include/cuda/experimental/__execution/diagnostics.cuh create mode 100644 cccl_upstream/cudax/include/cuda/experimental/__execution/domain.cuh create mode 100644 cccl_upstream/cudax/include/cuda/experimental/__execution/env.cuh create mode 100644 cccl_upstream/cudax/include/cuda/experimental/__execution/epilogue.cuh create mode 100644 cccl_upstream/cudax/include/cuda/experimental/__execution/exception.cuh create mode 100644 cccl_upstream/cudax/include/cuda/experimental/__execution/fwd.cuh create mode 100644 cccl_upstream/cudax/include/cuda/experimental/__execution/get_completion_signatures.cuh create mode 100644 cccl_upstream/cudax/include/cuda/experimental/__execution/inline_scheduler.cuh create mode 100644 cccl_upstream/cudax/include/cuda/experimental/__execution/intrusive_queue.cuh create mode 100644 cccl_upstream/cudax/include/cuda/experimental/__execution/just.cuh create mode 100644 cccl_upstream/cudax/include/cuda/experimental/__execution/just_from.cuh create mode 100644 cccl_upstream/cudax/include/cuda/experimental/__execution/lazy.cuh create mode 100644 cccl_upstream/cudax/include/cuda/experimental/__execution/let_value.cuh create mode 100644 cccl_upstream/cudax/include/cuda/experimental/__execution/meta.cuh create mode 100644 cccl_upstream/cudax/include/cuda/experimental/__execution/on.cuh create mode 100644 cccl_upstream/cudax/include/cuda/experimental/__execution/parallel_scheduler_backend.cuh create mode 100644 cccl_upstream/cudax/include/cuda/experimental/__execution/policy.cuh create mode 100644 cccl_upstream/cudax/include/cuda/experimental/__execution/prologue.cuh create mode 100644 cccl_upstream/cudax/include/cuda/experimental/__execution/queries.cuh create mode 100644 cccl_upstream/cudax/include/cuda/experimental/__execution/rcvr_ref.cuh create mode 100644 cccl_upstream/cudax/include/cuda/experimental/__execution/rcvr_with_env.cuh create mode 100644 cccl_upstream/cudax/include/cuda/experimental/__execution/read_env.cuh create mode 100644 cccl_upstream/cudax/include/cuda/experimental/__execution/run_loop.cuh create mode 100644 cccl_upstream/cudax/include/cuda/experimental/__execution/schedule_from.cuh create mode 100644 cccl_upstream/cudax/include/cuda/experimental/__execution/sequence.cuh create mode 100644 cccl_upstream/cudax/include/cuda/experimental/__execution/sndr_ref.cuh create mode 100644 cccl_upstream/cudax/include/cuda/experimental/__execution/start_detached.cuh create mode 100644 cccl_upstream/cudax/include/cuda/experimental/__execution/starts_on.cuh create mode 100644 cccl_upstream/cudax/include/cuda/experimental/__execution/stop_token.cuh create mode 100644 cccl_upstream/cudax/include/cuda/experimental/__execution/stream/adaptor.cuh create mode 100644 cccl_upstream/cudax/include/cuda/experimental/__execution/stream/bulk.cuh create mode 100644 cccl_upstream/cudax/include/cuda/experimental/__execution/stream/context.cuh create mode 100644 cccl_upstream/cudax/include/cuda/experimental/__execution/stream/domain.cuh create mode 100644 cccl_upstream/cudax/include/cuda/experimental/__execution/stream/launch.cuh create mode 100644 cccl_upstream/cudax/include/cuda/experimental/__execution/stream/let_value.cuh create mode 100644 cccl_upstream/cudax/include/cuda/experimental/__execution/stream/schedule_from.cuh create mode 100644 cccl_upstream/cudax/include/cuda/experimental/__execution/stream/scheduler.cuh create mode 100644 cccl_upstream/cudax/include/cuda/experimental/__execution/stream/sequence.cuh create mode 100644 cccl_upstream/cudax/include/cuda/experimental/__execution/stream/sync_wait.cuh create mode 100644 cccl_upstream/cudax/include/cuda/experimental/__execution/stream_context.cuh create mode 100644 cccl_upstream/cudax/include/cuda/experimental/__execution/sync_wait.cuh create mode 100644 cccl_upstream/cudax/include/cuda/experimental/__execution/task_scheduler.cuh create mode 100644 cccl_upstream/cudax/include/cuda/experimental/__execution/then.cuh create mode 100644 cccl_upstream/cudax/include/cuda/experimental/__execution/thread.cuh create mode 100644 cccl_upstream/cudax/include/cuda/experimental/__execution/thread_context.cuh create mode 100644 cccl_upstream/cudax/include/cuda/experimental/__execution/trampoline_scheduler.cuh create mode 100644 cccl_upstream/cudax/include/cuda/experimental/__execution/transform_completion_signatures.cuh create mode 100644 cccl_upstream/cudax/include/cuda/experimental/__execution/transform_sender.cuh create mode 100644 cccl_upstream/cudax/include/cuda/experimental/__execution/type_traits.cuh create mode 100644 cccl_upstream/cudax/include/cuda/experimental/__execution/utility.cuh create mode 100644 cccl_upstream/cudax/include/cuda/experimental/__execution/variant.cuh create mode 100644 cccl_upstream/cudax/include/cuda/experimental/__execution/visit.cuh create mode 100644 cccl_upstream/cudax/include/cuda/experimental/__execution/when_all.cuh create mode 100644 cccl_upstream/cudax/include/cuda/experimental/__execution/write_attrs.cuh create mode 100644 cccl_upstream/cudax/include/cuda/experimental/__execution/write_env.cuh create mode 100644 cccl_upstream/cudax/include/cuda/experimental/__fill_bytes/fill_bytes_mdspan.cuh create mode 100644 cccl_upstream/cudax/include/cuda/experimental/__fill_bytes/fill_bytes_mdspan_utils.cuh create mode 100644 cccl_upstream/cudax/include/cuda/experimental/__graph/child_graph.cuh create mode 100644 cccl_upstream/cudax/include/cuda/experimental/__graph/concepts.cuh create mode 100644 cccl_upstream/cudax/include/cuda/experimental/__graph/conditional_node.cuh create mode 100644 cccl_upstream/cudax/include/cuda/experimental/__graph/copy_bytes.cuh create mode 100644 cccl_upstream/cudax/include/cuda/experimental/__graph/depends_on.cuh create mode 100644 cccl_upstream/cudax/include/cuda/experimental/__graph/fill_bytes.cuh create mode 100644 cccl_upstream/cudax/include/cuda/experimental/__graph/fwd.cuh create mode 100644 cccl_upstream/cudax/include/cuda/experimental/__graph/graph.cuh create mode 100644 cccl_upstream/cudax/include/cuda/experimental/__graph/graph_builder.cuh create mode 100644 cccl_upstream/cudax/include/cuda/experimental/__graph/graph_builder_ref.cuh create mode 100644 cccl_upstream/cudax/include/cuda/experimental/__graph/graph_memory_resource.cuh create mode 100644 cccl_upstream/cudax/include/cuda/experimental/__graph/graph_node_ref.cuh create mode 100644 cccl_upstream/cudax/include/cuda/experimental/__graph/graph_node_type.cuh create mode 100644 cccl_upstream/cudax/include/cuda/experimental/__graph/host_launch.cuh create mode 100644 cccl_upstream/cudax/include/cuda/experimental/__graph/path_builder.cuh create mode 100644 cccl_upstream/cudax/include/cuda/experimental/__green_context/green_ctx.cuh create mode 100644 cccl_upstream/cudax/include/cuda/experimental/__group/concepts.cuh create mode 100644 cccl_upstream/cudax/include/cuda/experimental/__group/fwd.cuh create mode 100644 cccl_upstream/cudax/include/cuda/experimental/__group/group.cuh create mode 100644 cccl_upstream/cudax/include/cuda/experimental/__group/implicit_hierarchy.cuh create mode 100644 cccl_upstream/cudax/include/cuda/experimental/__group/invoke_one.cuh create mode 100644 cccl_upstream/cudax/include/cuda/experimental/__group/mapping/binary_partition.cuh create mode 100644 cccl_upstream/cudax/include/cuda/experimental/__group/mapping/composite_mapping.cuh create mode 100644 cccl_upstream/cudax/include/cuda/experimental/__group/mapping/group_as.cuh create mode 100644 cccl_upstream/cudax/include/cuda/experimental/__group/mapping/group_by.cuh create mode 100644 cccl_upstream/cudax/include/cuda/experimental/__group/mapping/identity_mapping.cuh create mode 100644 cccl_upstream/cudax/include/cuda/experimental/__group/mapping/mapping_result.cuh create mode 100644 cccl_upstream/cudax/include/cuda/experimental/__group/mapping/take.cuh create mode 100644 cccl_upstream/cudax/include/cuda/experimental/__group/queries.cuh create mode 100644 cccl_upstream/cudax/include/cuda/experimental/__group/synchronizer/barrier_synchronizer.cuh create mode 100644 cccl_upstream/cudax/include/cuda/experimental/__group/synchronizer/lane_synchronizer.cuh create mode 100644 cccl_upstream/cudax/include/cuda/experimental/__group/synchronizer/level_synchronizer.cuh create mode 100644 cccl_upstream/cudax/include/cuda/experimental/__group/this_group.cuh create mode 100644 cccl_upstream/cudax/include/cuda/experimental/__group/traits.cuh create mode 100644 cccl_upstream/cudax/include/cuda/experimental/__kernel/attributes.cuh create mode 100644 cccl_upstream/cudax/include/cuda/experimental/__kernel/kernel_ref.cuh create mode 100644 cccl_upstream/cudax/include/cuda/experimental/__launch/launch.cuh create mode 100644 cccl_upstream/cudax/include/cuda/experimental/__launch/param_kind.cuh create mode 100644 cccl_upstream/cudax/include/cuda/experimental/__library/library.cuh create mode 100644 cccl_upstream/cudax/include/cuda/experimental/__library/library_ref.cuh create mode 100644 cccl_upstream/cudax/include/cuda/experimental/__memory_resource/graph_resource.cuh create mode 100644 cccl_upstream/cudax/include/cuda/experimental/__multi_gpu/algorithm/common.h create mode 100644 cccl_upstream/cudax/include/cuda/experimental/__multi_gpu/algorithm/reduce/reduce.h create mode 100644 cccl_upstream/cudax/include/cuda/experimental/__multi_gpu/algorithm/scan/scan.h create mode 100644 cccl_upstream/cudax/include/cuda/experimental/__multi_gpu/concepts.h create mode 100644 cccl_upstream/cudax/include/cuda/experimental/__multi_gpu/nccl_communicator.h create mode 100644 cccl_upstream/cudax/include/cuda/experimental/__multi_gpu/nccl_communicator_ref.h create mode 100644 cccl_upstream/cudax/include/cuda/experimental/__nccl/abi_compatible.h create mode 100644 cccl_upstream/cudax/include/cuda/experimental/__nccl/nccl_api.h create mode 100644 cccl_upstream/cudax/include/cuda/experimental/__nccl/shared_library.h create mode 100644 cccl_upstream/cudax/include/cuda/experimental/__places/cute_partition.cuh create mode 100644 cccl_upstream/cudax/include/cuda/experimental/__places/data_place_impl.cuh create mode 100644 cccl_upstream/cudax/include/cuda/experimental/__places/data_place_interface.cuh create mode 100644 cccl_upstream/cudax/include/cuda/experimental/__places/exec/cuda_context.cuh create mode 100644 cccl_upstream/cudax/include/cuda/experimental/__places/exec/cuda_stream.cuh create mode 100644 cccl_upstream/cudax/include/cuda/experimental/__places/exec/green_context.cuh create mode 100644 cccl_upstream/cudax/include/cuda/experimental/__places/exec/green_ctx_view.cuh create mode 100644 cccl_upstream/cudax/include/cuda/experimental/__places/exec_place_resources.cuh create mode 100644 cccl_upstream/cudax/include/cuda/experimental/__places/localized_array.cuh create mode 100644 cccl_upstream/cudax/include/cuda/experimental/__places/machine.cuh create mode 100644 cccl_upstream/cudax/include/cuda/experimental/__places/partitions/blocked_partition.cuh create mode 100644 cccl_upstream/cudax/include/cuda/experimental/__places/partitions/cyclic_shape.cuh create mode 100644 cccl_upstream/cudax/include/cuda/experimental/__places/partitions/tiled_partition.cuh create mode 100644 cccl_upstream/cudax/include/cuda/experimental/__places/place_partition.cuh create mode 100644 cccl_upstream/cudax/include/cuda/experimental/__places/places.cuh create mode 100644 cccl_upstream/cudax/include/cuda/experimental/__places/stream_pool.cuh create mode 100644 cccl_upstream/cudax/include/cuda/experimental/__stf/allocators/adapters.cuh create mode 100644 cccl_upstream/cudax/include/cuda/experimental/__stf/allocators/block_allocator.cuh create mode 100644 cccl_upstream/cudax/include/cuda/experimental/__stf/allocators/buddy_allocator.cuh create mode 100644 cccl_upstream/cudax/include/cuda/experimental/__stf/allocators/cached_allocator.cuh create mode 100644 cccl_upstream/cudax/include/cuda/experimental/__stf/allocators/pooled_allocator.cuh create mode 100644 cccl_upstream/cudax/include/cuda/experimental/__stf/allocators/uncached_allocator.cuh create mode 100644 cccl_upstream/cudax/include/cuda/experimental/__stf/graph/graph_ctx.cuh create mode 100644 cccl_upstream/cudax/include/cuda/experimental/__stf/graph/graph_data_interface.cuh create mode 100644 cccl_upstream/cudax/include/cuda/experimental/__stf/graph/graph_task.cuh create mode 100644 cccl_upstream/cudax/include/cuda/experimental/__stf/graph/interfaces/slice.cuh create mode 100644 cccl_upstream/cudax/include/cuda/experimental/__stf/graph/interfaces/void_interface.cuh create mode 100644 cccl_upstream/cudax/include/cuda/experimental/__stf/graph/internal/event_types.cuh create mode 100644 cccl_upstream/cudax/include/cuda/experimental/__stf/internal/acquire_release.cuh create mode 100644 cccl_upstream/cudax/include/cuda/experimental/__stf/internal/algorithm.cuh create mode 100644 cccl_upstream/cudax/include/cuda/experimental/__stf/internal/async_prereq.cuh create mode 100644 cccl_upstream/cudax/include/cuda/experimental/__stf/internal/async_resources_handle.cuh create mode 100644 cccl_upstream/cudax/include/cuda/experimental/__stf/internal/backend_allocator_setup.cuh create mode 100644 cccl_upstream/cudax/include/cuda/experimental/__stf/internal/backend_ctx.cuh create mode 100644 cccl_upstream/cudax/include/cuda/experimental/__stf/internal/constants.cuh create mode 100644 cccl_upstream/cudax/include/cuda/experimental/__stf/internal/context.cuh create mode 100644 cccl_upstream/cudax/include/cuda/experimental/__stf/internal/cooperative_group_system.cuh create mode 100644 cccl_upstream/cudax/include/cuda/experimental/__stf/internal/ctx_resource.cuh create mode 100644 cccl_upstream/cudax/include/cuda/experimental/__stf/internal/cuda_kernel_scope.cuh create mode 100644 cccl_upstream/cudax/include/cuda/experimental/__stf/internal/data_interface.cuh create mode 100644 cccl_upstream/cudax/include/cuda/experimental/__stf/internal/dot.cuh create mode 100644 cccl_upstream/cudax/include/cuda/experimental/__stf/internal/exec_affinity.cuh create mode 100644 cccl_upstream/cudax/include/cuda/experimental/__stf/internal/executable_graph_cache.cuh create mode 100644 cccl_upstream/cudax/include/cuda/experimental/__stf/internal/execution_policy.cuh create mode 100644 cccl_upstream/cudax/include/cuda/experimental/__stf/internal/frozen_logical_data.cuh create mode 100644 cccl_upstream/cudax/include/cuda/experimental/__stf/internal/hashtable_linearprobing.cuh create mode 100644 cccl_upstream/cudax/include/cuda/experimental/__stf/internal/host_launch_scope.cuh create mode 100644 cccl_upstream/cudax/include/cuda/experimental/__stf/internal/inner_shape.cuh create mode 100644 cccl_upstream/cudax/include/cuda/experimental/__stf/internal/instance_id.cuh create mode 100644 cccl_upstream/cudax/include/cuda/experimental/__stf/internal/interpreted_execution_policy.cuh create mode 100644 cccl_upstream/cudax/include/cuda/experimental/__stf/internal/interpreted_execution_policy_impl.cuh create mode 100644 cccl_upstream/cudax/include/cuda/experimental/__stf/internal/launch.cuh create mode 100644 cccl_upstream/cudax/include/cuda/experimental/__stf/internal/logical_data.cuh create mode 100644 cccl_upstream/cudax/include/cuda/experimental/__stf/internal/loop_dispatch.cuh create mode 100644 cccl_upstream/cudax/include/cuda/experimental/__stf/internal/msir.cuh create mode 100644 cccl_upstream/cudax/include/cuda/experimental/__stf/internal/parallel_for_scope.cuh create mode 100644 cccl_upstream/cudax/include/cuda/experimental/__stf/internal/reducer.cuh create mode 100644 cccl_upstream/cudax/include/cuda/experimental/__stf/internal/reduction_base.cuh create mode 100644 cccl_upstream/cudax/include/cuda/experimental/__stf/internal/reorderer.cuh create mode 100644 cccl_upstream/cudax/include/cuda/experimental/__stf/internal/repeat.cuh create mode 100644 cccl_upstream/cudax/include/cuda/experimental/__stf/internal/scalar_interface.cuh create mode 100644 cccl_upstream/cudax/include/cuda/experimental/__stf/internal/scheduler.cuh create mode 100644 cccl_upstream/cudax/include/cuda/experimental/__stf/internal/slice.cuh create mode 100644 cccl_upstream/cudax/include/cuda/experimental/__stf/internal/stf_places_extended_exports.cuh create mode 100644 cccl_upstream/cudax/include/cuda/experimental/__stf/internal/stf_places_into_stf_core.cuh create mode 100644 cccl_upstream/cudax/include/cuda/experimental/__stf/internal/stf_places_partition_into_stf.cuh create mode 100644 cccl_upstream/cudax/include/cuda/experimental/__stf/internal/task.cuh create mode 100644 cccl_upstream/cudax/include/cuda/experimental/__stf/internal/task_dep.cuh create mode 100644 cccl_upstream/cudax/include/cuda/experimental/__stf/internal/task_statistics.cuh create mode 100644 cccl_upstream/cudax/include/cuda/experimental/__stf/internal/thread_hierarchy.cuh create mode 100644 cccl_upstream/cudax/include/cuda/experimental/__stf/internal/void_interface.cuh create mode 100644 cccl_upstream/cudax/include/cuda/experimental/__stf/localization/composite_slice.cuh create mode 100644 cccl_upstream/cudax/include/cuda/experimental/__stf/places/exec/host/callback_queues.cuh create mode 100644 cccl_upstream/cudax/include/cuda/experimental/__stf/stackable/conditional_nodes.cuh create mode 100644 cccl_upstream/cudax/include/cuda/experimental/__stf/stackable/stackable_ctx.cuh create mode 100644 cccl_upstream/cudax/include/cuda/experimental/__stf/stackable/stackable_ctx_impl.cuh create mode 100644 cccl_upstream/cudax/include/cuda/experimental/__stf/stackable/stackable_node_hierarchy.cuh create mode 100644 cccl_upstream/cudax/include/cuda/experimental/__stf/stackable/stackable_task_dep.cuh create mode 100644 cccl_upstream/cudax/include/cuda/experimental/__stf/stream/interfaces/hashtable_linearprobing.cuh create mode 100644 cccl_upstream/cudax/include/cuda/experimental/__stf/stream/interfaces/slice.cuh create mode 100644 cccl_upstream/cudax/include/cuda/experimental/__stf/stream/interfaces/slice_reduction_ops.cuh create mode 100644 cccl_upstream/cudax/include/cuda/experimental/__stf/stream/interfaces/void_interface.cuh create mode 100644 cccl_upstream/cudax/include/cuda/experimental/__stf/stream/internal/event_types.cuh create mode 100644 cccl_upstream/cudax/include/cuda/experimental/__stf/stream/reduction.cuh create mode 100644 cccl_upstream/cudax/include/cuda/experimental/__stf/stream/stream_ctx.cuh create mode 100644 cccl_upstream/cudax/include/cuda/experimental/__stf/stream/stream_data_interface.cuh create mode 100644 cccl_upstream/cudax/include/cuda/experimental/__stf/stream/stream_task.cuh create mode 100644 cccl_upstream/cudax/include/cuda/experimental/__stf/utility/cartesian_iterator.cuh create mode 100644 cccl_upstream/cudax/include/cuda/experimental/__stf/utility/constant_logical_data.cuh create mode 100644 cccl_upstream/cudax/include/cuda/experimental/__stf/utility/core.cuh create mode 100644 cccl_upstream/cudax/include/cuda/experimental/__stf/utility/cuda_safe_call.cuh create mode 100644 cccl_upstream/cudax/include/cuda/experimental/__stf/utility/dimensions.cuh create mode 100644 cccl_upstream/cudax/include/cuda/experimental/__stf/utility/handle.cuh create mode 100644 cccl_upstream/cudax/include/cuda/experimental/__stf/utility/hash.cuh create mode 100644 cccl_upstream/cudax/include/cuda/experimental/__stf/utility/memory.cuh create mode 100644 cccl_upstream/cudax/include/cuda/experimental/__stf/utility/nvtx.cuh create mode 100644 cccl_upstream/cudax/include/cuda/experimental/__stf/utility/occupancy.cuh create mode 100644 cccl_upstream/cudax/include/cuda/experimental/__stf/utility/pretty_print.cuh create mode 100644 cccl_upstream/cudax/include/cuda/experimental/__stf/utility/run_once.cuh create mode 100644 cccl_upstream/cudax/include/cuda/experimental/__stf/utility/scope_guard.cuh create mode 100644 cccl_upstream/cudax/include/cuda/experimental/__stf/utility/source_location.cuh create mode 100644 cccl_upstream/cudax/include/cuda/experimental/__stf/utility/threads.cuh create mode 100644 cccl_upstream/cudax/include/cuda/experimental/__stf/utility/traits.cuh create mode 100644 cccl_upstream/cudax/include/cuda/experimental/__stf/utility/unique_id.cuh create mode 100644 cccl_upstream/cudax/include/cuda/experimental/__stf/utility/unittest.cuh create mode 100644 cccl_upstream/cudax/include/cuda/experimental/__stream/stream.cuh create mode 100644 cccl_upstream/cudax/include/cuda/experimental/__stream/stream_ref.cuh create mode 100644 cccl_upstream/cudax/include/cuda/experimental/__utility/ensure_current_device.cuh create mode 100644 cccl_upstream/cudax/include/cuda/experimental/__utility/manual_lifetime.cuh create mode 100644 cccl_upstream/cudax/include/cuda/experimental/__utility/meyers_singleton.cuh create mode 100644 cccl_upstream/cudax/include/cuda/experimental/__utility/optionally_static.cuh create mode 100644 cccl_upstream/cudax/include/cuda/experimental/__utility/result_policy.cuh create mode 100644 cccl_upstream/cudax/include/cuda/experimental/__utility/scope.cuh create mode 100644 cccl_upstream/cudax/include/cuda/experimental/__utility/shared_ptr.cuh create mode 100644 cccl_upstream/cudax/include/cuda/experimental/__utility/unstable_unique.cuh create mode 100644 cccl_upstream/cudax/include/cuda/experimental/container.cuh create mode 100644 cccl_upstream/cudax/include/cuda/experimental/coop.cuh create mode 100644 cccl_upstream/cudax/include/cuda/experimental/copy.cuh create mode 100644 cccl_upstream/cudax/include/cuda/experimental/copy_bytes.cuh create mode 100644 cccl_upstream/cudax/include/cuda/experimental/cufile.cuh create mode 100644 cccl_upstream/cudax/include/cuda/experimental/execution.cuh create mode 100644 cccl_upstream/cudax/include/cuda/experimental/fill_bytes.cuh create mode 100644 cccl_upstream/cudax/include/cuda/experimental/graph.cuh create mode 100644 cccl_upstream/cudax/include/cuda/experimental/green_context.cuh create mode 100644 cccl_upstream/cudax/include/cuda/experimental/group.cuh create mode 100644 cccl_upstream/cudax/include/cuda/experimental/kernel.cuh create mode 100644 cccl_upstream/cudax/include/cuda/experimental/launch.cuh create mode 100644 cccl_upstream/cudax/include/cuda/experimental/library.cuh create mode 100644 cccl_upstream/cudax/include/cuda/experimental/memory_resource.cuh create mode 100644 cccl_upstream/cudax/include/cuda/experimental/places.cuh create mode 100644 cccl_upstream/cudax/include/cuda/experimental/stf.cuh create mode 100644 cccl_upstream/cudax/include/cuda/experimental/stream.cuh create mode 100644 cccl_upstream/cudax/include/cuda/experimental/version.cuh create mode 100644 cccl_upstream/cudax/scripts/stf/dot_cleanup.py create mode 100644 cccl_upstream/cudax/test/CMakeLists.txt create mode 100644 cccl_upstream/cudax/test/algorithm/common.cuh create mode 100644 cccl_upstream/cudax/test/algorithm/copy.cu create mode 100644 cccl_upstream/cudax/test/algorithm/fill.cu create mode 100644 cccl_upstream/cudax/test/common/group_testing.cuh create mode 100644 cccl_upstream/cudax/test/common/host_device.cuh create mode 100644 cccl_upstream/cudax/test/common/testing.cuh create mode 100644 cccl_upstream/cudax/test/common/utility.cuh create mode 100644 cccl_upstream/cudax/test/containers/uninitialized_buffer.cu create mode 100644 cccl_upstream/cudax/test/coop/any_of/this_thread.cu create mode 100644 cccl_upstream/cudax/test/coop/any_of/this_warp.cu create mode 100644 cccl_upstream/cudax/test/coop/any_of/threads_within_warp.cu create mode 100644 cccl_upstream/cudax/test/coop/reduce/this_block.cu create mode 100644 cccl_upstream/cudax/test/coop/reduce/this_cluster.cu create mode 100644 cccl_upstream/cudax/test/coop/reduce/this_grid.cu create mode 100644 cccl_upstream/cudax/test/coop/reduce/this_thread.cu create mode 100644 cccl_upstream/cudax/test/coop/reduce/this_warp.cu create mode 100644 cccl_upstream/cudax/test/coop/reduce/threads_within_warp.cu create mode 100644 cccl_upstream/cudax/test/coop/reduce/warps_within_block.cu create mode 100644 cccl_upstream/cudax/test/coop/scratch.cu create mode 100644 cccl_upstream/cudax/test/coop/shuffle/threads_within_warp.cu create mode 100644 cccl_upstream/cudax/test/coop/shuffle_down/threads_within_warp.cu create mode 100644 cccl_upstream/cudax/test/coop/shuffle_up/threads_within_warp.cu create mode 100644 cccl_upstream/cudax/test/copy/copy.cu create mode 100644 cccl_upstream/cudax/test/copy/copy_common.cuh create mode 100644 cccl_upstream/cudax/test/copy/copy_edge_cases.cu create mode 100644 cccl_upstream/cudax/test/copy/copy_llm.cu create mode 100644 cccl_upstream/cudax/test/copy/copy_nvmath.cu create mode 100644 cccl_upstream/cudax/test/copy/copy_nvmath_transpose.cu create mode 100644 cccl_upstream/cudax/test/copy/copy_shared_memory.cu create mode 100644 cccl_upstream/cudax/test/copy/copy_vectorize.cu create mode 100644 cccl_upstream/cudax/test/copy/copy_vectorize_5d.cu create mode 100644 cccl_upstream/cudax/test/copy_bytes/mdspan_d2h_h2d.cu create mode 100644 cccl_upstream/cudax/test/copy_bytes/mdspan_d2h_h2d_relaxed.cu create mode 100644 cccl_upstream/cudax/test/cuco/fixed_capacity_map/test_capacity.cu create mode 100644 cccl_upstream/cudax/test/cuco/fixed_capacity_map/test_find.cu create mode 100644 cccl_upstream/cudax/test/cuco/fixed_capacity_map/test_insert_and_contains.cu create mode 100644 cccl_upstream/cudax/test/cuco/fixed_capacity_map/test_key_sentinel.cu create mode 100644 cccl_upstream/cudax/test/cuco/fixed_capacity_map/test_key_size_fail.cu create mode 100644 cccl_upstream/cudax/test/cuco/fixed_capacity_map/test_misaligned_storage.cu create mode 100644 cccl_upstream/cudax/test/cuco/fixed_capacity_map/test_retrieve_all.cu create mode 100644 cccl_upstream/cudax/test/cuco/fixed_capacity_map/test_shared_memory.cu create mode 100644 cccl_upstream/cudax/test/cuco/fixed_capacity_map/test_slot_size_fail.cu create mode 100644 cccl_upstream/cudax/test/cuco/hyperloglog/test_hyperloglog.cu create mode 100644 cccl_upstream/cudax/test/cuco/utility/test_capacity.cu create mode 100644 cccl_upstream/cudax/test/cuco/utility/test_hashers.cu create mode 100644 cccl_upstream/cudax/test/cufile/common.h create mode 100644 cccl_upstream/cudax/test/cufile/cufile.cu create mode 100644 cccl_upstream/cudax/test/cufile/cufile_ref.cu create mode 100644 cccl_upstream/cudax/test/cufile/driver_attributes.cu create mode 100644 cccl_upstream/cudax/test/cufile/driver_register.cu create mode 100644 cccl_upstream/cudax/test/cufile/open_mode.cu create mode 100644 cccl_upstream/cudax/test/execution/common/checked_receiver.cuh create mode 100644 cccl_upstream/cudax/test/execution/common/dummy_scheduler.cuh create mode 100644 cccl_upstream/cudax/test/execution/common/error_scheduler.cuh create mode 100644 cccl_upstream/cudax/test/execution/common/impulse_scheduler.cuh create mode 100644 cccl_upstream/cudax/test/execution/common/retry.cuh create mode 100644 cccl_upstream/cudax/test/execution/common/stopped_scheduler.cuh create mode 100644 cccl_upstream/cudax/test/execution/common/utility.cuh create mode 100644 cccl_upstream/cudax/test/execution/env.cu create mode 100644 cccl_upstream/cudax/test/execution/policies/get_execution_policy.cu create mode 100644 cccl_upstream/cudax/test/execution/policies/policies.cu create mode 100644 cccl_upstream/cudax/test/execution/test_bulk.cu create mode 100644 cccl_upstream/cudax/test/execution/test_completion_signatures.cu create mode 100644 cccl_upstream/cudax/test/execution/test_concepts.cu create mode 100644 cccl_upstream/cudax/test/execution/test_conditional.cu create mode 100644 cccl_upstream/cudax/test/execution/test_continues_on.cu create mode 100644 cccl_upstream/cudax/test/execution/test_just.cu create mode 100644 cccl_upstream/cudax/test/execution/test_let_value.cu create mode 100644 cccl_upstream/cudax/test/execution/test_on.cu create mode 100644 cccl_upstream/cudax/test/execution/test_sequence.cu create mode 100644 cccl_upstream/cudax/test/execution/test_starts_on.cu create mode 100644 cccl_upstream/cudax/test/execution/test_stream_context.cu create mode 100644 cccl_upstream/cudax/test/execution/test_task_scheduler.cu create mode 100644 cccl_upstream/cudax/test/execution/test_then.cu create mode 100644 cccl_upstream/cudax/test/execution/test_trampoline_scheduler.cu create mode 100644 cccl_upstream/cudax/test/execution/test_visit.cu create mode 100644 cccl_upstream/cudax/test/execution/test_when_all.cu create mode 100644 cccl_upstream/cudax/test/execution/test_write_attrs.cu create mode 100644 cccl_upstream/cudax/test/execution/test_write_env.cu create mode 100644 cccl_upstream/cudax/test/fill_bytes/fill_bytes_mdspan.cu create mode 100644 cccl_upstream/cudax/test/fill_bytes/fill_bytes_mdspan_example.cu create mode 100644 cccl_upstream/cudax/test/graph/graph_buffer_smoke.cu create mode 100644 cccl_upstream/cudax/test/graph/graph_node_ops_smoke.cu create mode 100644 cccl_upstream/cudax/test/graph/graph_smoke.cu create mode 100644 cccl_upstream/cudax/test/green_context/green_ctx_smoke.cu create mode 100644 cccl_upstream/cudax/test/group/cooperative_algorithm.cu create mode 100644 cccl_upstream/cudax/test/group/group.cu create mode 100644 cccl_upstream/cudax/test/group/invoke_one.cu create mode 100644 cccl_upstream/cudax/test/group/make_this_group.cu create mode 100644 cccl_upstream/cudax/test/group/mapping/binary_partition.cu create mode 100644 cccl_upstream/cudax/test/group/mapping/composite_mapping.cu create mode 100644 cccl_upstream/cudax/test/group/mapping/group_as.cu create mode 100644 cccl_upstream/cudax/test/group/mapping/group_by.cu create mode 100644 cccl_upstream/cudax/test/group/mapping/identity_mapping.cu create mode 100644 cccl_upstream/cudax/test/group/mapping/take.cu create mode 100644 cccl_upstream/cudax/test/group/segmented_algorithm.cu create mode 100644 cccl_upstream/cudax/test/group/synchronizer/barrier_synchronizer.cu create mode 100644 cccl_upstream/cudax/test/group/synchronizer/lane_synchronizer.cu create mode 100644 cccl_upstream/cudax/test/group/synchronizer/level_synchronizer.cu create mode 100644 cccl_upstream/cudax/test/group/this_group.cu create mode 100644 cccl_upstream/cudax/test/kernel/kernel_ref.cu create mode 100644 cccl_upstream/cudax/test/launch/launch_smoke.cu create mode 100644 cccl_upstream/cudax/test/library/library.cu create mode 100644 cccl_upstream/cudax/test/library/library_ref.cu create mode 100644 cccl_upstream/cudax/test/multi_gpu/CMakeLists.txt create mode 100644 cccl_upstream/cudax/test/multi_gpu/algorithms/CMakeLists.txt create mode 100644 cccl_upstream/cudax/test/multi_gpu/algorithms/exclusive_scan/CMakeLists.txt create mode 100644 cccl_upstream/cudax/test/multi_gpu/algorithms/exclusive_scan/range_basic.cu create mode 100644 cccl_upstream/cudax/test/multi_gpu/algorithms/exclusive_scan/range_defaults.cu create mode 100644 cccl_upstream/cudax/test/multi_gpu/algorithms/exclusive_scan/single_comm_basic.cu create mode 100644 cccl_upstream/cudax/test/multi_gpu/algorithms/exclusive_scan/single_comm_defaults.cu create mode 100644 cccl_upstream/cudax/test/multi_gpu/algorithms/inclusive_scan/CMakeLists.txt create mode 100644 cccl_upstream/cudax/test/multi_gpu/algorithms/inclusive_scan/range_basic.cu create mode 100644 cccl_upstream/cudax/test/multi_gpu/algorithms/inclusive_scan/range_defaults.cu create mode 100644 cccl_upstream/cudax/test/multi_gpu/algorithms/inclusive_scan/single_comm_basic.cu create mode 100644 cccl_upstream/cudax/test/multi_gpu/algorithms/inclusive_scan/single_comm_defaults.cu create mode 100644 cccl_upstream/cudax/test/multi_gpu/algorithms/reduce/CMakeLists.txt create mode 100644 cccl_upstream/cudax/test/multi_gpu/algorithms/reduce/range_basic.cu create mode 100644 cccl_upstream/cudax/test/multi_gpu/algorithms/reduce/range_defaults.cu create mode 100644 cccl_upstream/cudax/test/multi_gpu/algorithms/reduce/single_comm_basic.cu create mode 100644 cccl_upstream/cudax/test/multi_gpu/algorithms/reduce/single_comm_defaults.cu create mode 100644 cccl_upstream/cudax/test/multi_gpu/communicators/CMakeLists.txt create mode 100644 cccl_upstream/cudax/test/multi_gpu/communicators/nccl/CMakeLists.txt create mode 100644 cccl_upstream/cudax/test/multi_gpu/communicators/nccl/basic.cu create mode 100644 cccl_upstream/cudax/test/multi_gpu/communicators/nccl/collective.cu create mode 100644 cccl_upstream/cudax/test/multi_gpu/communicators/nccl/concepts.cu create mode 100644 cccl_upstream/cudax/test/multi_gpu/communicators/nccl/peer_to_peer.cu create mode 100644 cccl_upstream/cudax/test/multi_gpu/concepts/CMakeLists.txt create mode 100644 cccl_upstream/cudax/test/multi_gpu/concepts/collective_concepts_common.cuh create mode 100644 cccl_upstream/cudax/test/multi_gpu/concepts/communicator.cu create mode 100644 cccl_upstream/cudax/test/multi_gpu/concepts/concepts_common.cuh create mode 100644 cccl_upstream/cudax/test/multi_gpu/concepts/has_all_gather.cu create mode 100644 cccl_upstream/cudax/test/multi_gpu/concepts/has_all_reduce.cu create mode 100644 cccl_upstream/cudax/test/multi_gpu/concepts/has_all_to_all.cu create mode 100644 cccl_upstream/cudax/test/multi_gpu/concepts/has_all_to_all_v.cu create mode 100644 cccl_upstream/cudax/test/multi_gpu/concepts/has_broadcast.cu create mode 100644 cccl_upstream/cudax/test/multi_gpu/concepts/has_gather.cu create mode 100644 cccl_upstream/cudax/test/multi_gpu/concepts/has_gather_v.cu create mode 100644 cccl_upstream/cudax/test/multi_gpu/concepts/has_recv.cu create mode 100644 cccl_upstream/cudax/test/multi_gpu/concepts/has_reduce.cu create mode 100644 cccl_upstream/cudax/test/multi_gpu/concepts/has_send.cu create mode 100644 cccl_upstream/cudax/test/multi_gpu/include/algorithm_common.h create mode 100644 cccl_upstream/cudax/test/multi_gpu/include/nccl_test_common.h create mode 100644 cccl_upstream/cudax/test/multi_gpu/nccl/CMakeLists.txt create mode 100644 cccl_upstream/cudax/test/multi_gpu/nccl/abi_compatible.cu create mode 100644 cccl_upstream/cudax/test/multi_gpu/nccl/concepts.cu create mode 100644 cccl_upstream/cudax/test/places/CMakeLists.txt create mode 100644 cccl_upstream/cudax/test/places/data_place_alloc.cu create mode 100644 cccl_upstream/cudax/test/places/data_place_vmm.cu create mode 100644 cccl_upstream/cudax/test/places/exec_place_scope.cu create mode 100644 cccl_upstream/cudax/test/places/exec_place_scope_data_place_fail.cu create mode 100644 cccl_upstream/cudax/test/places/include_only.cu create mode 100644 cccl_upstream/cudax/test/places/placement.cu create mode 100644 cccl_upstream/cudax/test/places/stream_pool.cu create mode 100644 cccl_upstream/cudax/test/stf/CMakeLists.txt create mode 100644 cccl_upstream/cudax/test/stf/algorithm/algorithm_with_read.cu create mode 100644 cccl_upstream/cudax/test/stf/algorithm/graph_algorithms.cu create mode 100644 cccl_upstream/cudax/test/stf/algorithm/in_graph_ctx.cu create mode 100644 cccl_upstream/cudax/test/stf/algorithm/nested.cu create mode 100644 cccl_upstream/cudax/test/stf/allocators/adapter.cu create mode 100644 cccl_upstream/cudax/test/stf/allocators/buddy_allocator.cu create mode 100644 cccl_upstream/cudax/test/stf/allocators/cap_tmp_buffers.cu create mode 100644 cccl_upstream/cudax/test/stf/context/context_resource_test.cu create mode 100644 cccl_upstream/cudax/test/stf/context/simple_context_resource_test.cu create mode 100644 cccl_upstream/cudax/test/stf/cpp/concurrency_test.cu create mode 100644 cccl_upstream/cudax/test/stf/cpp/read_const.cu create mode 100644 cccl_upstream/cudax/test/stf/cpp/redundant_data.cu create mode 100644 cccl_upstream/cudax/test/stf/cpp/redundant_data_different_modes.cu create mode 100644 cccl_upstream/cudax/test/stf/cpp/reuse_computation.cu create mode 100644 cccl_upstream/cudax/test/stf/cpp/reuse_computation_2.cu create mode 100644 cccl_upstream/cudax/test/stf/cpp/scoped_graph_task.cu create mode 100644 cccl_upstream/cudax/test/stf/cpp/task_get_stream.cu create mode 100644 cccl_upstream/cudax/test/stf/cpp/test_pick_stream.cu create mode 100644 cccl_upstream/cudax/test/stf/cpp/test_pick_stream_green_context.cu create mode 100644 cccl_upstream/cudax/test/stf/cpp/user_streams.cu create mode 100644 cccl_upstream/cudax/test/stf/cpp/wait_token.cu create mode 100644 cccl_upstream/cudax/test/stf/cuda-samples/0_Introduction/vectorAdd/README.md create mode 100644 cccl_upstream/cudax/test/stf/cuda-samples/0_Introduction/vectorAdd/vectorAdd.cu create mode 100644 cccl_upstream/cudax/test/stf/cuda-samples/0_Introduction/vectorAdd/vectorAdd_cudastf.cu create mode 100644 cccl_upstream/cudax/test/stf/cuda-samples/3_CUDA_Features/graphConditionalNodes/graphConditionalNodes.cu create mode 100644 cccl_upstream/cudax/test/stf/cuda-samples/3_CUDA_Features/jacobiCudaGraphs/README.md create mode 100644 cccl_upstream/cudax/test/stf/cuda-samples/3_CUDA_Features/jacobiCudaGraphs/jacobi.cu create mode 100644 cccl_upstream/cudax/test/stf/cuda-samples/3_CUDA_Features/jacobiCudaGraphs/jacobi_cudastf.cu create mode 100644 cccl_upstream/cudax/test/stf/cuda-samples/4_CUDA_Libraries/conjugateGradientMultiDeviceCG/conjugateGradientMultiDeviceCG_custf.cu create mode 100644 cccl_upstream/cudax/test/stf/cuda-samples/5_Domain_Specific/MonteCarloMultiGPU_cudastf/MonteCarloMultiGPU.cu create mode 100644 cccl_upstream/cudax/test/stf/cuda-samples/5_Domain_Specific/MonteCarloMultiGPU_cudastf/MonteCarlo_common.cuh create mode 100644 cccl_upstream/cudax/test/stf/cuda-samples/5_Domain_Specific/MonteCarloMultiGPU_cudastf/MonteCarlo_gold.cu create mode 100644 cccl_upstream/cudax/test/stf/cuda-samples/5_Domain_Specific/MonteCarloMultiGPU_cudastf/MonteCarlo_kernel.cu create mode 100644 cccl_upstream/cudax/test/stf/cuda-samples/5_Domain_Specific/MonteCarloMultiGPU_cudastf/MonteCarlo_reduction.cuh create mode 100644 cccl_upstream/cudax/test/stf/cuda-samples/5_Domain_Specific/MonteCarloMultiGPU_cudastf/README.md create mode 100644 cccl_upstream/cudax/test/stf/cuda-samples/5_Domain_Specific/MonteCarloMultiGPU_cudastf/realtype.cuh create mode 100644 cccl_upstream/cudax/test/stf/dot/basic.cu create mode 100644 cccl_upstream/cudax/test/stf/dot/graph_print_to_dot.cu create mode 100644 cccl_upstream/cudax/test/stf/dot/section_movable.cu create mode 100644 cccl_upstream/cudax/test/stf/dot/sections.cu create mode 100644 cccl_upstream/cudax/test/stf/dot/sections_2.cu create mode 100644 cccl_upstream/cudax/test/stf/dot/sections_stackable.cu create mode 100644 cccl_upstream/cudax/test/stf/dot/with_events.cu create mode 100644 cccl_upstream/cudax/test/stf/error_checks/ctx_mismatch.cu create mode 100644 cccl_upstream/cudax/test/stf/error_checks/data_interface_mismatch.cu create mode 100644 cccl_upstream/cudax/test/stf/error_checks/double_finalize.cu create mode 100644 cccl_upstream/cudax/test/stf/error_checks/erase_frozen.cu create mode 100644 cccl_upstream/cudax/test/stf/error_checks/misformed_tasks_dbl_end.cu create mode 100644 cccl_upstream/cudax/test/stf/error_checks/misformed_tasks_dbl_start.cu create mode 100644 cccl_upstream/cudax/test/stf/error_checks/non_managed_data.cu create mode 100644 cccl_upstream/cudax/test/stf/error_checks/slice_check_bounds.cu create mode 100644 cccl_upstream/cudax/test/stf/error_checks/stackable_fence_in_nested.cu create mode 100644 cccl_upstream/cudax/test/stf/error_checks/stackable_illegal_export.cu create mode 100644 cccl_upstream/cudax/test/stf/error_checks/stackable_inconsistent_access_modes.cu create mode 100644 cccl_upstream/cudax/test/stf/error_checks/stackable_wait_in_nested.cu create mode 100644 cccl_upstream/cudax/test/stf/error_checks/uninitialized_data.cu create mode 100644 cccl_upstream/cudax/test/stf/error_checks/unsatisfiable_spec.cu create mode 100644 cccl_upstream/cudax/test/stf/error_checks/write_frozen.cu create mode 100644 cccl_upstream/cudax/test/stf/examples/01-axpy-launch-ranges-cg.cu create mode 100644 cccl_upstream/cudax/test/stf/examples/01-axpy-places.cu create mode 100644 cccl_upstream/cudax/test/stf/examples/05-stencil-no-copy.cu create mode 100644 cccl_upstream/cudax/test/stf/examples/05-stencil-places.cu create mode 100644 cccl_upstream/cudax/test/stf/examples/05-stencil.cu create mode 100644 cccl_upstream/cudax/test/stf/examples/05-stencil2d-places.cu create mode 100644 cccl_upstream/cudax/test/stf/examples/07-cholesky-redux.cu create mode 100644 cccl_upstream/cudax/test/stf/examples/07-cholesky-unified.cu create mode 100644 cccl_upstream/cudax/test/stf/examples/09-nbody-algorithm.cu create mode 100644 cccl_upstream/cudax/test/stf/examples/09-nbody-blocked.cu create mode 100644 cccl_upstream/cudax/test/stf/examples/09-nbody.cu create mode 100644 cccl_upstream/cudax/test/stf/examples/cuda_kernels_driver.cu create mode 100644 cccl_upstream/cudax/test/stf/fhe/batcher_sort_interpreted_cufhe.bool.ir create mode 100644 cccl_upstream/cudax/test/stf/fhe/kernel_sharpen_interpreted_cufhe.bool.ir create mode 100644 cccl_upstream/cudax/test/stf/fhe/parse_arctyrex.cu create mode 100644 cccl_upstream/cudax/test/stf/freeze/constant_logical_data.cu create mode 100644 cccl_upstream/cudax/test/stf/freeze/freeze.cu create mode 100644 cccl_upstream/cudax/test/stf/freeze/freeze_rw.cu create mode 100644 cccl_upstream/cudax/test/stf/freeze/freeze_untyped_rw.cu create mode 100644 cccl_upstream/cudax/test/stf/freeze/freeze_write_back.cu create mode 100644 cccl_upstream/cudax/test/stf/freeze/task_fence.cu create mode 100644 cccl_upstream/cudax/test/stf/freeze/token.cu create mode 100644 cccl_upstream/cudax/test/stf/gnu/06-pdgemm.cpp create mode 100644 cccl_upstream/cudax/test/stf/gnu/07-cholesky.cpp create mode 100644 cccl_upstream/cudax/test/stf/gnu/include_only.cpp create mode 100644 cccl_upstream/cudax/test/stf/graph/concurrency_test.cu create mode 100644 cccl_upstream/cudax/test/stf/graph/epoch.cu create mode 100644 cccl_upstream/cudax/test/stf/graph/explicit_graph.cu create mode 100644 cccl_upstream/cudax/test/stf/graph/explicit_graph_async.cu create mode 100644 cccl_upstream/cudax/test/stf/graph/explicit_graph_while-kernels.cu create mode 100644 cccl_upstream/cudax/test/stf/graph/explicit_graph_while.cu create mode 100644 cccl_upstream/cudax/test/stf/graph/freeze_for_graph.cu create mode 100644 cccl_upstream/cudax/test/stf/graph/freeze_nested_graphs.cu create mode 100644 cccl_upstream/cudax/test/stf/graph/freeze_nested_graphs_allocator.cu create mode 100644 cccl_upstream/cudax/test/stf/graph/freeze_while_graphs.cu create mode 100644 cccl_upstream/cudax/test/stf/graph/freeze_while_graphs_2.cu create mode 100644 cccl_upstream/cudax/test/stf/graph/freeze_while_graphs_3.cu create mode 100644 cccl_upstream/cudax/test/stf/graph/get_cache_stats.cu create mode 100644 cccl_upstream/cudax/test/stf/graph/graph_cache_policy.cu create mode 100644 cccl_upstream/cudax/test/stf/graph/graph_child_move_ownership.cu create mode 100644 cccl_upstream/cudax/test/stf/graph/graph_composition.cu create mode 100644 cccl_upstream/cudax/test/stf/graph/graph_ctx_low_level.cu create mode 100644 cccl_upstream/cudax/test/stf/graph/graph_multiple_launch_resources.cu create mode 100644 cccl_upstream/cudax/test/stf/graph/graph_tmp_data.cu create mode 100644 cccl_upstream/cudax/test/stf/graph/many.cu create mode 100644 cccl_upstream/cudax/test/stf/graph/multiple_graph_ctx.cu create mode 100644 cccl_upstream/cudax/test/stf/graph/static_graph_ctx.cu create mode 100644 cccl_upstream/cudax/test/stf/green_context/axpy_gc.cu create mode 100644 cccl_upstream/cudax/test/stf/green_context/cuda_graph.cu create mode 100644 cccl_upstream/cudax/test/stf/green_context/gc_grid.cu create mode 100644 cccl_upstream/cudax/test/stf/hash/ctx_hash.cu create mode 100644 cccl_upstream/cudax/test/stf/hash/logical_data.cu create mode 100644 cccl_upstream/cudax/test/stf/hashtable/fusion.cu create mode 100644 cccl_upstream/cudax/test/stf/hashtable/fusion_reduction.cu create mode 100644 cccl_upstream/cudax/test/stf/hashtable/parallel_for.cu create mode 100644 cccl_upstream/cudax/test/stf/hashtable/parallel_for_shape.cu create mode 100644 cccl_upstream/cudax/test/stf/hashtable/test.cu create mode 100644 cccl_upstream/cudax/test/stf/interface/cuda_kernel_chain-add_deps.cu create mode 100644 cccl_upstream/cudax/test/stf/interface/cuda_kernel_chain-add_deps_low_level.cu create mode 100644 cccl_upstream/cudax/test/stf/interface/cuda_kernel_empty_args.cu create mode 100644 cccl_upstream/cudax/test/stf/interface/data_from_device.cu create mode 100644 cccl_upstream/cudax/test/stf/interface/data_from_device_2.cu create mode 100644 cccl_upstream/cudax/test/stf/interface/data_from_device_wb.cu create mode 100644 cccl_upstream/cudax/test/stf/interface/graph_use_device_data.cu create mode 100644 cccl_upstream/cudax/test/stf/interface/host_launch_deps.cu create mode 100644 cccl_upstream/cudax/test/stf/interface/mix_stream_and_graph.cu create mode 100644 cccl_upstream/cudax/test/stf/interface/mix_stream_and_graph_2.cu create mode 100644 cccl_upstream/cudax/test/stf/interface/move_operator.cu create mode 100644 cccl_upstream/cudax/test/stf/interface/scal.cu create mode 100644 cccl_upstream/cudax/test/stf/interface/scalar_div.cu create mode 100644 cccl_upstream/cudax/test/stf/interface/scalar_interface.cu create mode 100644 cccl_upstream/cudax/test/stf/interface/stream_add_callback.cu create mode 100644 cccl_upstream/cudax/test/stf/local_stf/interop_cuda.cu create mode 100644 cccl_upstream/cudax/test/stf/local_stf/legacy_to_stf.cu create mode 100644 cccl_upstream/cudax/test/stf/local_stf/legacy_to_stf_in_capture.cu create mode 100644 cccl_upstream/cudax/test/stf/local_stf/logical_data_t_template.cu create mode 100644 cccl_upstream/cudax/test/stf/local_stf/stackable.cu create mode 100644 cccl_upstream/cudax/test/stf/local_stf/stackable2.cu create mode 100644 cccl_upstream/cudax/test/stf/local_stf/stackable_add_deps.cu create mode 100644 cccl_upstream/cudax/test/stf/local_stf/stackable_export.cu create mode 100644 cccl_upstream/cudax/test/stf/local_stf/stackable_export2.cu create mode 100644 cccl_upstream/cudax/test/stf/local_stf/stackable_move.cu create mode 100644 cccl_upstream/cudax/test/stf/local_stf/stackable_nested.cu create mode 100644 cccl_upstream/cudax/test/stf/local_stf/stackable_nested_lib.cu create mode 100644 cccl_upstream/cudax/test/stf/local_stf/stackable_nested_repeat.cu create mode 100644 cccl_upstream/cudax/test/stf/local_stf/stackable_nested_while.cu create mode 100644 cccl_upstream/cudax/test/stf/local_stf/stackable_node_pool_growth.cu create mode 100644 cccl_upstream/cudax/test/stf/local_stf/stackable_read_only.cu create mode 100644 cccl_upstream/cudax/test/stf/local_stf/stackable_redundant_deps.cu create mode 100644 cccl_upstream/cudax/test/stf/local_stf/stackable_threads.cu create mode 100644 cccl_upstream/cudax/test/stf/local_stf/stackable_tmp.cu create mode 100644 cccl_upstream/cudax/test/stf/local_stf/stackable_token.cu create mode 100644 cccl_upstream/cudax/test/stf/local_stf/stackable_write_back.cu create mode 100644 cccl_upstream/cudax/test/stf/local_stf/stream_ctx_lifetime_btb.cu create mode 100644 cccl_upstream/cudax/test/stf/local_stf/task_dep_copy_move_semantics.cu create mode 100644 cccl_upstream/cudax/test/stf/local_stf/threads_multiple_graphs.cu create mode 100644 cccl_upstream/cudax/test/stf/loop_dispatch/dispatch_on_streams.cu create mode 100644 cccl_upstream/cudax/test/stf/loop_dispatch/loop_dispatch.cu create mode 100644 cccl_upstream/cudax/test/stf/loop_dispatch/nested_loop_dispatch.cu create mode 100644 cccl_upstream/cudax/test/stf/loop_dispatch/stackable_loop_dispatch.cu create mode 100644 cccl_upstream/cudax/test/stf/parallel_for/empty_shape_reduce.cu create mode 100644 cccl_upstream/cudax/test/stf/parallel_for/fdtd.cu create mode 100644 cccl_upstream/cudax/test/stf/parallel_for/fdtd_acc.cpp create mode 100644 cccl_upstream/cudax/test/stf/parallel_for/parallel_for_all_devs.cu create mode 100644 cccl_upstream/cudax/test/stf/parallel_for/parallel_for_box.cu create mode 100644 cccl_upstream/cudax/test/stf/parallel_for/parallel_for_host.cu create mode 100644 cccl_upstream/cudax/test/stf/parallel_for/parallel_for_repeat.cu create mode 100644 cccl_upstream/cudax/test/stf/parallel_for/test2_parallel_for_context.cu create mode 100644 cccl_upstream/cudax/test/stf/parallel_for/tiled_loops.cu create mode 100644 cccl_upstream/cudax/test/stf/places/affinity_gc.cu create mode 100644 cccl_upstream/cudax/test/stf/places/cuda_stream_place.cu create mode 100644 cccl_upstream/cudax/test/stf/places/cute_block_owners.cu create mode 100644 cccl_upstream/cudax/test/stf/places/cute_parallel_for.cu create mode 100644 cccl_upstream/cudax/test/stf/places/execution_policy_kernel_launch_test.cu create mode 100644 cccl_upstream/cudax/test/stf/places/managed.cu create mode 100644 cccl_upstream/cudax/test/stf/places/managed_from_shape.cu create mode 100644 cccl_upstream/cudax/test/stf/places/managed_from_user.cu create mode 100644 cccl_upstream/cudax/test/stf/places/non_current_device.cu create mode 100644 cccl_upstream/cudax/test/stf/places/place_partition.cu create mode 100644 cccl_upstream/cudax/test/stf/places/recursion.cu create mode 100644 cccl_upstream/cudax/test/stf/places/replicated_data_place.cu create mode 100644 cccl_upstream/cudax/test/stf/places/replicated_frozen_import.cu create mode 100644 cccl_upstream/cudax/test/stf/reclaiming/graph.cu create mode 100644 cccl_upstream/cudax/test/stf/reclaiming/graph_2.cu create mode 100644 cccl_upstream/cudax/test/stf/reclaiming/graph_real_oom.cu create mode 100644 cccl_upstream/cudax/test/stf/reclaiming/stream.cu create mode 100644 cccl_upstream/cudax/test/stf/reductions/many_inc.cu create mode 100644 cccl_upstream/cudax/test/stf/reductions/reduce_sum.cu create mode 100644 cccl_upstream/cudax/test/stf/reductions/redux_test.cu create mode 100644 cccl_upstream/cudax/test/stf/reductions/redux_test2.cu create mode 100644 cccl_upstream/cudax/test/stf/reductions/slice2d_reduction.cu create mode 100644 cccl_upstream/cudax/test/stf/reductions/slice_custom_op.cu create mode 100644 cccl_upstream/cudax/test/stf/reductions/successive_reductions.cu create mode 100644 cccl_upstream/cudax/test/stf/reductions/successive_reductions_pfor.cu create mode 100644 cccl_upstream/cudax/test/stf/reductions/sum.cu create mode 100644 cccl_upstream/cudax/test/stf/reductions/sum_array.cu create mode 100644 cccl_upstream/cudax/test/stf/reductions/sum_multiple_places.cu create mode 100644 cccl_upstream/cudax/test/stf/reductions/sum_multiple_places_no_refvalue.cu create mode 100644 cccl_upstream/cudax/test/stf/reductions/write_back_after_redux.cu create mode 100644 cccl_upstream/cudax/test/stf/slice/pinning.cu create mode 100644 cccl_upstream/cudax/test/stf/stackable/composite_conditional.cu create mode 100644 cccl_upstream/cudax/test/stf/stackable/graph_scope_test.cu create mode 100644 cccl_upstream/cudax/test/stf/static_error_checks/CMakeLists.txt create mode 100644 cccl_upstream/cudax/test/stf/static_error_checks/cuda_try_ambiguous.cu create mode 100644 cccl_upstream/cudax/test/stf/static_error_checks/graph_task_prototype.cu create mode 100644 cccl_upstream/cudax/test/stf/static_error_checks/static.cu create mode 100644 cccl_upstream/cudax/test/stf/static_error_checks/stream_task_prototype.cu create mode 100644 cccl_upstream/cudax/test/stf/static_error_checks/task_prototype.cu create mode 100644 cccl_upstream/cudax/test/stf/stencil/stencil-1D.cu create mode 100644 cccl_upstream/cudax/test/stf/stress/empty_tasks.cu create mode 100644 cccl_upstream/cudax/test/stf/stress/empty_tasks_alloc.cu create mode 100644 cccl_upstream/cudax/test/stf/stress/kernel_chain.cu create mode 100644 cccl_upstream/cudax/test/stf/stress/kernel_chain_fused.cu create mode 100644 cccl_upstream/cudax/test/stf/stress/launch_overhead.cu create mode 100644 cccl_upstream/cudax/test/stf/stress/launch_vs_parallelfor.cu create mode 100644 cccl_upstream/cudax/test/stf/stress/many_read.cu create mode 100644 cccl_upstream/cudax/test/stf/stress/parallel_for_overhead.cu create mode 100644 cccl_upstream/cudax/test/stf/stress/task_bench.cu create mode 100644 cccl_upstream/cudax/test/stf/threads/axpy-threads-2.cu create mode 100644 cccl_upstream/cudax/test/stf/threads/axpy-threads-graph-capture.cu create mode 100644 cccl_upstream/cudax/test/stf/threads/axpy-threads-graph.cu create mode 100644 cccl_upstream/cudax/test/stf/threads/axpy-threads-pfor.cu create mode 100644 cccl_upstream/cudax/test/stf/threads/axpy-threads.cu create mode 100644 cccl_upstream/cudax/test/stf/utility/source_location_map.cu create mode 100644 cccl_upstream/cudax/test/stf/utility/timing_with_fences.cu create mode 100644 cccl_upstream/cudax/test/stream/stream_smoke.cu create mode 100644 cccl_upstream/cudax/test/utility/ensure_current_device.cu create mode 100644 cccl_upstream/cudax/test/utility/optionally_static.cu create mode 100644 cccl_upstream/cudax/test/utility/scope.cu create mode 100644 cccl_upstream/cudax/test/utility/unstable_unique.cu create mode 100644 cccl_upstream/nvbench_helper/CMakeLists.txt create mode 100644 cccl_upstream/nvbench_helper/nvbench_helper/device_side_benchmark.cuh create mode 100644 cccl_upstream/nvbench_helper/nvbench_helper/look_back_helper.cuh create mode 100644 cccl_upstream/nvbench_helper/nvbench_helper/nvbench_helper.cu create mode 100644 cccl_upstream/nvbench_helper/nvbench_helper/nvbench_helper.cuh create mode 100644 cccl_upstream/nvbench_helper/test/gen_entropy.cu create mode 100644 cccl_upstream/nvbench_helper/test/gen_power_law_distribution.cu create mode 100644 cccl_upstream/nvbench_helper/test/gen_range.cu create mode 100644 cccl_upstream/nvbench_helper/test/gen_seed.cu create mode 100644 cccl_upstream/nvbench_helper/test/gen_uniform_distribution.cu diff --git a/CCCL_ASSET_MAP.md b/CCCL_ASSET_MAP.md new file mode 100644 index 00000000..119c8d3c --- /dev/null +++ b/CCCL_ASSET_MAP.md @@ -0,0 +1,90 @@ +# CCCL Asset → Competition Value Mapping + +## Executive Summary + +project_6 now contains **4,295 CCCL files** (42MB) — a strategic subset of NVIDIA's CCCL (135MB full). +We have **100%** of the competition-critical assets and **0%** of the irrelevant CI/Python/docs bloat. + +## Asset Inventory + +### Tier 1: Direct Competition Impact (ALL PRESENT ✓) + +| CCCL Asset | Files | PRD Items | Competition Path | +|-----------|-------|-----------|-----------------| +| 26 tuning_*.cuh (SM80/90/100 benchmarks) | 26 | [muh] 语言规范, all标定items | The benchmark data we're adapting to BI-V100 | +| 27 muh tuning_*.cuh (BI-V100 adapted) | 29 | [EPIC] 27/27 CCCL parity | Our kernel tuning injection layer | +| 32 dispatch_*.cuh (algorithm impl) | 32 | gen_patch injection points | Where muh values get injected | +| 153 CUB benchmarks (.cu) | 153 | [muh-bench] reduce/scan/topk/transform | The actual benchmark binaries | +| 60 Thrust examples (.cu) | 60 | [CCCL-verify] all 22 items | Correctness verification suite | +| 217 CUB Catch2 tests (.cu) | 217 | [CCCL-test] all 8 items | Regression test matrix | +| 18 CUB examples (.cu) | 18 | [CCCL-verify] device_reduce/scan/topk | API-level verification | + +### Tier 2: Build & Test Infrastructure (NOW PRESENT ✓) + +| CCCL Asset | Files | Purpose | +|-----------|-------|---------| +| c2h/ (test helpers) | 27 | Catch2 test generators, validators, runner | +| nvbench_helper/ | 10 | Benchmark harness utilities for CUB benches | +| cmake/ | 29 | CMake presets, build helpers, target definitions | +| CMakePresets.json | 1 | Standardized build configurations | +| AGENTS.md / CLAUDE.md | 1 | NVIDIA's own AI agent instructions for CCCL | + +### Tier 3: Extended Library (NOW PRESENT ✓) + +| CCCL Asset | Files | Purpose | +|-----------|-------|---------| +| cudax/ | 794 | Experimental CUDA extensions (memory resources, launch, async) | +| libcudacxx/ | 1463 | CUDA C++ Standard Library headers | + +### NOT Included (by design) + +| CCCL Asset | Why Excluded | +|-----------|-------------| +| .github/, ci/ (65 files) | GitHub Actions workflows — irrelevant | +| python/ | Python bindings — we use C++ directly | +| docs/ (25 files) | Markdown docs — we have the source code | +| .git history | ~100MB of git objects — no value | + +## Competition Critical Path + +``` +竞赛门槛: Token吞吐加权值 ≥ 8000 + = Output TPS × 16.796 (83%) + Input TPS × 2.799 (14%) + Cache TPS × 0.56 (3%) + +CCCL → muh → vllm injection chain: + cccl_upstream/cub/.../tuning_reduce.cuh (SM100 benchmark data: ipt_16.tpb_512 speedup=1.148) + → muh/include/muh/tuning/tuning_reduce.cuh (BI-V100 adapted: SMEM ≤ 48KB) + → muh/gen_patch.py (extract bi100_* structs → unified diff) + → vllm csrc/attention/paged_attention_v2.cu (NUM_THREADS=512, VEC_SIZE=2) + → Docker build → Phanthy Cloud 4×BI-V100 → 竞赛评测 +``` + +## CCCL Examples → PRD Items Cross-Reference + +| Thrust Example | PRD [CCCL-verify] Item | vllm Kernel Path | +|---------------|----------------------|-----------------| +| summary_statistics.cu | summary_statistics (P1) | benchmark 统计分析 | +| sort.cu | sort (P0) | top-k sampling radix sort | +| scan_by_key.cu | scan_by_key (P0) | softmax denominator | +| stream_compaction.cu | stream_compaction (P0) | token filtering | +| histogram.cu | histogram (P1) | repetition_penalty | +| norm.cu | norm (P0) | RMSNorm 精度基准 | +| saxpy.cu | saxpy (P0) | SiLU/RoPE/bias_add | +| run_length_encoding.cu | run_length_encoding (P1) | attention mask 压缩 | +| sum.cu + sum_rows.cu | sum+sum_rows (P0) | attention score reduction | +| dot_products_with_zip.cu | dot_products (P1) | multi-head attention score | +| sparse_vector.cu | sparse_vector (P1) | sparse attention | +| weld_vertices.cu | weld_vertices (P1) | KV cache deduplication | +| max_abs_diff.cu | max_abs_diff (P2) | 效果测试精度对比 | +| monte_carlo.cu | monte_carlo (P2) | temperature sampling | + +## File Count Summary + +| Component | Before | After | Delta | +|-----------|--------|-------|-------| +| cccl_upstream/ total | 3,432 | 4,295 | +863 | +| + c2h (test helpers) | 0 | 27 | +27 | +| + nvbench_helper | 0 | 10 | +10 | +| + cmake (build system) | 0 | 29 | +29 | +| + cudax (experimental) | 0 | 794 | +794 | +| + metadata files | 0 | 3 | +3 | diff --git a/cccl_upstream/AGENTS.md b/cccl_upstream/AGENTS.md new file mode 100644 index 00000000..6f3f9943 --- /dev/null +++ b/cccl_upstream/AGENTS.md @@ -0,0 +1,404 @@ +# Agent Instructions + +This document provides guidelines for building, testing, and contributing to the CCCL repository. It is primarily written for agentic AIs, but the information is also useful for CCCL developers. + +--- + +## Overview + +CCCL is a collection of CUDA C++ libraries and Python packages: + +* **libcudacxx** — CUDA C++ Standard Library +* **CUB** — Block-level primitives +* **Thrust** — High-level parallel algorithms +* **cudax** — Experimental features +* **C Parallel Library** — C bindings for CCCL algorithms +* **Python CCCL packages** (`cuda-cccl`) — Python APIs for parallel primitives and programmatic access to CCCL headers + +The repository uses **CMake** with the **Ninja** generator and provides standardized presets for consistent builds. + +--- + +## Iteration Cycles + +For a given task, you should: + +1. Research. Search the web, read existing code, look up system/dependency headers / implementations of related functionality. Figure out best practices and common pitfalls. Look for existing tests of the functionality; if none exist, plan a new test that integrates with the relevant existing testing frameworks. +2. Plan. Create a high-level plan to implement the requested feature. +3. Review and Refine plan. Look for pitfalls, find ways to smooth out rough edges. Verify any assumptions, edgecases, or identified pitfalls. Repeat until the plan is solid. +4. Gather consistency context. Look at similar code (sibling classes if possible, otherwise just related source files) to learn the style and patterns used in the project. Consistency is important -- similar features should be organized and implemented similarly. Naming conventions should be followed. +5. If requested: Present the plan. Only do this if the user asks for a plan to do something -- if they just ask you implement something without requesting a plan, skip this step. +6. Draft. Implement the requested task to the best of your ability. +7. Review and Refine. Read through your changes. Verify that API calls are correct. Assess clarity, performance, and readability. Iterate as needed. +8. Style check. Ensure that your changes follow style and naming conventions. +9. Build and test. Once you're confident that your changes are functionally and stylistically correct start build, test, and iterate cycles. If you don't have permissions to do these, ask the user to run specific build/test commands for you. + +--- + +## Known Agent Limitations + +### OpenAI Codex + +Codex cloud instances cannot: + +* Run Docker containers with devcontainer scripts +* Access GPUs or run GPU-dependent tests + +--- + +## Build and Test Tools + +All CCCL subprojects are computationally expensive to build and test. Use the provided helper scripts to minimize work and target only what you need. + +### CMake Presets + +Presets are defined in `CMakePresets.json`. Names follow a `project` or `-cpp` format, such as `cub-cpp20`, `thrust-cpp17`, or `libcudacxx`. Use `cmake --list-presets` to view available options. Build trees are placed under `build/${CCCL_BUILD_INFIX}/${PRESET}`. + +### `.devcontainer/launch.sh` + +Launches a container configured with a CUDA Toolkit and host compiler. First startup may take time, but cached environments are faster. In agent environments, container launches may not be supported. To check if you are already inside a container, verify if `CCCL_BUILD_INFIX` is set. + +Common options: + +* `-d, --docker` — Run without VSCode (required for agents) +* `--cuda ` — Select CUDA Toolkit (optional) +* `--cuda-ext` — Use a docker image with extended CTK libraries +* `--host ` — Select host compiler (optional) +* `--gpus ` — GPU devices to add to the container (use `all` to pass all GPUs) +* `-e/--env`, `-v/--volume` — Environment variables / volume mounts +* `--