CUDA 12 introduces two new API calls, cuStreamGetId() and cuCtxGetId() which return "unique ID"s associated with a stream or a context respectively. I'm struggling to understand why this is useful, or how this would be used. Are the handles for streams and contexts not unique? i.e. does CUDA create copies of CUstream_st and CUctx_st structures with the same values, or which describe the same entities? If it does - under what circumstances?
What are the new unique-id's for CUDA streams and contexts useful for?
332 Views Asked by einpoklum At
1
There are 1 best solutions below
Related Questions in CUDA
- direct global memory access using cuda
- Threads syncronization in CUDA
- Merge sort using CUDA: efficient implementation for small input arrays
- why cuda kernel function costs cpu?
- How to detect NVIDIA CUDA Architecture
- What is the optimal way to use additional data fields in functors in Thrust?
- cuda-memcheck fails to detect memory leak in an R package
- Understanding Dynamic Parallelism in CUDA
- C/CUDA: Only every fourth element in CudaArray can be indexed
- NVCC Cuda 5.0 on Ubuntu 12.04 /usr/lib/libudt.so file format not recognized
- Reduce by key on device array
- Does CUDA include a real c++ library?
- cuMemcpyDtoH yields CUDA_ERROR_INVALID_VALUE
- Different Kernels sharing SMx
- How many parallel threads i can run on my nvidia graphic card in cuda programming?
Related Questions in UNIQUEIDENTIFIER
- How can a same identifier be used for two different things in C & C++?
- Create a unique number based on date and autoincremented number
- Neo4j unique IDs by tree with root node counter?
- Is there a way to associate data with a file in a folder hierarchy?
- identifierForVendor changes on reinstall
- Is there an external library equivalent to BasicFileAttributes in Java? Specifically the method fileKey?
- Does two device will have the same 'UUID'
- How to identify iOS device uniquely instead of using UUID and UDID
- How do I create a unique ID for each night-time period across consecutive dates?
- Testing Automation on React.js
- Make Unique Integer from Two Given Integers Python Numpy
- What set of chars is php's uniqid composed of?
- Generate "Unique" 5 digits ID with javascript (99999 combinations) in random order
- What questions should I ask myself to determine if I need a 'primary key' for my Core Data app?
- Alternative For IdentifierForVendor in ios7 Above
Related Questions in CUDA-STREAMS
- Thrust execution policy issues kernel to default stream
- CUDA streams are blocking despite Async
- How to make multi CUBLAS APIs (eg. cublasDgemm) really execute concurrently in multi cudaStream
- Get rid of busy waiting during asynchronous cuda stream executions
- The behavior of stream 0 (default) and other streams
- What is cuEventRecord guaranteed to do if it gets the default-stream's handle?
- How to reduce CUDA synchronize latency / delay
- What are the new unique-id's for CUDA streams and contexts useful for?
- CUDA cudaMemcpyAsync using single stream to host
- Asynchronous behavior of CUDA events within a CUDA stream
- Using multi streams in cuda graph, the execution order is uncontrolled
- Getting total execution time of all kernels on a CUDA stream
- CUDA graph stream capture with thrust::reduce
- How does the GK110's Hyper-Q enable concurrency of multiple streams?
- CUDA Dynamic Parallelism, bad performance
Related Questions in CUDA-CONTEXT
- CUDA context was created on a GPU that is not currently debuggable
- Intercepting cuda memory management related APIs in cuda11.7 and encountering invalid device context (201) errors
- Why does cuCtxCreate return old context?
- What are the new unique-id's for CUDA streams and contexts useful for?
- How can I determine whether a CUDA context is the primary one - cheaply?
- What does cudaSetDevice() do to a CUDA device's context stack?
- Missing symbol: cuDevicePrimaryCtxRelease vs cuDevicePrimaryCtxRelease_v2
- Do I need provide Gpu context when creating unified memory?
- CUDA context lifetime
- How to reduce CUDA context size (Multi-Process Service)
- create cuda context manager failed
- Cannot create context on NVIDIA device with ECC enabled
- cuCtxGetApiVersion value differs from other version management calls
- cuCtxCreate Fails with CUDA_ERROR_INVALID_DEVICE
- How to create a CUDA context?
Related Questions in CUDA-DRIVER
- What is cuEventRecord guaranteed to do if it gets the default-stream's handle?
- How do I check, programmatically, which targets are available in a cubin?
- Does the CUDA JIT compiler perform device link-time optimization?
- Is it possible to run cuMemset on a CUarray?
- Can I obtain what's used as __nv_nvrtc_builtin_header.h?
- How can I tell whether a copy-node search failed, or whether my node or graph are invalid?
- What type should be pointed to for the result of cuDeviceGetGraphMemAttribute()?
- What are the new unique-id's for CUDA streams and contexts useful for?
- What should I set the flags field of CUDA_BATCH_MEM_OP_NODE_PARAMS?
- CUDA H.265 decoder initialization fault
- How can I determine whether a CUDA context is the primary one - cheaply?
- What does cudaSetDevice() do to a CUDA device's context stack?
- Are CUDA_VERSION and CUDART_VERSION necessarily the same?
- Missing symbol: cuDevicePrimaryCtxRelease vs cuDevicePrimaryCtxRelease_v2
- How can I interact with NVIDIA's JIT compilation cache?
Trending Questions
- UIImageView Frame Doesn't Reflect Constraints
- Is it possible to use adb commands to click on a view by finding its ID?
- How to create a new web character symbol recognizable by html/javascript?
- Why isn't my CSS3 animation smooth in Google Chrome (but very smooth on other browsers)?
- Heap Gives Page Fault
- Connect ffmpeg to Visual Studio 2008
- Both Object- and ValueAnimator jumps when Duration is set above API LvL 24
- How to avoid default initialization of objects in std::vector?
- second argument of the command line arguments in a format other than char** argv or char* argv[]
- How to improve efficiency of algorithm which generates next lexicographic permutation?
- Navigating to the another actvity app getting crash in android
- How to read the particular message format in android and store in sqlite database?
- Resetting inventory status after order is cancelled
- Efficiently compute powers of X in SSE/AVX
- Insert into an external database using ajax and php : POST 500 (Internal Server Error)
Popular Questions
- How do I undo the most recent local commits in Git?
- How can I remove a specific item from an array in JavaScript?
- How do I delete a Git branch locally and remotely?
- Find all files containing a specific text (string) on Linux?
- How do I revert a Git repository to a previous commit?
- How do I create an HTML button that acts like a link?
- How do I check out a remote Git branch?
- How do I force "git pull" to overwrite local files?
- How do I list all files of a directory?
- How to check whether a string contains a substring in JavaScript?
- How do I redirect to another webpage?
- How can I iterate over rows in a Pandas DataFrame?
- How do I convert a String to an int in Java?
- Does Python have a string 'contains' substring method?
- How do I check if a string contains a specific word?
A stream handle does not uniquely identify an active stream. Consider the following sequence:
In the example above, you'll almost certainly get
s2 == seven though theslow_kernelis still running - it's even possible thatfast_kernelfinishes beforeslow_kernel.On top of that there's an issue with special handles like default stream or per-thread default stream. Thread ids can be reused by the OS, too (albeit not as aggressively).
One place where uniquely identifying a stream is crucial is stream-ordered resource management (like cudaMallocAsync).
Assigning a stream name doesn't solve the issue, because the party interested in establishing stream identity/equality doesn't necessarily own the stream and assigning a name would constitute a breach of contract.