Skip to content

[CI Only][Do not review][Do not merge] Test cuda::ptx CTK-13.4#10002

Open
fbusato wants to merge 1 commit into
NVIDIA:mainfrom
fbusato:test-ptx-ctk-13.4
Open

[CI Only][Do not review][Do not merge] Test cuda::ptx CTK-13.4#10002
fbusato wants to merge 1 commit into
NVIDIA:mainfrom
fbusato:test-ptx-ctk-13.4

Conversation

@fbusato

@fbusato fbusato commented Jul 17, 2026

Copy link
Copy Markdown
Contributor

@fbusato fbusato self-assigned this Jul 17, 2026
@fbusato
fbusato requested a review from a team as a code owner July 17, 2026 22:16
@fbusato
fbusato requested a review from griwes July 17, 2026 22:16
@fbusato fbusato added this to CCCL Jul 17, 2026
@github-project-automation github-project-automation Bot moved this to Todo in CCCL Jul 17, 2026
@cccl-authenticator-app cccl-authenticator-app Bot moved this from Todo to In Review in CCCL Jul 17, 2026
@coderabbitai

coderabbitai Bot commented Jul 17, 2026

Copy link
Copy Markdown
Contributor

Review Change Stack

📝 Walkthrough

Summary by CodeRabbit

  • New Features

    • Added support for additional CUDA PTX operations, including asynchronous transfers, fabric operations, matrix instructions, barriers, prefetching, and tensor-core workflows.
    • Added PTX layout, phase, and reporting types for expanded instruction configuration.
    • Added NVIDIA SM_107 architecture targeting and feature detection support.
    • Expanded fence, barrier, and tensor-core instruction coverage.
  • Tests

    • Added compile-only validation coverage for the newly supported PTX operations and architecture features.

Walkthrough

Adds CUDA PTX instruction wrappers and exports, dot-variant types, SM_107 target support, compile-pass coverage for new generated instructions, and compile-only execution handling for CUDA PTX tests.

Changes

CUDA PTX support

