You can (?) determine whether a CUDA context is the primary one by calling cuDevicePrimaryCtxRetain() and comparing the returned pointer to the context you have. But - what if nobody's created the primary context yet? Is there a cheaper way to obtain the negative answer then? Or - is it impossible for a non-primary context to exist while the primary does not?
How can I determine whether a CUDA context is the primary one - cheaply?
605 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 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?
You can check whether the primary context has been created ("activated") or not:
Now, if the primary context is not active, then you know your context is not the primary one; if it is active, you can use
cuDevicePrimaryCtxRetain(), and - unless you're doing something multi-threaded or using coroutines etc. - you know it'll be a cheap call.This of course depends on assuming your context is not an invalid primary context handle after disactivation.