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.
 
 
 
 
shawnz da3b7a2b3c Update the vulkanImageCUDA/vulkanImageCUDA.cu for Windows headers 2 months ago
..
.vscode add and update samples for CUDA 11.6 4 years ago
Build_instructions.txt Apply consistent code formatting across the repo. Add clang-format and pre-commit hooks. 3 months 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
SineWaveSimulation.cu Apply consistent code formatting across the repo. Add clang-format and pre-commit hooks. 3 months ago
SineWaveSimulation.h Apply consistent code formatting across the repo. Add clang-format and pre-commit hooks. 3 months ago
VulkanBaseApp.cpp Apply consistent code formatting across the repo. Add clang-format and pre-commit hooks. 3 months ago
VulkanBaseApp.h Update the vulkanImageCUDA/vulkanImageCUDA.cu for Windows headers 2 months ago
frag.spv add and update samples for CUDA 11.6 4 years ago
linmath.h 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
sinewave.frag add and update samples for CUDA 11.6 4 years ago
sinewave.vert add and update samples for CUDA 11.6 4 years ago
vert.spv add and update samples for CUDA 11.6 4 years ago

README.md

simpleVulkan - Vulkan CUDA Interop Sinewave

Description

This sample demonstrates Vulkan CUDA Interop. CUDA imports the Vulkan vertex buffer and operates on it to create sinewave, and synchronizes with Vulkan through vulkan semaphores imported by CUDA. This sample depends on Vulkan SDK, GLFW3 libraries, for building this sample please refer to "Build_instructions.txt" provided in this sample's directory

Key Concepts

Graphics Interop, CUDA Vulkan Interop, Data Parallel Algorithms

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, Windows

Supported CPU Architecture

x86_64, aarch64

CUDA APIs involved

CUDA Runtime API

cudaStreamCreateWithFlags, cudaExternalMemoryGetMappedBuffer, cudaSignalSemaphore, cudaWaitExternalSemaphoresAsync, cudaVertMem, cudaImportExternalSemaphore, cudaWaitSemaphore, cudaHeightMap, cudaSetDevice, cudaGetDeviceCount, cudaSignalExternalSemaphoresAsync, cudaTimelineSemaphore, cudaStreamSynchronize, cudaDestroyExternalMemory, cudaOccupancyMaxActiveBlocksPerMultiprocessor, cudaImportExternalMemory, cudaGetDeviceProperties, cudaDestroyExternalSemaphore

Dependencies needed to build/run

X11, VULKAN

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)