Layer / File(s) Summary
PTX variant contracts
libcudacxx/include/cuda/__ptx/ptx_dot_variants.h
Adds dot layout, phase, and report-mechanism enums with mbarrier aliases and constexpr values.
Instruction wrappers and exports
libcudacxx/include/cuda/__ptx/instructions/*, libcudacxx/include/cuda/ptx
Adds wrappers and aggregate exports for new async, fabric, matrix, mbarrier, prefetch, fence, and tcgen05 instructions.
SM_107 target selection
libcudacxx/include/nv/target, libcudacxx/include/nv/detail/__target_macros
Adds SM_107 selectors, device mappings, feature predicates, and dispatch macros.
PTX compile-pass coverage
libcudacxx/test/libcudacxx/cuda/ptx/*
Adds compile-pass tests for new generated instruction headers and extends existing coverage.
Compile-only test execution
libcudacxx/test/utils/libcudacxx/test/format.py
Detects CUDA PTX compile-pass tests and reports compilation results without linking or running them.

Suggested reviewers: griwes


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

@coderabbitai coderabbitai Bot left a comment

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

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

Actionable comments posted: 2

🧹 Nitpick comments (6)
libcudacxx/include/nv/detail/__target_macros (1)

39-39: 🎯 Functional Correctness | 🔵 Trivial | ⚡ Quick win

suggestion: Add focused compile-time coverage for the complete SM_107 dispatch chain.

The change duplicates selector, integer, exact/provides, and SM_107a/SM_107f feature mappings. Assert the new predicates under representative host, device, architecture-specific, and family-specific configurations so a table typo cannot silently omit downstream PTX registrations.

As per coding guidelines, validate changes with relevant targeted builds and tests. The supplied downstream wrapper consumes NV_HAS_FEATURE_SM_107a and NV_HAS_FEATURE_SM_107f.

Also applies to: 63-63, 90-90, 131-131, 184-184, 220-220, 244-244, 302-309, 446-451, 506-514, 571-579, 734-739

Source: Coding guidelines

libcudacxx/include/cuda/__ptx/instructions/fabric_submit.h (2)

12-14: 📐 Maintainability & Code Quality | 🔵 Trivial | ⚡ Quick win

suggestion: Apply the full-path include-guard rule consistently.

All ten guards omit the __ptx/instructions path components. Rename each guard to encode the full path and update its closing #endif comment.

  • libcudacxx/include/cuda/__ptx/instructions/fabric_submit.h#L12-L14: update _CUDA_PTX_FABRIC_SUBMIT_H_.
  • libcudacxx/include/cuda/__ptx/instructions/fabric_try_get.h#L12-L14: update _CUDA_PTX_FABRIC_TRY_GET_H_.
  • libcudacxx/include/cuda/__ptx/instructions/fabric_try_pullred.h#L12-L14: update _CUDA_PTX_FABRIC_TRY_PULLRED_H_.
  • libcudacxx/include/cuda/__ptx/instructions/fabric_try_put.h#L12-L14: update _CUDA_PTX_FABRIC_TRY_PUT_H_.
  • libcudacxx/include/cuda/__ptx/instructions/fabric_try_red.h#L12-L14: update _CUDA_PTX_FABRIC_TRY_RED_H_.
  • libcudacxx/include/cuda/__ptx/instructions/fabric_wait.h#L12-L14: update _CUDA_PTX_FABRIC_WAIT_H_.
  • libcudacxx/include/cuda/__ptx/instructions/ldmatrix.h#L12-L14: update _CUDA_PTX_LDMATRIX_H_.
  • libcudacxx/include/cuda/__ptx/instructions/mbarrier_check_layout.h#L12-L14: update _CUDA_PTX_MBARRIER_CHECK_LAYOUT_H_.
  • libcudacxx/include/cuda/__ptx/instructions/mbarrier_complete_tx.h#L12-L14: update _CUDA_PTX_MBARRIER_COMPLETE_TX_H_.
  • libcudacxx/include/cuda/__ptx/instructions/mbarrier_pending_count.h#L12-L14: update _CUDA_PTX_MBARRIER_PENDING_COUNT_H_.

As per coding guidelines, headers must use include guards derived from the uppercase full path.

Source: Coding guidelines


17-23: 📐 Maintainability & Code Quality | 🔵 Trivial | ⚡ Quick win

suggestion: Make the preprocessor closing annotations verbatim.

Each #endif // no system header should either repeat the initial #if condition exactly or omit the comment.

  • libcudacxx/include/cuda/__ptx/instructions/fabric_submit.h#L17-L23: fix the system-header pragma annotation.
  • libcudacxx/include/cuda/__ptx/instructions/fabric_try_get.h#L17-L23: fix the system-header pragma annotation.
  • libcudacxx/include/cuda/__ptx/instructions/fabric_try_pullred.h#L17-L23: fix the system-header pragma annotation.
  • libcudacxx/include/cuda/__ptx/instructions/fabric_try_put.h#L17-L23: fix the system-header pragma annotation.
  • libcudacxx/include/cuda/__ptx/instructions/fabric_try_red.h#L17-L23: fix the system-header pragma annotation.
  • libcudacxx/include/cuda/__ptx/instructions/fabric_wait.h#L17-L23: fix the system-header pragma annotation.
  • libcudacxx/include/cuda/__ptx/instructions/ldmatrix.h#L17-L23: fix the system-header pragma annotation.
  • libcudacxx/include/cuda/__ptx/instructions/mbarrier_check_layout.h#L17-L23: fix the system-header pragma annotation.
  • libcudacxx/include/cuda/__ptx/instructions/mbarrier_complete_tx.h#L17-L23: fix the system-header pragma annotation.
  • libcudacxx/include/cuda/__ptx/instructions/mbarrier_pending_count.h#L17-L23: fix the system-header pragma annotation.

Based on learnings, annotated preprocessor branch comments must repeat the corresponding #if condition verbatim.

Source: Learnings

libcudacxx/test/libcudacxx/cuda/ptx/ptx.applypriority.async.bulk.compile.pass.cpp (1)

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

suggestion: Add a rationale comment for each UNSUPPORTED: libcpp-has-no-threads directive. The test guidance requires skipped or unsupported tests to explain why they are unavailable.

  • libcudacxx/test/libcudacxx/cuda/ptx/ptx.applypriority.async.bulk.compile.pass.cpp#L10-L10: explain the thread dependency.
  • libcudacxx/test/libcudacxx/cuda/ptx/ptx.cp.async.bulk.prefetch.compile.pass.cpp#L10-L10: explain the thread dependency.
  • libcudacxx/test/libcudacxx/cuda/ptx/ptx.cp.async.bulk.prefetch.tensor.compile.pass.cpp#L10-L10: explain the thread dependency.
  • libcudacxx/test/libcudacxx/cuda/ptx/ptx.prefetch.compile.pass.cpp#L10-L10: explain the thread dependency.
  • libcudacxx/test/libcudacxx/cuda/ptx/ptx.stmatrix.compile.pass.cpp#L10-L10: explain the thread dependency.
  • libcudacxx/test/libcudacxx/cuda/ptx/ptx.tcgen05.alloc.compile.pass.cpp#L11-L11: explain the thread dependency.
  • libcudacxx/test/libcudacxx/cuda/ptx/ptx.tcgen05.commit.compile.pass.cpp#L11-L11: explain the thread dependency.
  • libcudacxx/test/libcudacxx/cuda/ptx/ptx.tcgen05.cp.compile.pass.cpp#L11-L11: explain the thread dependency.

As per path instructions, unsupported features must be motivated with a comment.

Source: Path instructions

libcudacxx/test/utils/libcudacxx/test/format.py (1)

274-282: 📐 Maintainability & Code Quality | 🔵 Trivial | ⚡ Quick win

suggestion: Add a regression fixture that cannot link.

The current PTX fixtures contain main, so they would still pass if compile-only dispatch regressed to the normal compile-link-run path. Add a compile-pass case without a linkable entry point, or a focused harness test, to prove this branch compiles without linking or executing.

libcudacxx/test/libcudacxx/cuda/ptx/ptx.fabric.try.red.compile.pass.cpp (1)

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

suggestion: These generated-header includes use quotes, while the repository rule requires angle-bracket syntax. Apply the same include-style fix at each site, or document a scoped exception if quote lookup is intentional.

  • libcudacxx/test/libcudacxx/cuda/ptx/ptx.fabric.try.red.compile.pass.cpp#L17-L17: change the generated fabric_try_red include.
  • libcudacxx/test/libcudacxx/cuda/ptx/ptx.fabric.wait.compile.pass.cpp#L17-L17: change the generated fabric_wait include.
  • libcudacxx/test/libcudacxx/cuda/ptx/ptx.fence.compile.pass.cpp#L23-L25: change all three generated fence includes.
  • libcudacxx/test/libcudacxx/cuda/ptx/ptx.ldmatrix.compile.pass.cpp#L17-L17: change the generated ldmatrix include.
  • libcudacxx/test/libcudacxx/cuda/ptx/ptx.mbarrier.arrive.compile.pass.cpp#L22-L22: change the generated mbarrier_arrive_drop include.
  • libcudacxx/test/libcudacxx/cuda/ptx/ptx.mbarrier.check.layout.compile.pass.cpp#L17-L17: change the generated layout include.
  • libcudacxx/test/libcudacxx/cuda/ptx/ptx.mbarrier.complete.tx.compile.pass.cpp#L17-L17: change the generated transaction-completion include.
  • libcudacxx/test/libcudacxx/cuda/ptx/ptx.mbarrier.pending.count.compile.pass.cpp#L17-L17: change the generated pending-count include.

Source: Coding guidelines


ℹ️ Review info
⚙️ Run configuration

Configuration used: Path: .coderabbit.yaml

Review profile: CHILL

Plan: Enterprise

Run ID: adcf099f-a250-4b42-a8b1-631f6082096d

📥 Commits

Reviewing files that changed from the base of the PR and between b757d02 and 9b5ee55.

⛔ Files ignored due to path filters (138)
  • libcudacxx/include/cuda/__ptx/instructions/generated/applypriority_async_bulk.h is excluded by !**/generated/**
  • libcudacxx/include/cuda/__ptx/instructions/generated/barrier_cluster.h is excluded by !**/generated/**
  • libcudacxx/include/cuda/__ptx/instructions/generated/bfind.h is excluded by !**/generated/**
  • libcudacxx/include/cuda/__ptx/instructions/generated/bmsk.h is excluded by !**/generated/**
  • libcudacxx/include/cuda/__ptx/instructions/generated/clusterlaunchcontrol.h is excluded by !**/generated/**
  • libcudacxx/include/cuda/__ptx/instructions/generated/cp_async_bulk.h is excluded by !**/generated/**
  • libcudacxx/include/cuda/__ptx/instructions/generated/cp_async_bulk_commit_group.h is excluded by !**/generated/**
  • libcudacxx/include/cuda/__ptx/instructions/generated/cp_async_bulk_multicast.h is excluded by !**/generated/**
  • libcudacxx/include/cuda/__ptx/instructions/generated/cp_async_bulk_prefetch.h is excluded by !**/generated/**
  • libcudacxx/include/cuda/__ptx/instructions/generated/cp_async_bulk_prefetch_tensor.h is excluded by !**/generated/**
  • libcudacxx/include/cuda/__ptx/instructions/generated/cp_async_bulk_tensor.h is excluded by !**/generated/**
  • libcudacxx/include/cuda/__ptx/instructions/generated/cp_async_bulk_tensor_gather_scatter.h is excluded by !**/generated/**
  • libcudacxx/include/cuda/__ptx/instructions/generated/cp_async_bulk_tensor_multicast.h is excluded by !**/generated/**
  • libcudacxx/include/cuda/__ptx/instructions/generated/cp_async_bulk_wait_group.h is excluded by !**/generated/**
  • libcudacxx/include/cuda/__ptx/instructions/generated/cp_async_mbarrier_arrive.h is excluded by !**/generated/**
  • libcudacxx/include/cuda/__ptx/instructions/generated/cp_async_mbarrier_arrive_noinc.h is excluded by !**/generated/**
  • libcudacxx/include/cuda/__ptx/instructions/generated/cp_reduce_async_bulk.h is excluded by !**/generated/**
  • libcudacxx/include/cuda/__ptx/instructions/generated/cp_reduce_async_bulk_bf16.h is excluded by !**/generated/**
  • libcudacxx/include/cuda/__ptx/instructions/generated/cp_reduce_async_bulk_f16.h is excluded by !**/generated/**
  • libcudacxx/include/cuda/__ptx/instructions/generated/cp_reduce_async_bulk_tensor.h is excluded by !**/generated/**
  • libcudacxx/include/cuda/__ptx/instructions/generated/elect_sync.h is excluded by !**/generated/**
  • libcudacxx/include/cuda/__ptx/instructions/generated/exit.h is excluded by !**/generated/**
  • libcudacxx/include/cuda/__ptx/instructions/generated/fabric_submit.h is excluded by !**/generated/**
  • libcudacxx/include/cuda/__ptx/instructions/generated/fabric_try_get.h is excluded by !**/generated/**
  • libcudacxx/include/cuda/__ptx/instructions/generated/fabric_try_pullred.h is excluded by !**/generated/**
  • libcudacxx/include/cuda/__ptx/instructions/generated/fabric_try_put.h is excluded by !**/generated/**
  • libcudacxx/include/cuda/__ptx/instructions/generated/fabric_try_red.h is excluded by !**/generated/**
  • libcudacxx/include/cuda/__ptx/instructions/generated/fabric_wait.h is excluded by !**/generated/**
  • libcudacxx/include/cuda/__ptx/instructions/generated/fence.h is excluded by !**/generated/**
  • libcudacxx/include/cuda/__ptx/instructions/generated/fence_mbarrier_init.h is excluded by !**/generated/**
  • libcudacxx/include/cuda/__ptx/instructions/generated/fence_proxy_alias.h is excluded by !**/generated/**
  • libcudacxx/include/cuda/__ptx/instructions/generated/fence_proxy_async.h is excluded by !**/generated/**
  • libcudacxx/include/cuda/__ptx/instructions/generated/fence_proxy_async_generic_sync_restrict.h is excluded by !**/generated/**
  • libcudacxx/include/cuda/__ptx/instructions/generated/fence_proxy_fabric_fabric_alias.h is excluded by !**/generated/**
  • libcudacxx/include/cuda/__ptx/instructions/generated/fence_proxy_fabric_generic_alias.h is excluded by !**/generated/**
  • libcudacxx/include/cuda/__ptx/instructions/generated/fence_proxy_generic_fabric_alias.h is excluded by !**/generated/**
  • libcudacxx/include/cuda/__ptx/instructions/generated/fence_proxy_tensormap_generic.h is excluded by !**/generated/**
  • libcudacxx/include/cuda/__ptx/instructions/generated/fence_sync_restrict.h is excluded by !**/generated/**
  • libcudacxx/include/cuda/__ptx/instructions/generated/get_sreg.h is excluded by !**/generated/**
  • libcudacxx/include/cuda/__ptx/instructions/generated/getctarank.h is excluded by !**/generated/**
  • libcudacxx/include/cuda/__ptx/instructions/generated/ld.h is excluded by !**/generated/**
  • libcudacxx/include/cuda/__ptx/instructions/generated/ldmatrix.h is excluded by !**/generated/**
  • libcudacxx/include/cuda/__ptx/instructions/generated/mbarrier_arrive.h is excluded by !**/generated/**
  • libcudacxx/include/cuda/__ptx/instructions/generated/mbarrier_arrive_drop.h is excluded by !**/generated/**
  • libcudacxx/include/cuda/__ptx/instructions/generated/mbarrier_arrive_expect_tx.h is excluded by !**/generated/**
  • libcudacxx/include/cuda/__ptx/instructions/generated/mbarrier_arrive_no_complete.h is excluded by !**/generated/**
  • libcudacxx/include/cuda/__ptx/instructions/generated/mbarrier_check_layout.h is excluded by !**/generated/**
  • libcudacxx/include/cuda/__ptx/instructions/generated/mbarrier_complete_tx.h is excluded by !**/generated/**
  • libcudacxx/include/cuda/__ptx/instructions/generated/mbarrier_expect_tx.h is excluded by !**/generated/**
  • libcudacxx/include/cuda/__ptx/instructions/generated/mbarrier_init.h is excluded by !**/generated/**
  • libcudacxx/include/cuda/__ptx/instructions/generated/mbarrier_inval.h is excluded by !**/generated/**
  • libcudacxx/include/cuda/__ptx/instructions/generated/mbarrier_pending_count.h is excluded by !**/generated/**
  • libcudacxx/include/cuda/__ptx/instructions/generated/mbarrier_test_wait.h is excluded by !**/generated/**
  • libcudacxx/include/cuda/__ptx/instructions/generated/mbarrier_test_wait_parity.h is excluded by !**/generated/**
  • libcudacxx/include/cuda/__ptx/instructions/generated/mbarrier_try_wait.h is excluded by !**/generated/**
  • libcudacxx/include/cuda/__ptx/instructions/generated/mbarrier_try_wait_parity.h is excluded by !**/generated/**
  • libcudacxx/include/cuda/__ptx/instructions/generated/multimem_ld_reduce.h is excluded by !**/generated/**
  • libcudacxx/include/cuda/__ptx/instructions/generated/multimem_red.h is excluded by !**/generated/**
  • libcudacxx/include/cuda/__ptx/instructions/generated/multimem_st.h is excluded by !**/generated/**
  • libcudacxx/include/cuda/__ptx/instructions/generated/prefetch.h is excluded by !**/generated/**
  • libcudacxx/include/cuda/__ptx/instructions/generated/prmt.h is excluded by !**/generated/**
  • libcudacxx/include/cuda/__ptx/instructions/generated/red_async.h is excluded by !**/generated/**
  • libcudacxx/include/cuda/__ptx/instructions/generated/setmaxnreg.h is excluded by !**/generated/**
  • libcudacxx/include/cuda/__ptx/instructions/generated/shl.h is excluded by !**/generated/**
  • libcudacxx/include/cuda/__ptx/instructions/generated/shr.h is excluded by !**/generated/**
  • libcudacxx/include/cuda/__ptx/instructions/generated/st.h is excluded by !**/generated/**
  • libcudacxx/include/cuda/__ptx/instructions/generated/st_async.h is excluded by !**/generated/**
  • libcudacxx/include/cuda/__ptx/instructions/generated/st_bulk.h is excluded by !**/generated/**
  • libcudacxx/include/cuda/__ptx/instructions/generated/stmatrix.h is excluded by !**/generated/**
  • libcudacxx/include/cuda/__ptx/instructions/generated/tcgen05_alloc.h is excluded by !**/generated/**
  • libcudacxx/include/cuda/__ptx/instructions/generated/tcgen05_commit.h is excluded by !**/generated/**
  • libcudacxx/include/cuda/__ptx/instructions/generated/tcgen05_cp.h is excluded by !**/generated/**
  • libcudacxx/include/cuda/__ptx/instructions/generated/tcgen05_fence.h is excluded by !**/generated/**
  • libcudacxx/include/cuda/__ptx/instructions/generated/tcgen05_ld.h is excluded by !**/generated/**
  • libcudacxx/include/cuda/__ptx/instructions/generated/tcgen05_mma.h is excluded by !**/generated/**
  • libcudacxx/include/cuda/__ptx/instructions/generated/tcgen05_mma_sp.h is excluded by !**/generated/**
  • libcudacxx/include/cuda/__ptx/instructions/generated/tcgen05_mma_ws.h is excluded by !**/generated/**
  • libcudacxx/include/cuda/__ptx/instructions/generated/tcgen05_shift.h is excluded by !**/generated/**
  • libcudacxx/include/cuda/__ptx/instructions/generated/tcgen05_st.h is excluded by !**/generated/**
  • libcudacxx/include/cuda/__ptx/instructions/generated/tcgen05_wait.h is excluded by !**/generated/**
  • libcudacxx/include/cuda/__ptx/instructions/generated/tensormap_cp_fenceproxy.h is excluded by !**/generated/**
  • libcudacxx/include/cuda/__ptx/instructions/generated/tensormap_replace.h is excluded by !**/generated/**
  • libcudacxx/include/cuda/__ptx/instructions/generated/trap.h is excluded by !**/generated/**
  • libcudacxx/test/libcudacxx/cuda/ptx/generated/applypriority_async_bulk.h is excluded by !**/generated/**
  • libcudacxx/test/libcudacxx/cuda/ptx/generated/clusterlaunchcontrol.h is excluded by !**/generated/**
  • libcudacxx/test/libcudacxx/cuda/ptx/generated/cp_async_bulk.h is excluded by !**/generated/**
  • libcudacxx/test/libcudacxx/cuda/ptx/generated/cp_async_bulk_multicast.h is excluded by !**/generated/**
  • libcudacxx/test/libcudacxx/cuda/ptx/generated/cp_async_bulk_prefetch.h is excluded by !**/generated/**
  • libcudacxx/test/libcudacxx/cuda/ptx/generated/cp_async_bulk_prefetch_tensor.h is excluded by !**/generated/**
  • libcudacxx/test/libcudacxx/cuda/ptx/generated/cp_async_bulk_tensor.h is excluded by !**/generated/**
  • libcudacxx/test/libcudacxx/cuda/ptx/generated/cp_async_bulk_tensor_gather_scatter.h is excluded by !**/generated/**
  • libcudacxx/test/libcudacxx/cuda/ptx/generated/cp_async_bulk_tensor_multicast.h is excluded by !**/generated/**
  • libcudacxx/test/libcudacxx/cuda/ptx/generated/cp_reduce_async_bulk_tensor.h is excluded by !**/generated/**
  • libcudacxx/test/libcudacxx/cuda/ptx/generated/fabric_submit.h is excluded by !**/generated/**
  • libcudacxx/test/libcudacxx/cuda/ptx/generated/fabric_try_get.h is excluded by !**/generated/**
  • libcudacxx/test/libcudacxx/cuda/ptx/generated/fabric_try_pullred.h is excluded by !**/generated/**
  • libcudacxx/test/libcudacxx/cuda/ptx/generated/fabric_try_put.h is excluded by !**/generated/**
  • libcudacxx/test/libcudacxx/cuda/ptx/generated/fabric_try_red.h is excluded by !**/generated/**
  • libcudacxx/test/libcudacxx/cuda/ptx/generated/fabric_wait.h is excluded by !**/generated/**
  • libcudacxx/test/libcudacxx/cuda/ptx/generated/fence_proxy_alias.h is excluded by !**/generated/**
  • libcudacxx/test/libcudacxx/cuda/ptx/generated/fence_proxy_async_generic_sync_restrict.h is excluded by !**/generated/**
  • libcudacxx/test/libcudacxx/cuda/ptx/generated/fence_proxy_fabric_fabric_alias.h is excluded by !**/generated/**
  • libcudacxx/test/libcudacxx/cuda/ptx/generated/fence_proxy_fabric_generic_alias.h is excluded by !**/generated/**
  • libcudacxx/test/libcudacxx/cuda/ptx/generated/fence_proxy_generic_fabric_alias.h is excluded by !**/generated/**
  • libcudacxx/test/libcudacxx/cuda/ptx/generated/ldmatrix.h is excluded by !**/generated/**
  • libcudacxx/test/libcudacxx/cuda/ptx/generated/mbarrier_arrive.h is excluded by !**/generated/**
  • libcudacxx/test/libcudacxx/cuda/ptx/generated/mbarrier_arrive_drop.h is excluded by !**/generated/**
  • libcudacxx/test/libcudacxx/cuda/ptx/generated/mbarrier_check_layout.h is excluded by !**/generated/**
  • libcudacxx/test/libcudacxx/cuda/ptx/generated/mbarrier_complete_tx.h is excluded by !**/generated/**
  • libcudacxx/test/libcudacxx/cuda/ptx/generated/mbarrier_init.h is excluded by !**/generated/**
  • libcudacxx/test/libcudacxx/cuda/ptx/generated/mbarrier_pending_count.h is excluded by !**/generated/**
  • libcudacxx/test/libcudacxx/cuda/ptx/generated/mbarrier_test_wait.h is excluded by !**/generated/**
  • libcudacxx/test/libcudacxx/cuda/ptx/generated/mbarrier_test_wait_parity.h is excluded by !**/generated/**
  • libcudacxx/test/libcudacxx/cuda/ptx/generated/mbarrier_try_wait.h is excluded by !**/generated/**
  • libcudacxx/test/libcudacxx/cuda/ptx/generated/mbarrier_try_wait_parity.h is excluded by !**/generated/**
  • libcudacxx/test/libcudacxx/cuda/ptx/generated/prefetch.h is excluded by !**/generated/**
  • libcudacxx/test/libcudacxx/cuda/ptx/generated/setmaxnreg.h is excluded by !**/generated/**
  • libcudacxx/test/libcudacxx/cuda/ptx/generated/stmatrix.h is excluded by !**/generated/**
  • libcudacxx/test/libcudacxx/cuda/ptx/generated/tcgen05_alloc.h is excluded by !**/generated/**
  • libcudacxx/test/libcudacxx/cuda/ptx/generated/tcgen05_alloc_cta_group_1.h is excluded by !**/generated/**
  • libcudacxx/test/libcudacxx/cuda/ptx/generated/tcgen05_alloc_cta_group_2.h is excluded by !**/generated/**
  • libcudacxx/test/libcudacxx/cuda/ptx/generated/tcgen05_commit.h is excluded by !**/generated/**
  • libcudacxx/test/libcudacxx/cuda/ptx/generated/tcgen05_commit_cta_group_1.h is excluded by !**/generated/**
  • libcudacxx/test/libcudacxx/cuda/ptx/generated/tcgen05_commit_cta_group_2.h is excluded by !**/generated/**
  • libcudacxx/test/libcudacxx/cuda/ptx/generated/tcgen05_cp.h is excluded by !**/generated/**
  • libcudacxx/test/libcudacxx/cuda/ptx/generated/tcgen05_cp_cta_group_1.h is excluded by !**/generated/**
  • libcudacxx/test/libcudacxx/cuda/ptx/generated/tcgen05_cp_cta_group_2.h is excluded by !**/generated/**
  • libcudacxx/test/libcudacxx/cuda/ptx/generated/tcgen05_fence.h is excluded by !**/generated/**
  • libcudacxx/test/libcudacxx/cuda/ptx/generated/tcgen05_ld.h is excluded by !**/generated/**
  • libcudacxx/test/libcudacxx/cuda/ptx/generated/tcgen05_mma.h is excluded by !**/generated/**
  • libcudacxx/test/libcudacxx/cuda/ptx/generated/tcgen05_mma_cta_group_2.h is excluded by !**/generated/**
  • libcudacxx/test/libcudacxx/cuda/ptx/generated/tcgen05_mma_sp.h is excluded by !**/generated/**
  • libcudacxx/test/libcudacxx/cuda/ptx/generated/tcgen05_mma_ws.h is excluded by !**/generated/**
  • libcudacxx/test/libcudacxx/cuda/ptx/generated/tcgen05_shift.h is excluded by !**/generated/**
  • libcudacxx/test/libcudacxx/cuda/ptx/generated/tcgen05_shift_cta_group_2.h is excluded by !**/generated/**
  • libcudacxx/test/libcudacxx/cuda/ptx/generated/tcgen05_st.h is excluded by !**/generated/**
  • libcudacxx/test/libcudacxx/cuda/ptx/generated/tcgen05_wait.h is excluded by !**/generated/**
  • libcudacxx/test/libcudacxx/cuda/ptx/generated/tensormap_replace.h is excluded by !**/generated/**
📒 Files selected for processing (54)
  • libcudacxx/include/cuda/__ptx/instructions/applypriority_async_bulk.h
  • libcudacxx/include/cuda/__ptx/instructions/cp_async_bulk_prefetch.h
  • libcudacxx/include/cuda/__ptx/instructions/cp_async_bulk_prefetch_tensor.h
  • libcudacxx/include/cuda/__ptx/instructions/cp_async_mbarrier_arrive_noinc.h
  • libcudacxx/include/cuda/__ptx/instructions/fabric_submit.h
  • libcudacxx/include/cuda/__ptx/instructions/fabric_try_get.h
  • libcudacxx/include/cuda/__ptx/instructions/fabric_try_pullred.h
  • libcudacxx/include/cuda/__ptx/instructions/fabric_try_put.h
  • libcudacxx/include/cuda/__ptx/instructions/fabric_try_red.h
  • libcudacxx/include/cuda/__ptx/instructions/fabric_wait.h
  • libcudacxx/include/cuda/__ptx/instructions/fence.h
  • libcudacxx/include/cuda/__ptx/instructions/ldmatrix.h
  • libcudacxx/include/cuda/__ptx/instructions/mbarrier_arrive.h
  • libcudacxx/include/cuda/__ptx/instructions/mbarrier_check_layout.h
  • libcudacxx/include/cuda/__ptx/instructions/mbarrier_complete_tx.h
  • libcudacxx/include/cuda/__ptx/instructions/mbarrier_pending_count.h
  • libcudacxx/include/cuda/__ptx/instructions/prefetch.h
  • libcudacxx/include/cuda/__ptx/instructions/stmatrix.h
  • libcudacxx/include/cuda/__ptx/instructions/tcgen05_mma.h
  • libcudacxx/include/cuda/__ptx/ptx_dot_variants.h
  • libcudacxx/include/cuda/ptx
  • libcudacxx/include/nv/detail/__target_macros
  • libcudacxx/include/nv/target
  • libcudacxx/test/libcudacxx/cuda/ptx/ptx.applypriority.async.bulk.compile.pass.cpp
  • libcudacxx/test/libcudacxx/cuda/ptx/ptx.cp.async.bulk.compile.pass.cpp
  • libcudacxx/test/libcudacxx/cuda/ptx/ptx.cp.async.bulk.prefetch.compile.pass.cpp
  • libcudacxx/test/libcudacxx/cuda/ptx/ptx.cp.async.bulk.prefetch.tensor.compile.pass.cpp
  • libcudacxx/test/libcudacxx/cuda/ptx/ptx.cp.async.bulk.tensor.compile.pass.cpp
  • libcudacxx/test/libcudacxx/cuda/ptx/ptx.fabric.submit.compile.pass.cpp
  • libcudacxx/test/libcudacxx/cuda/ptx/ptx.fabric.try.get.compile.pass.cpp
  • libcudacxx/test/libcudacxx/cuda/ptx/ptx.fabric.try.pullred.compile.pass.cpp
  • libcudacxx/test/libcudacxx/cuda/ptx/ptx.fabric.try.put.compile.pass.cpp
  • libcudacxx/test/libcudacxx/cuda/ptx/ptx.fabric.try.red.compile.pass.cpp
  • libcudacxx/test/libcudacxx/cuda/ptx/ptx.fabric.wait.compile.pass.cpp
  • libcudacxx/test/libcudacxx/cuda/ptx/ptx.fence.compile.pass.cpp
  • libcudacxx/test/libcudacxx/cuda/ptx/ptx.ldmatrix.compile.pass.cpp
  • libcudacxx/test/libcudacxx/cuda/ptx/ptx.mbarrier.arrive.compile.pass.cpp
  • libcudacxx/test/libcudacxx/cuda/ptx/ptx.mbarrier.check.layout.compile.pass.cpp
  • libcudacxx/test/libcudacxx/cuda/ptx/ptx.mbarrier.complete.tx.compile.pass.cpp
  • libcudacxx/test/libcudacxx/cuda/ptx/ptx.mbarrier.pending.count.compile.pass.cpp
  • libcudacxx/test/libcudacxx/cuda/ptx/ptx.prefetch.compile.pass.cpp
  • libcudacxx/test/libcudacxx/cuda/ptx/ptx.stmatrix.compile.pass.cpp
  • libcudacxx/test/libcudacxx/cuda/ptx/ptx.tcgen05.alloc.compile.pass.cpp
  • libcudacxx/test/libcudacxx/cuda/ptx/ptx.tcgen05.alloc.cta_group_1.compile.pass.cpp
  • libcudacxx/test/libcudacxx/cuda/ptx/ptx.tcgen05.alloc.cta_group_2.compile.pass.cpp
  • libcudacxx/test/libcudacxx/cuda/ptx/ptx.tcgen05.commit.compile.pass.cpp
  • libcudacxx/test/libcudacxx/cuda/ptx/ptx.tcgen05.commit.cta_group_2.compile.pass.cpp
  • libcudacxx/test/libcudacxx/cuda/ptx/ptx.tcgen05.cp.compile.pass.cpp
  • libcudacxx/test/libcudacxx/cuda/ptx/ptx.tcgen05.mma.compile.pass.cpp
  • libcudacxx/test/libcudacxx/cuda/ptx/ptx.tcgen05.mma.cta_group_2.compile.pass.cpp
  • libcudacxx/test/libcudacxx/cuda/ptx/ptx.tcgen05.shift.compile.pass.cpp
  • libcudacxx/test/libcudacxx/cuda/ptx/ptx.tcgen05.shift.cta_group_1.compile.pass.cpp
  • libcudacxx/test/libcudacxx/cuda/ptx/ptx.tcgen05.shift.cta_group_2.compile.pass.cpp
  • libcudacxx/test/utils/libcudacxx/test/format.py

Comment on lines +245 to +282
template <dot_phase_type __phase>
using mbarrier_phase_t = ::cuda::std::integral_constant<dot_phase_type, __phase>;

using mbarrier_phase_primary_t = mbarrier_phase_t<dot_phase_type::primary>;
using mbarrier_phase_conditional_t = mbarrier_phase_t<dot_phase_type::conditional>;

[[maybe_unused]] static constexpr mbarrier_phase_primary_t mbarrier_phase_primary{};
[[maybe_unused]] static constexpr mbarrier_phase_conditional_t mbarrier_phase_conditional{};

template <dot_layout __layout>
using layout_t = ::cuda::std::integral_constant<dot_layout, __layout>;

using layout_v0_t = layout_t<dot_layout::v0>;
using layout_v1_t = layout_t<dot_layout::v1>;

[[maybe_unused]] static constexpr layout_v0_t layout_v0{};
[[maybe_unused]] static constexpr layout_v1_t layout_v1{};

template <int n>
using n32_t = ::cuda::std::integral_constant<int, n>;

template <dot_report_mechanism __report_mechanism>
using report_mechanism_t = ::cuda::std::integral_constant<dot_report_mechanism, __report_mechanism>;
using mbarrier_report_disabled_t = report_mechanism_t<dot_report_mechanism::disabled>;
using mbarrier_report_valid_per_16bytes_80000000_t = report_mechanism_t<dot_report_mechanism::per_16bytes_80000000>;
using mbarrier_report_valid_per_16bytes_8000_t = report_mechanism_t<dot_report_mechanism::per_16bytes_8000>;
using mbarrier_report_valid_per_16bytes_80_t = report_mechanism_t<dot_report_mechanism::per_16bytes_80>;
using mbarrier_report_valid_per_16bytes_8_t = report_mechanism_t<dot_report_mechanism::per_16bytes_8>;
using mbarrier_report_valid_per_element_ff_t = report_mechanism_t<dot_report_mechanism::per_element_ff>;

[[maybe_unused]] static constexpr mbarrier_report_disabled_t mbarrier_report_disabled{};
[[maybe_unused]] static constexpr mbarrier_report_valid_per_16bytes_80000000_t
mbarrier_report_valid_per_16bytes_80000000{};
[[maybe_unused]] static constexpr mbarrier_report_valid_per_16bytes_8000_t mbarrier_report_valid_per_16bytes_8000{};
[[maybe_unused]] static constexpr mbarrier_report_valid_per_16bytes_80_t mbarrier_report_valid_per_16bytes_80{};
[[maybe_unused]] static constexpr mbarrier_report_valid_per_16bytes_8_t mbarrier_report_valid_per_16bytes_8{};
[[maybe_unused]] static constexpr mbarrier_report_valid_per_element_ff_t mbarrier_report_valid_per_element_ff{};

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

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

📐 Maintainability & Code Quality | 🟠 Major | ⚡ Quick win

suggestion: Replace the namespace-scope static constexpr instances with inline constexpr. This applies to the phase, layout, and report-mechanism objects at Line 251-252, Line 260-261, and Line 275-281.

As per coding guidelines, all namespace- or global-scope constexpr variables must also be inline.

Source: Coding guidelines

Comment on lines +72 to +110
#include <cuda/__ptx/instructions/applypriority_async_bulk.h>
#include <cuda/__ptx/instructions/barrier_cluster.h>
#include <cuda/__ptx/instructions/bfind.h>
#include <cuda/__ptx/instructions/bmsk.h>
#include <cuda/__ptx/instructions/clusterlaunchcontrol.h>
#include <cuda/__ptx/instructions/cp_async_bulk.h>
#include <cuda/__ptx/instructions/cp_async_bulk_commit_group.h>
#include <cuda/__ptx/instructions/cp_async_bulk_prefetch.h>
#include <cuda/__ptx/instructions/cp_async_bulk_prefetch_tensor.h>
#include <cuda/__ptx/instructions/cp_async_bulk_tensor.h>
#include <cuda/__ptx/instructions/cp_async_bulk_wait_group.h>
#include <cuda/__ptx/instructions/cp_async_mbarrier_arrive.h>
#include <cuda/__ptx/instructions/cp_reduce_async_bulk.h>
#include <cuda/__ptx/instructions/cp_reduce_async_bulk_tensor.h>
#include <cuda/__ptx/instructions/elect_sync.h>
#include <cuda/__ptx/instructions/exit.h>
#include <cuda/__ptx/instructions/fabric_submit.h>
#include <cuda/__ptx/instructions/fabric_try_get.h>
#include <cuda/__ptx/instructions/fabric_try_pullred.h>
#include <cuda/__ptx/instructions/fabric_try_put.h>
#include <cuda/__ptx/instructions/fabric_try_red.h>
#include <cuda/__ptx/instructions/fabric_wait.h>
#include <cuda/__ptx/instructions/fence.h>
#include <cuda/__ptx/instructions/get_sreg.h>
#include <cuda/__ptx/instructions/getctarank.h>
#include <cuda/__ptx/instructions/ld.h>
#include <cuda/__ptx/instructions/ldmatrix.h>
#include <cuda/__ptx/instructions/mbarrier_arrive.h>
#include <cuda/__ptx/instructions/mbarrier_check_layout.h>
#include <cuda/__ptx/instructions/mbarrier_complete_tx.h>
#include <cuda/__ptx/instructions/mbarrier_expect_tx.h>
#include <cuda/__ptx/instructions/mbarrier_init.h>
#include <cuda/__ptx/instructions/mbarrier_inval.h>
#include <cuda/__ptx/instructions/mbarrier_pending_count.h>
#include <cuda/__ptx/instructions/mbarrier_wait.h>
#include <cuda/__ptx/instructions/multimem_ld_reduce.h>
#include <cuda/__ptx/instructions/multimem_red.h>
#include <cuda/__ptx/instructions/multimem_st.h>
#include <cuda/__ptx/instructions/prefetch.h>

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

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

🎯 Functional Correctness | 🟠 Major | ⚡ Quick win

important: Export cp_async_mbarrier_arrive_noinc through <cuda/ptx>. The new wrapper at libcudacxx/include/cuda/__ptx/instructions/cp_async_mbarrier_arrive_noinc.h is not included in this aggregate list, so users must include the lower-level wrapper directly to access it. Add #include <cuda/__ptx/instructions/cp_async_mbarrier_arrive_noinc.h> next to the existing cp_async_mbarrier_arrive.h include.

@github-actions

Copy link
Copy Markdown
Contributor

😬 CI Workflow Results

🟥 Finished in 4h 42m: Pass: 96%/120 | Total: 7d 03h | Max: 4h 41m | Hits: 34%/3583257

See results here.

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

Labels

None yet

Projects

Status: In Review

Development

Successfully merging this pull request may close these issues.

1 participant