[BUG]: cudax test failures on MSVC: vector_add wrong result; stdexec_stream segfault
- Dominant language
- C++
- Stars
- 2.5k
- Forks
- 486
- Avg merge
- 2d 6h
- Merged PRs (30d)
- 295
Description
### Type of Bug
Runtime Error
### Component
CUDA Experimental (cudax)
### Describe the bug
Two cudax example-based tests fail at runtime on Windows + MSVC with CTK 13.X. Builds succeed; failures are runtime-only.
| Test | Symptom |
|---|---|
| `vector_add` | Returns wrong result at element 0 (mismatch reported against `A[0]+B[0]`) |
| `stdexec_stream` | SegFault during the `schedule \| then \| bulk \| continues_on \| sync_wait` chain |
Static analysis of `cudax/examples/vector_add.cu`, `cudax/examples/stdexec_stream.cu`, and `cudax/examples/vector.cuh` did not surface an obvious bug. The failure pattern (different modes on the same configurations, both runtime-only, build clean) points to a Windows + CTK 13.X + cudax-internal interaction that needs a real repro by the cudax team.
Discovered while enabling cudax MSVC GPU jobs in #5725. cudax tests are currently excluded on MSVC in that PR to unblock it; this issue tracks re-enabling them after the underlying failures are fixed.
### How to Reproduce
Branch with an override matrix that runs only the failing jobs: `NVIDIA/cccl:bug/cudax_msvc_tests` (#8903).
Local repro on a Windows host with CTK 13.X + MSVC:
1. Check out the branch above.
2. Configure cudax with MSVC + std=20.
3. Build and run `cudax.cpp20.example.vector_add` and `cudax.cpp20.example.stdexec_stream`.
CI on the linked PR runs the two affected jobs across all available Windows GPUs (a100, h100, l4, rtx2080, rtx4090, rtxa6000), so CI logs can be used as the reference repro.
### Expected behavior
Both tests pass on MSVC + CTK 13.X across the supported Windows GPUs, matching their behavior on Linux toolchains.
### Operating System
Windows (CI runner image)
### NVCC version
CTK 13.X (CTK 13.2 specifically observed in CI)
Contributor guide
Assessment
This issue has not been assessed yet.