cuda-samples/Samples/5_Domain_Specific/simpleD3D12
2024-07-25 16:30:13 +00:00
..
d3dx12.h add and update samples for CUDA 11.6 2022-01-13 11:35:24 +05:30
DX12CudaSample.cpp add and update samples for CUDA 11.6 2022-01-13 11:35:24 +05:30
DX12CudaSample.h add and update samples for CUDA 11.6 2022-01-13 11:35:24 +05:30
DXSampleHelper.h add and update samples for CUDA 11.6 2022-01-13 11:35:24 +05:30
Main.cpp add and update samples for CUDA 11.6 2022-01-13 11:35:24 +05:30
Makefile add and update samples for CUDA 11.6 2022-01-13 11:35:24 +05:30
NsightEclipse.xml Updating files for Ada architecture 2023-02-27 22:33:19 +00:00
README.md Updating samples for CUDA 12.5 2024-07-25 16:30:13 +00:00
shaders.hlsl add and update samples for CUDA 11.6 2022-01-13 11:35:24 +05:30
ShaderStructs.h add and update samples for CUDA 11.6 2022-01-13 11:35:24 +05:30
simpleD3D12_vs2017.sln add and update samples for CUDA 11.6 2022-01-13 11:35:24 +05:30
simpleD3D12_vs2017.vcxproj Updating samples for CUDA 12.5 2024-07-25 16:30:13 +00:00
simpleD3D12_vs2019.sln add and update samples for CUDA 11.6 2022-01-13 11:35:24 +05:30
simpleD3D12_vs2019.vcxproj Updating samples for CUDA 12.5 2024-07-25 16:30:13 +00:00
simpleD3D12_vs2022.sln add and update samples for CUDA 11.6 2022-01-13 11:35:24 +05:30
simpleD3D12_vs2022.vcxproj Updating samples for CUDA 12.5 2024-07-25 16:30:13 +00:00
simpleD3D12.cpp add and update samples for CUDA 11.6 2022-01-13 11:35:24 +05:30
simpleD3D12.h add and update samples for CUDA 11.6 2022-01-13 11:35:24 +05:30
sinewave_cuda.cu add and update samples for CUDA 11.6 2022-01-13 11:35:24 +05:30
stdafx.cpp add and update samples for CUDA 11.6 2022-01-13 11:35:24 +05:30
stdafx.h add and update samples for CUDA 11.6 2022-01-13 11:35:24 +05:30
Win32Application.cpp add and update samples for CUDA 11.6 2022-01-13 11:35:24 +05:30
Win32Application.h add and update samples for CUDA 11.6 2022-01-13 11:35:24 +05:30

simpleD3D12 - Simple D3D12 CUDA Interop

Description

A program which demonstrates Direct3D12 interoperability with CUDA. The program creates a sinewave in DX12 vertex buffer which is created using CUDA kernels. DX12 and CUDA synchronizes using DirectX12 Fences. Direct3D then renders the results on the screen. A DirectX12 Capable NVIDIA GPU is required on Windows10 or higher OS.

Key Concepts

Graphics Interop, CUDA DX12 Interop, Image Processing

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

Windows

Supported CPU Architecture

x86_64

CUDA APIs involved

CUDA Runtime API

cudaWaitExternalSemaphoresAsync, cudaExternalMemoryGetMappedBuffer, cudaImportExternalSemaphore, cudaFree, cudaSetDevice, cudaSignalExternalSemaphoresAsync, cudaGetDeviceProperties, cudaStreamSynchronize, cudaDestroyExternalMemory, cudaStreamCreate, cudaImportExternalMemory, cudaGetDeviceCount, cudaDestroyExternalSemaphore

Dependencies needed to build/run

DirectX12

Prerequisites

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

Build and Run

Windows

The Windows samples are built using the Visual Studio IDE. Solution files (.sln) are provided for each supported version of Visual Studio, using the format:

*_vs<version>.sln - for Visual Studio <version>

Each individual sample has its own set of solution files in its directory:

To build/examine all the samples at once, the complete solution files should be used. To build/examine a single sample, the individual sample solution files should be used.

Note: Some samples require that the Microsoft DirectX SDK (June 2010 or newer) be installed and that the VC++ directory paths are properly set up (Tools > Options...). Check DirectX Dependencies section for details."

References (for more details)