feat(example): validate P4251R0 data-movement listings#299
Conversation
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).
|
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 Report✅ All modified and coverable lines are covered by tests. Additional details and impacted files@@ 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
Flags with carried forward coverage won't be shown. Click here to find out more. Continue to review full report in Codecov by Sentry.
🚀 New features to boost your workflow:
|
|
GCOVR code coverage report https://299.capy.prtest3.cppalliance.org/gcovr/index.html Build time: 2026-06-02 16:14:10 UTC |
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).