NVIDIA / NVIDIA/stdexec

Forward progress: questioning `weakly_parallel` guarantee of stream scheduler

Open
#1,605 1 comment 0 reactions 0 assignees View on GitHub

Nobody has claimed this yet.

Dominant language
C++
Stars
2.4k
Forks
270
Avg merge
3d 6h
Merged PRs (30d)
39

Description

We are wondering why the stream scheduler advertises its forward progress guarantee as weakly_parallel:

https://github.com/NVIDIA/stdexec/blob/e5dbe49a5257d29adee456f9f653acb00df634f5/include/nvexec/stream_context.cuh#L47-L49

Indeed, this page on the Cuda execution model,

https://nvidia.github.io/cccl/libcudacxx/extended_api/execution_model.html

mentions that

If the host implementation provides concurrent forward progress, then CUDA C++ provides parallel forward progress for device threads.

As potential reasons for the stream scheduler advertising only weakly_parallel, we have thought about the host implementation not necessarily providing concurrent forward progress and about the cuda architecture not necessarily providing independent thread scheduling prior to volta. But we are not sure. And so hence our question.

Also noting that we did see the same forward progress guarantee used in the new work in cudax.

Thanks in advance!

Joint work with @romintomasetti.

Contributor guide

No contributing guide indexed for this repository

First steps

  1. Read the whole issue, then the project's contributing guide.
  2. Comment on the issue to say you are picking it up — it saves two people doing the same work.
  3. Fork the repository and make your change on a branch.
  4. Open a pull request that references the issue number.

Research direction

Start with include/nvexec/stream_context.cuh at lines 47-49 and read the linked CUDA execution model documentation, focusing on the conditions for parallel forward progress. Compare that explanation with the stream scheduler and the same guarantee in cudax. Done means the guarantee is clarified or the relevant documentation and declarations are updated.

Written by the indexing model from the issue text.

Assessment

Tech stack
cpp
Domain
backend-api-design
Issue type
Documentation
Difficulty
5/5
Estimated time
Over a week
Activity status
Quiet
Clarity
Needs clarification
Newbie friendliness
32/100

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.