Skip to content

(cco) impl sdma transport in cco primitives#454

Open
QizhouZhang97 wants to merge 12 commits into
mainfrom
dev/sdma_adapt_main
Open

(cco) impl sdma transport in cco primitives#454
QizhouZhang97 wants to merge 12 commits into
mainfrom
dev/sdma_adapt_main

Conversation

@QizhouZhang97

@QizhouZhang97 QizhouZhang97 commented Jul 7, 2026

Copy link
Copy Markdown
Contributor

Motivation

cco primitives support P2P and RDMA/IBGDA but lack an intra-node SDMA (copy-engine) path. SDMA offloads bulk intra-node GPU-to-GPU copies onto the dedicated DMA engines, freeing CUs for compute and improving bandwidth for large transfers. This PR adds SDMA as a first-class transport behind the cco device API.

Technical Details

New device-only ccoSdma session (guarded by HIPCC/CUDACC) built on ccoDevComm::sdma, addressing peers by LSA rank.
Exposes put / get / quiet, each templated on Coop:
ccoCoopThread — a single thread drives one queue (queueId).
ccoCoopWarp — a warp drives all queues, one lane per queue, splitting bytes across sdmaNumQueue.
put/get are non-blocking: each appends COPY + ATOMIC(signal++) on the queue and bumps the expected count; completion lands in the local signal pool and is awaited by quiet.
Fixes SdmaPutWarp slicing: each queue owns a contiguous slice and the last queue absorbs the remainder, so uneven sizes are fully covered.

Test Plan

tests/cpp/cco/test_sdma_put.cpp and test_sdma_get.cpp: thread- and warp-scope alltoall put/get across all ranks on an 8-GPU node, plus benchmark updates for SDMA.

Tests

on n09-355 & on banff 300, sdma put/get/put_mt passed

@QizhouZhang97

Copy link
Copy Markdown
Contributor Author

@claude

@QizhouZhang97

Copy link
Copy Markdown
Contributor Author

@Copilot

@QizhouZhang97 QizhouZhang97 force-pushed the dev/sdma_adapt_main branch from 0feb744 to 882e559 Compare July 8, 2026 11:42
@QizhouZhang97

Copy link
Copy Markdown
Contributor Author

@claude

@jhchouuu

Copy link
Copy Markdown
Collaborator

@claude review

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

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants