Skip to content

feat(example): validate P4251R0 data-movement listings#299

Merged
sgerbino merged 1 commit into
cppalliance:developfrom
sgerbino:feature/cuda-datamovement-compile
Jun 2, 2026
Merged

feat(example): validate P4251R0 data-movement listings#299
sgerbino merged 1 commit into
cppalliance:developfrom
sgerbino:feature/cuda-datamovement-compile

Conversation

@sgerbino
Copy link
Copy Markdown
Collaborator

@sgerbino sgerbino commented Jun 2, 2026

Compile-time validation that the code listings from P4251R0 "IoAwaitables for GPU Data Movement" are type-correct against the real boost::capy API, split by dependency so the non-GPU parts need no CUDA toolchain.

example/cuda/datamovement (CUDA, compile-only): the hand-rolled awaiter, cuda_stream (memcpy/synchronize as IoAwaitables, plus optional NCCL interop), cuda_device_stream as a WriteStream with link-time transport polymorphism, and a coroutine-driven CUDA Graph replay. Gated by BOOST_CAPY_BUILD_CUDA_EXAMPLES.

example/cuda/pipeline (CUDA + nvexec): the await_sender / as_sender bridges composing capy coroutines with nvexec senders, including a compile-only inference-handler that the paper's verbatim listing cannot express on nvexec (host call under a device-side then). Gated by BOOST_CAPY_BUILD_NVEXEC_EXAMPLES.

example/fabrics (no CUDA): the transport-neutral listings, a byte-oriented compound-result coroutine and the HPC-fabric send signatures (ibv_post_send, fi_send, ucp_tag_send_nbx), each compiled against the real library when found.

CMake enables the CUDA language once for either CUDA example set. The code-to-paper-section mapping is kept out of the tree (local FINDINGS.md).

Compile-time validation that the code listings from P4251R0 "IoAwaitables
for GPU Data Movement" are type-correct against the real boost::capy API,
split by dependency so the non-GPU parts need no CUDA toolchain.

example/cuda/datamovement (CUDA, compile-only): the hand-rolled awaiter,
cuda_stream (memcpy/synchronize as IoAwaitables, plus optional NCCL
interop), cuda_device_stream as a WriteStream with link-time transport
polymorphism, and a coroutine-driven CUDA Graph replay. Gated by
BOOST_CAPY_BUILD_CUDA_EXAMPLES.

example/cuda/pipeline (CUDA + nvexec): the await_sender / as_sender
bridges composing capy coroutines with nvexec senders, including a
compile-only inference-handler that the paper's verbatim listing cannot
express on nvexec (host call under a device-side then). Gated by
BOOST_CAPY_BUILD_NVEXEC_EXAMPLES.

example/fabrics (no CUDA): the transport-neutral listings, a byte-oriented
compound-result coroutine and the HPC-fabric send signatures
(ibv_post_send, fi_send, ucp_tag_send_nbx), each compiled against the real
library when found.

CMake enables the CUDA language once for either CUDA example set. The
code-to-paper-section mapping is kept out of the tree (local FINDINGS.md).
@cppalliance-bot
Copy link
Copy Markdown

An automated preview of the documentation is available at https://299.capy.prtest3.cppalliance.org/index.html

If more commits are pushed to the pull request, the docs will rebuild at the same URL.

2026-06-02 15:56:59 UTC

@codecov
Copy link
Copy Markdown

codecov Bot commented Jun 2, 2026

Codecov Report

✅ All modified and coverable lines are covered by tests.
✅ Project coverage is 92.24%. Comparing base (2919c7e) to head (cd940f9).

Additional details and impacted files

Impacted file tree graph

@@             Coverage Diff             @@
##           develop     #299      +/-   ##
===========================================
- Coverage    92.27%   92.24%   -0.03%     
===========================================
  Files          164      164              
  Lines         8862     8862              
===========================================
- Hits          8177     8175       -2     
- Misses         685      687       +2     
Flag Coverage Δ
linux 92.26% <ø> (ø)

Flags with carried forward coverage won't be shown. Click here to find out more.
see 1 file with indirect coverage changes


Continue to review full report in Codecov by Sentry.

Legend - Click here to learn more
Δ = absolute <relative> (impact), ø = not affected, ? = missing data
Powered by Codecov. Last update 2919c7e...cd940f9. Read the comment docs.

🚀 New features to boost your workflow:
  • ❄️ Test Analytics: Detect flaky tests, report on failures, and find test suite problems.

@cppalliance-bot
Copy link
Copy Markdown

GCOVR code coverage report https://299.capy.prtest3.cppalliance.org/gcovr/index.html
LCOV code coverage report https://299.capy.prtest3.cppalliance.org/genhtml/index.html
Coverage Diff Report https://299.capy.prtest3.cppalliance.org/diff-report/index.html

Build time: 2026-06-02 16:14:10 UTC

@sgerbino sgerbino merged commit 98be9fd into cppalliance:develop Jun 2, 2026
38 checks passed
@sgerbino sgerbino deleted the feature/cuda-datamovement-compile branch June 2, 2026 16:35
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