Samples for CUDA Developers which demonstrates features in CUDA Toolkit
You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
 
 
 
 
Rob Armstrong 14b1bfdcc4 Replace README references to "CUDA Toolkit 12.5" with general "CUDA Toolkit" 2 months ago
..
.vscode add and update samples for CUDA 11.6 4 years ago
CMakeLists.txt Update all sample CMakeLists.txt to include ENABLE_CUDA_DEBUG flag to enable cuda-gdb 3 months ago
README.md Replace README references to "CUDA Toolkit 12.5" with general "CUDA Toolkit" 2 months ago
cuda_consumer.cpp Apply consistent code formatting across the repo. Add clang-format and pre-commit hooks. 3 months ago
cuda_consumer.h Apply consistent code formatting across the repo. Add clang-format and pre-commit hooks. 3 months ago
cuda_producer.cpp Apply consistent code formatting across the repo. Add clang-format and pre-commit hooks. 3 months ago
cuda_producer.h Apply consistent code formatting across the repo. Add clang-format and pre-commit hooks. 3 months ago
eglstrm_common.cpp Apply consistent code formatting across the repo. Add clang-format and pre-commit hooks. 3 months ago
eglstrm_common.h Apply consistent code formatting across the repo. Add clang-format and pre-commit hooks. 3 months ago
helper.h Apply consistent code formatting across the repo. Add clang-format and pre-commit hooks. 3 months ago
kernel.cu Apply consistent code formatting across the repo. Add clang-format and pre-commit hooks. 3 months ago
main.cpp Apply consistent code formatting across the repo. Add clang-format and pre-commit hooks. 3 months ago

README.md

EGLStream_CUDA_CrossGPU - EGLStream_CUDA_CrossGPU

Description

Demonstrates CUDA and EGL Streams interop, where consumer's EGL Stream is on one GPU and producer's on other and both consumer-producer are different processes.

Key Concepts

EGLStreams Interop

Supported SM Architectures

SM 5.0 SM 5.2 SM 5.3 SM 6.0 SM 6.1 SM 7.0 SM 7.2 SM 7.5 SM 8.0 SM 8.6 SM 8.7 SM 8.9 SM 9.0

Supported OSes

Linux

Supported CPU Architecture

x86_64, armv7l

CUDA APIs involved

CUDA Driver API

cuDeviceGetName, cuEGLStreamConsumerReleaseFrame, cuEGLStreamConsumerConnect, cuEGLStreamConsumerDisconnect, cuCtxPushCurrent, cuEGLStreamProducerReturnFrame, cuStreamCreate, cuEGLStreamProducerPresentFrame, cuMemFree, cuGraphicsResourceGetMappedEglFrame, cuInit, cuMemcpyHtoD, cuDeviceGet, cuEGLStreamConsumerAcquireFrame, cuEGLStreamProducerDisconnect, cuEGLStreamProducerConnect, cuDeviceGetAttribute, cuCtxSynchronize, cuMemAlloc, cuCtxPopCurrent, cuCtxCreate

CUDA Runtime API

cudaMemcpy, cudaMalloc, cudaProducerPresentFrame, cudaFree, cudaGetErrorString, cudaConsumerReleaseFrame, cudaProducerReturnFrame, cudaDeviceSynchronize, cudaDeviceCreateProducer, cudaProducerDeinit, cudaProducerPrepareFrame, cudaGetValueMismatch, cudaConsumerAcquireFrame, cudaProducerInit, cudaDeviceCreateConsumer

Dependencies needed to build/run

EGL

Prerequisites

Download and install the CUDA Toolkit for your corresponding platform. Make sure the dependencies mentioned in Dependencies section above are installed.

References (for more details)