cuStreamWaitValue32 programming guide not found


I am trying to use the API cuStreamWaitValue32 in Driver API, and I find that there are a new note in 11.8 which says that I can find some guides code in programming guide. But I can’t find it.

Warning: Improper use of this API may deadlock the application. Synchronization ordering established through this API is not visible to CUDA. CUDA tasks that are (even indirectly) ordered by this API should also have that order expressed with CUDA-visible dependencies such as events. This ensures that the scheduler does not serialize them in an improper order. For more information, see the Stream Memory Operations section in the programming guide(CUDA C++ Programming Guide).

Can anyone help me to find the right place where the guide is?

Thanks very much.

I don’t believe there is any such section and I have filed an internal bug (3930407) to have the documentation updated.

In the meantime the warning is equivalent to giving a warning about using atomics to interlock two pieces of code. Atomics can ensure that a value is not consumed until it is ready/has been produced (for example) but they (alone) cannot ensure that the scheduler schedules the producer of that value before or during the scheduling of the consumer of that value. That necessity is still left to the CUDA programmer, and as an example cudaStreamWaitEvent() could be used to force one stream to wait on scheduling the consumer until the producer has been scheduled in another stream. An atomic interlock then would have the opportunity to be satisfied, avoiding deadlock.

Hi Robert,
Thank you very much for the reply.
Does this bug have any new update yet?

no it does not, and I won’t be able to provide an update every so often. If you’d like your own tracking of it, please file a bug. Alternatively, you can keep an eye on/check on the relevant guide section where you extracted your warning quote from. I won’t be able to respond to further requests of this type. I doubt the bug will move quickly.