55 *
66 * Architecture:
77 * PlatformTraits<P> — platform-level: Intrin, Atomic
8- * CommTraits<D> — backend-level: Window, DevComm , Team, ...
8+ * CommTraits<D> — backend-level: Window, Comm , Team, ...
99 * Fallback<PlatformTag> — common IPC fallback (partial specialization)
1010 *
1111 * CommTraits pulls in platform capabilities via using-aliases (not
1414 * types that work with any platform.
1515 *
1616 * Selection:
17- * NVIDIA + NCCL > 2.28: DeviceAPI = CommTraits<NvidiaVendor>
17+ * NVIDIA + NCCL > 2.28: DeviceAPI = CommTraits<NvidiaVendor>
1818 * NVIDIA + fallback: DeviceAPI = CommTraits<Fallback<NvidiaPlatform>>
1919 *
2020 * Kernel code uses DeviceAPI::* exclusively, no #ifdef branches.
@@ -36,51 +36,49 @@ template <typename PlatformTag>
3636struct Fallback {};
3737
3838// ============================================================
39- // Action types for one-sided operations (needed by traits Net types).
39+ // Action types for one-sided operations (needed by traits Transport types).
4040// Pure POD structs with no device builtins.
4141// ============================================================
42- typedef uint32_t flagcxDevNetSignal_t ;
43- typedef uint32_t flagcxDevNetCounter_t ;
42+ typedef uint32_t flagcxDevTransportSignal_t ;
43+ typedef uint32_t flagcxDevTransportCounter_t ;
4444
45- struct flagcxDevNet_None {};
46- struct flagcxDevNet_SignalInc {
47- flagcxDevNetSignal_t signal;
45+ struct flagcxDevTransport_None {};
46+ struct flagcxDevTransport_SignalInc {
47+ flagcxDevTransportSignal_t signal;
4848};
49- struct flagcxDevNet_SignalAdd {
50- flagcxDevNetSignal_t signal;
49+ struct flagcxDevTransport_SignalAdd {
50+ flagcxDevTransportSignal_t signal;
5151 uint64_t value;
5252};
53- struct flagcxDevNet_CounterInc {
54- flagcxDevNetCounter_t counter;
53+ struct flagcxDevTransport_CounterInc {
54+ flagcxDevTransportCounter_t counter;
5555};
5656
5757// Shared memory descriptor for NIC descriptor optimization.
58- // Uses void* on all paths; vendor Net casts to native type in toNccl().
58+ // Uses void* on all paths; vendor Transport casts to native type in toNccl().
5959struct flagcxDescriptorSmem {
6060 void *_impl = nullptr ;
6161};
6262
63- struct flagcxDevNet_DescriptorSmem {
63+ struct flagcxDevTransport_DescriptorSmem {
6464 flagcxDescriptorSmem smem;
6565};
6666
6767// Fence level enum — available on all tiers for unified barrier API
68- enum class flagcxGinFenceLevel { Relaxed };
68+ enum class flagcxTransportFenceLevel { Relaxed };
6969
7070// ============================================================
71- // Barrier tag types for DevBarrier<Backend, Tag> dispatch.
71+ // Unified team/barrier tag types.
72+ // Used as both Barrier<Backend, Tag> template parameter
73+ // and as ctor dispatch tags — eliminating the old two-tag redundancy.
7274// ============================================================
73- struct flagcxBarrierIntra {};
74- struct flagcxBarrierInter {};
75- struct flagcxBarrierWorld {
76- struct World {}; // tag for world-barrier ctor
77- struct Intra {}; // tag for intra-only ctor
78- struct Inter {}; // tag for inter-only ctor
79- };
75+ struct flagcxTeamTagIntra {};
76+ struct flagcxTeamTagInter {};
77+ struct flagcxTeamTagWorld {};
8078
8179// Primary template — each backend provides specializations
82- template <typename Backend, typename BarrierTag , typename Coop>
83- struct DevBarrier ;
80+ template <typename Backend, typename Tag , typename Coop>
81+ struct Barrier ;
8482
8583// Vendor specializations + DeviceAPI selection
8684#if defined(USE_NVIDIA_ADAPTOR)
0 commit comments