CUDA compatibility (v1.4.1)
This topic describes the compatibility of PPU with CUDA.
PPU CUDA compatibility solution, principles, and advantages
Compute Unified Device Architecture (CUDA) is a parallel computing architecture from NVIDIA. It enables developers to use the powerful computing capabilities of NVIDIA graphics cards to accelerate compute-intensive tasks. It provides a programming model and an API that allows programmers to write code for GPU parallel computing using languages such as C, C++, and Fortran. Using CUDA, developers can execute massively parallel computations on graphics cards to improve program performance. It is widely used in fields such as scientific computing, image editing, and machine learning. PPU is compatible with CUDA. For more information about the solution, principles, and advantages, see CUDA Compatibility Discussion.pptx.
CUDA Sample compatibility
CUDA Sample compatibility list
CUDA Sample | Status | Comments |
simpleVoteIntrinsics | ✅ 11.1 ✅ 11.2 ✅ 11.3 ✅ 11.4 ✅ 11.5 ✅ 11.6 ✅ 11.7 ✅ 11.8 ✅ 12.0 ✅ 12.1 ✅ 12.2 ✅ 12.3 ✅ 12.4 ✅ 12.5 ✅ 12.6 | |
vectorAdd_nvrtc | ✅ 11.1 ✅ 11.2 ✅ 11.3 ✅ 11.4 ✅ 11.5 ✅ 11.6 ✅ 11.7 ✅ 11.8 ✅ 12.0 ✅ 12.1 ✅ 12.2 ✅ 12.3 ✅ 12.4 ✅ 12.5 ✅ 12.6 | |
deviceQuery | ✅ 11.1 ✅ 11.2 ✅ 11.3 ✅ 11.4 ✅ 11.5 ✅ 11.6 ✅ 11.7 ✅ 11.8 ✅ 12.0 ✅ 12.1 ✅ 12.2 ✅ 12.3 ✅ 12.4 ✅ 12.5 ✅ 12.6 | |
reduction | ✅ 11.1 ✅ 11.2 ✅ 11.3 ✅ 11.4 ✅ 11.5 ✅ 11.6 ✅ 11.7 ✅ 11.8 ✅ 12.0 ✅ 12.1 ✅ 12.2 ✅ 12.3 ✅ 12.4 ✅ 12.5 ✅ 12.6 | |
tf32TensorCoreGemm | ✅ 11.1 ✅ 11.2 ✅ 11.3 ✅ 11.4 ✅ 11.5 ✅ 11.6 ✅ 11.7 ✅ 11.8 ✅ 12.0 ✅ 12.1 ✅ 12.2 ✅ 12.3 ✅ 12.4 ✅ 12.5 ✅ 12.6 | |
shfl_scan | ✅ 11.1 ✅ 11.2 ✅ 11.3 ✅ 11.4 ✅ 11.5 ✅ 11.6 ✅ 11.7 ✅ 11.8 ✅ 12.0 ✅ 12.1 ✅ 12.2 ✅ 12.3 ✅ 12.4 ✅ 12.5 ✅ 12.6 | |
warpAggregatedAtomicsCG | ✅ 11.1 ✅ 11.2 ✅ 11.3 ✅ 11.4 ✅ 11.5 ✅ 11.6 ✅ 11.7 ✅ 11.8 ✅ 12.0 ✅ 12.1 ✅ 12.2 ✅ 12.3 ✅ 12.4 ✅ 12.5 ✅ 12.6 |
|
concurrentKernels | ✅ 11.1 ✅ 11.2 ✅ 11.3 ✅ 11.4 ✅ 11.5 ✅ 11.6 ✅ 11.7 ✅ 11.8 ✅ 12.0 ✅ 12.1 ✅ 12.2 ✅ 12.3 ✅ 12.4 ✅ 12.5 ✅ 12.6 | |
bf16TensorCoreGemm | ✅ 11.1 ✅ 11.2 ✅ 11.3 ✅ 11.4 ✅ 11.5 ✅ 11.6 ✅ 11.7 ✅ 11.8 ✅ 12.0 ✅ 12.1 ✅ 12.2 ✅ 12.3 ✅ 12.4 ✅ 12.5 ✅ 12.6 | |
bandwidthTest | ✅ 11.1 ✅ 11.2 ✅ 11.3 ✅ 11.4 ✅ 11.5 ✅ 11.6 ✅ 11.7 ✅ 11.8 ✅ 12.0 ✅ 12.1 ✅ 12.2 ✅ 12.3 ✅ 12.4 ✅ 12.5 ✅ 12.6 | |
UnifiedMemoryPerf | ✅ 11.1 ✅ 11.2 ✅ 11.3 ✅ 11.4 ✅ 11.5 ✅ 11.6 ✅ 11.7 ✅ 11.8 ✅ 12.0 ✅ 12.1 ✅ 12.2 ✅ 12.3 ✅ 12.4 ✅ 12.5 ✅ 12.6 | |
binaryPartitionCG | ✅ 11.1 ✅ 11.2 ✅ 11.3 ✅ 11.4 ✅ 11.5 ✅ 11.6 ✅ 11.7 ✅ 11.8 ✅ 12.0 ✅ 12.1 ✅ 12.2 ✅ 12.3 ✅ 12.4 ✅ 12.5 ✅ 12.6 |
|
conjugateGradientMultiBlockCG | ✅ 11.1 ✅ 11.2 ✅ 11.3 ✅ 11.4 ✅ 11.5 ✅ 11.6 ✅ 11.7 ✅ 11.8 ✅ 12.0 ✅ 12.1 ✅ 12.2 ✅ 12.3 ✅ 12.4 ✅ 12.5 ✅ 12.6 | |
cudaCompressibleMemory | ✅ 11.1 ✅ 11.2 ✅ 11.3 ✅ 11.4 ✅ 11.5 ✅ 11.6 ✅ 11.7 ✅ 11.8 ✅ 12.0 ✅ 12.1 ✅ 12.2 ✅ 12.3 ✅ 12.4 ✅ 12.5 ✅ 12.6 | |
cudaTensorCoreGemm | ✅ 11.1 ✅ 11.2 ✅ 11.3 ✅ 11.4 ✅ 11.5 ✅ 11.6 ✅ 11.7 ✅ 11.8 ✅ 12.0 ✅ 12.1 ✅ 12.2 ✅ 12.3 ✅ 12.4 ✅ 12.5 ✅ 12.6 | |
globalToShmemAsyncCopy | ✅ 11.1 ✅ 11.2 ✅ 11.3 ✅ 11.4 ✅ 11.5 ✅ 11.6 ✅ 11.7 ✅ 11.8 ✅ 12.0 ✅ 12.1 ✅ 12.2 ✅ 12.3 ✅ 12.4 ✅ 12.5 ✅ 12.6 | |
matrixMul | ✅ 11.1 ✅ 11.2 ✅ 11.3 ✅ 11.4 ✅ 11.5 ✅ 11.6 ✅ 11.7 ✅ 11.8 ✅ 12.0 ✅ 12.1 ✅ 12.2 ✅ 12.3 ✅ 12.4 ✅ 12.5 ✅ 12.6 | |
matrixMulDrv | ✅ 11.1 ✅ 11.2 ✅ 11.3 ✅ 11.4 ✅ 11.5 ✅ 11.6 ✅ 11.7 ✅ 11.8 ✅ 12.0 ✅ 12.1 ✅ 12.2 ✅ 12.3 ✅ 12.4 ✅ 12.5 ✅ 12.6 | |
nvJPEG | ✅ 11.1 ✅ 11.2 ✅ 11.3 ✅ 11.4 ✅ 11.5 ✅ 11.6 ✅ 11.7 ✅ 11.8 ✅ 12.0 ✅ 12.1 ✅ 12.2 ✅ 12.3 ✅ 12.4 ✅ 12.5 ✅ 12.6 | |
nvJPEG_encoder | ✅ 11.1 ✅ 11.2 ✅ 11.3 ✅ 11.4 ✅ 11.5 ✅ 11.6 ✅ 11.7 ✅ 11.8 ✅ 12.0 ✅ 12.1 ✅ 12.2 ✅ 12.3 ✅ 12.4 ✅ 12.5 ✅ 12.6 | |
p2pBandwidthLatencyTest | ✅ 11.1 ✅ 11.2 ✅ 11.3 ✅ 11.4 ✅ 11.5 ✅ 11.6 ✅ 11.7 ✅ 11.8 ✅ 12.0 ✅ 12.1 ✅ 12.2 ✅ 12.3 ✅ 12.4 ✅ 12.5 ✅ 12.6 | |
simpleAWBarrier | ✅ 11.1 ✅ 11.2 ✅ 11.3 ✅ 11.4 ✅ 11.5 ✅ 11.6 ✅ 11.7 ✅ 11.8 ✅ 12.0 ✅ 12.1 ✅ 12.2 ✅ 12.3 ✅ 12.4 ✅ 12.5 ✅ 12.6 | |
simpleCudaGraphs | ✅ 11.1 ✅ 11.2 ✅ 11.3 ✅ 11.4 ✅ 11.5 ✅ 11.6 ✅ 11.7 ✅ 11.8 ✅ 12.0 ✅ 12.1 ✅ 12.2 ✅ 12.3 ✅ 12.4 ✅ 12.5 ✅ 12.6 | |
simpleZeroCopy | ✅ 11.1 ✅ 11.2 ✅ 11.3 ✅ 11.4 ✅ 11.5 ✅ 11.6 ✅ 11.7 ✅ 11.8 ✅ 12.0 ✅ 12.1 ✅ 12.2 ✅ 12.3 ✅ 12.4 ✅ 12.5 ✅ 12.6 | |
simpleDrvRuntime | ✅ 11.1 ✅ 11.2 ✅ 11.3 ✅ 11.4 ✅ 11.5 ✅ 11.6 ✅ 11.7 ✅ 11.8 ✅ 12.0 ✅ 12.1 ✅ 12.2 ✅ 12.3 ✅ 12.4 ✅ 12.5 ✅ 12.6 | |
vectorAddMMAP | ❌ 11.1 ✅ 11.2 ✅ 11.3 ✅ 11.4 ✅ 11.5 ✅ 11.6 ✅ 11.7 ✅ 11.8 ✅ 12.0 ✅ 12.1 ✅ 12.2 ✅ 12.3 ✅ 12.4 ✅ 12.5 ✅ 12.6 |
The sample for 11.1 has a dependency on PTX in its compilation flow. PPU does not support PTX. |
simpleIPC | ✅ 11.2 ✅ 11.3 ✅ 11.4 ✅ 11.5 ✅ 11.6 ✅ 11.7 ✅ 11.8 ✅ 12.0 ✅ 12.1 ✅ 12.2 ✅ 12.3 ✅ 12.4 ✅ 12.5 ✅ 12.6 |
|
streamOrderedAllocation | ✅ 11.2 ✅ 11.3 ✅ 11.4 ✅ 11.5 ✅ 11.6 ✅ 11.7 ✅ 11.8 ✅ 12.0 ✅ 12.1 ✅ 12.2 ✅ 12.3 ✅ 12.4 ✅ 12.5 ✅ 12.6 | |
streamOrderedAllocationIPC | ✅ 11.3 ✅ 11.4 ✅ 11.5 ✅ 11.6 ✅ 11.7 ✅ 11.8 ✅ 12.0 ✅ 12.1 ✅ 12.2 ✅ 12.3 ✅ 12.4 ✅ 12.5 ✅ 12.6 | |
simplePrintf | ✅ 11.5 ✅ 11.6 ✅ 11.7 ✅ 11.8 ✅ 12.0 ✅ 12.1 ✅ 12.2 ✅ 12.3 ✅ 12.4 ✅ 12.5 ✅ 12.6 | |
simpleTemplates | ✅ 11.5 ✅ 11.6 ✅ 11.7 ✅ 11.8 ✅ 12.0 ✅ 12.1 ✅ 12.2 ✅ 12.3 ✅ 12.4 ✅ 12.5 ✅ 12.6 | |
simpleOccupancy | ✅ 11.5 ✅ 11.6 ✅ 11.7 ✅ 11.8 ✅ 12.0 ✅ 12.1 ✅ 12.2 ✅ 12.3 ✅ 12.4 ✅ 12.5 ✅ 12.6 | |
topologyQuery | ✅ 11.5 ✅ 11.6 ✅ 11.7 ✅ 11.8 ✅ 12.0 ✅ 12.1 ✅ 12.2 ✅ 12.3 ✅ 12.4 ✅ 12.5 ✅ 12.6 | |
clock | ✅ 11.5 ✅ 11.6 ✅ 11.7 ✅ 11.8 ✅ 12.0 ✅ 12.1 ✅ 12.2 ✅ 12.3 ✅ 12.4 ✅ 12.5 ✅ 12.6 | |
cppIntegration | ✅ 11.5 ✅ 11.6 ✅ 11.7 ✅ 11.8 ✅ 12.0 ✅ 12.1 ✅ 12.2 ✅ 12.3 ✅ 12.4 ✅ 12.5 ✅ 12.6 | |
dwtHaar1D | ✅ 11.5 ✅ 11.6 ✅ 11.7 ✅ 11.8 ✅ 12.0 ✅ 12.1 ✅ 12.2 ✅ 12.3 ✅ 12.4 ✅ 12.5 ✅ 12.6 | |
vectorAdd | ✅ 11.5 ✅ 11.6 ✅ 11.7 ✅ 11.8 ✅ 12.0 ✅ 12.1 ✅ 12.2 ✅ 12.3 ✅ 12.4 ✅ 12.5 ✅ 12.6 | |
vectorAddDrv | ✅ 11.5 ✅ 11.6 ✅ 11.7 ✅ 11.8 ✅ 12.0 ✅ 12.1 ✅ 12.2 ✅ 12.3 ✅ 12.4 ✅ 12.5 ✅ 12.6 | |
scalarProd | ✅ 11.5 ✅ 11.6 ✅ 11.7 ✅ 11.8 ✅ 12.0 ✅ 12.1 ✅ 12.2 ✅ 12.3 ✅ 12.4 ✅ 12.5 ✅ 12.6 | |
simpleVoteIntrinsics_nvrtc | ✅ 11.5 ✅ 11.6 ✅ 11.7 ✅ 11.8 ✅ 12.0 ✅ 12.1 ✅ 12.2 ✅ 12.3 ✅ 12.4 ✅ 12.5 ✅ 12.6 | |
SobolQRNG | ✅ 11.5 ✅ 11.6 ✅ 11.7 ✅ 11.8 ✅ 12.0 ✅ 12.1 ✅ 12.2 ✅ 12.3 ✅ 12.4 ✅ 12.5 ✅ 12.6 | |
simpleCooperativeGroups | ✅ 11.5 ✅ 11.6 ✅ 11.7 ✅ 11.8 ✅ 12.0 ✅ 12.1 ✅ 12.2 ✅ 12.3 ✅ 12.4 ✅ 12.5 ✅ 12.6 | |
simpleAtomicIntrinsics | ✅ 11.5 ✅ 11.6 ✅ 11.7 ✅ 11.8 ✅ 12.0 ✅ 12.1 ✅ 12.2 ✅ 12.3 ✅ 12.4 ✅ 12.5 ✅ 12.6 | |
cudaOpenMP | ✅ 11.5 ✅ 11.6 ✅ 11.7 ✅ 11.8 ✅ 12.0 ✅ 12.1 ✅ 12.2 ✅ 12.3 ✅ 12.4 ✅ 12.5 ✅ 12.6 | |
fp16ScalarProduct | ✅ 11.5 ✅ 11.6 ✅ 11.7 ✅ 11.8 ✅ 12.0 ✅ 12.1 ✅ 12.2 ✅ 12.3 ✅ 12.4 ✅ 12.5 ✅ 12.6 | |
inlinePTX | ✅ 11.5 ✅ 11.6 ✅ 11.7 ✅ 11.8 ✅ 12.0 ✅ 12.1 ✅ 12.2 ✅ 12.3 ✅ 12.4 ✅ 12.5 ✅ 12.6 | |
simpleMPI | ✅ 11.5 ✅ 11.6 ✅ 11.7 ✅ 11.8 ✅ 12.0 ✅ 12.1 ✅ 12.2 ✅ 12.3 ✅ 12.4 ✅ 12.5 ✅ 12.6 | |
template | ✅ 11.5 ✅ 11.6 ✅ 11.7 ✅ 11.8 ✅ 12.0 ✅ 12.1 ✅ 12.2 ✅ 12.3 ✅ 12.4 ✅ 12.5 ✅ 12.6 | |
simpleHyperQ | ✅ 11.5 ✅ 11.6 ✅ 11.7 ✅ 11.8 ✅ 12.0 ✅ 12.1 ✅ 12.2 ✅ 12.3 ✅ 12.4 ✅ 12.5 ✅ 12.6 | |
reductionMultiBlockCG | ✅ 11.5 ✅ 11.6 ✅ 11.7 ✅ 11.8 ✅ 12.0 ✅ 12.1 ✅ 12.2 ✅ 12.3 ✅ 12.4 ✅ 12.5 ✅ 12.6 | |
threadFenceReduction | ✅ 11.5 ✅ 11.6 ✅ 11.7 ✅ 11.8 ✅ 12.0 ✅ 12.1 ✅ 12.2 ✅ 12.3 ✅ 12.4 ✅ 12.5 ✅ 12.6 | |
mergeSort | ✅ 11.5 ✅ 11.6 ✅ 11.7 ✅ 11.8 ✅ 12.0 ✅ 12.1 ✅ 12.2 ✅ 12.3 ✅ 12.4 ✅ 12.5 ✅ 12.6 | |
convolutionSeparable | ✅ 11.5 ✅ 11.6 ✅ 11.7 ✅ 11.8 ✅ 12.0 ✅ 12.1 ✅ 12.2 ✅ 12.3 ✅ 12.4 ✅ 12.5 ✅ 12.6 | |
FDTD3d | ✅ 11.5 ✅ 11.6 ✅ 11.7 ✅ 11.8 ✅ 12.0 ✅ 12.1 ✅ 12.2 ✅ 12.3 ✅ 12.4 ✅ 12.5 ✅ 12.6 | |
matrixMulCUBLAS | ❌ 11.5 ❌ 11.6 ❌ 11.7 ❌ 11.8 ❌ 12.0 ❌ 12.1 ❌ 12.2 ❌ 12.3 ❌ 12.4 ❌ 12.5 ❌ 12.6 | The calculation results have precision differences compared to NVIDIA's. This is because of differences in the matrixMul calculation method. PPU chose an implementation with better performance. |
sortingNetworks | ✅ 11.5 ✅ 11.6 ✅ 11.7 ✅ 11.8 ✅ 12.0 ✅ 12.1 ✅ 12.2 ✅ 12.3 ✅ 12.4 ✅ 12.5 ✅ 12.6 | |
fastWalshTransform | ✅ 11.5 ✅ 11.6 ✅ 11.7 ✅ 11.8 ✅ 12.0 ✅ 12.1 ✅ 12.2 ✅ 12.3 ✅ 12.4 ✅ 12.5 ✅ 12.6 | |
alignedTypes | ✅ 11.5 ✅ 11.6 ✅ 11.7 ✅ 11.8 ✅ 12.0 ✅ 12.1 ✅ 12.2 ✅ 12.3 ✅ 12.4 ✅ 12.5 ✅ 12.6 | |
deviceQueryDrv | ✅ 11.5 ✅ 11.6 ✅ 11.7 ✅ 11.8 ✅ 12.0 ✅ 12.1 ✅ 12.2 ✅ 12.3 ✅ 12.4 ✅ 12.5 ✅ 12.6 | |
scan | ✅ 11.5 ✅ 11.6 ✅ 11.7 ✅ 11.8 ✅ 12.0 ✅ 12.1 ✅ 12.2 ✅ 12.3 ✅ 12.4 ✅ 12.5 ✅ 12.6 | |
BlackScholes | ✅ 11.5 ✅ 11.6 ✅ 11.7 ✅ 11.8 ✅ 12.0 ✅ 12.1 ✅ 12.2 ✅ 12.3 ✅ 12.4 ✅ 12.5 ✅ 12.6 | |
transpose | ✅ 11.5 ✅ 11.6 ✅ 11.7 ✅ 11.8 ✅ 12.0 ✅ 12.1 ✅ 12.2 ✅ 12.3 ✅ 12.4 ✅ 12.5 ✅ 12.6 | |
histogram | ✅ 11.5 ✅ 11.6 ✅ 11.7 ✅ 11.8 ✅ 12.0 ✅ 12.1 ✅ 12.2 ✅ 12.3 ✅ 12.4 ✅ 12.5 ✅ 12.6 | |
MC_SingleAsianOptionP | ✅ 11.5 ✅ 11.6 ✅ 11.7 ✅ 11.8 ✅ 12.0 ✅ 12.1 ✅ 12.2 ✅ 12.3 ✅ 12.4 ✅ 12.5 ✅ 12.6 | |
MC_EstimatePiInlineP | ✅ 11.5 ✅ 11.6 ✅ 11.7 ✅ 11.8 ✅ 12.0 ✅ 12.1 ✅ 12.2 ✅ 12.3 ✅ 12.4 ✅ 12.5 ✅ 12.6 | |
quasirandomGenerator | ✅ 11.5 ✅ 11.6 ✅ 11.7 ✅ 11.8 ✅ 12.0 ✅ 12.1 ✅ 12.2 ✅ 12.3 ✅ 12.4 ✅ 12.5 ✅ 12.6 | |
binomialOptions | ✅ 11.5 ✅ 11.6 ✅ 11.7 ✅ 11.8 ✅ 12.0 ✅ 12.1 ✅ 12.2 ✅ 12.3 ✅ 12.4 ✅ 12.5 ✅ 12.6 | |
MonteCarloMultiGPU | ✅ 11.5 ✅ 11.6 ✅ 11.7 ✅ 11.8 ✅ 12.0 ✅ 12.1 ✅ 12.2 ✅ 12.3 ✅ 12.4 ✅ 12.5 ✅ 12.6 | |
UnifiedMemoryStreams | ✅ 11.5 ✅ 11.6 ✅ 11.7 ✅ 11.8 ✅ 12.0 ✅ 12.1 ✅ 12.2 ✅ 12.3 ✅ 12.4 ✅ 12.5 ✅ 12.6 | |
asyncAPI | ✅ 11.5 ✅ 11.6 ✅ 11.7 ✅ 11.8 ✅ 12.0 ✅ 12.1 ✅ 12.2 ✅ 12.3 ✅ 12.4 ✅ 12.5 ✅ 12.6 | |
c++11_cuda | ✅ 11.5 ✅ 11.6 ✅ 11.7 ✅ 11.8 ✅ 12.0 ✅ 12.1 ✅ 12.2 ✅ 12.3 ✅ 12.4 ✅ 12.5 ✅ 12.6 | |
cppOverload | ✅ 11.5 ✅ 11.6 ✅ 11.7 ✅ 11.8 ✅ 12.0 ✅ 12.1 ✅ 12.2 ✅ 12.3 ✅ 12.4 ✅ 12.5 ✅ 12.6 | |
cuHook | ✅ 11.5 ✅ 11.6 ✅ 11.7 ✅ 11.8 ✅ 12.0 ✅ 12.1 ✅ 12.2 ✅ 12.3 ✅ 12.4 ✅ 12.5 ✅ 12.6 | |
eigenvalues | ✅ 11.5 ✅ 11.6 ✅ 11.7 ✅ 11.8 ✅ 12.0 ✅ 12.1 ✅ 12.2 ✅ 12.3 ✅ 12.4 ✅ 12.5 ✅ 12.6 | |
interval | ✅ 11.5 ✅ 11.6 ✅ 11.7 ✅ 11.8 ✅ 12.0 ✅ 12.1 ✅ 12.2 ✅ 12.3 ✅ 12.4 ✅ 12.5 ✅ 12.6 | |
newdelete | ✅ 11.5 ✅ 11.6 ✅ 11.7 ✅ 11.8 ✅ 12.0 ✅ 12.1 ✅ 12.2 ✅ 12.3 ✅ 12.4 ✅ 12.5 ✅ 12.6 | |
radixSortThrust | ✅ 11.5 ✅ 11.6 ✅ 11.7 ✅ 11.8 ✅ 12.0 ✅ 12.1 ✅ 12.2 ✅ 12.3 ✅ 12.4 ✅ 12.5 ✅ 12.6 | |
segmentationTreeThrust | ✅ 11.5 ✅ 11.6 ✅ 11.7 ✅ 11.8 ✅ 12.0 ✅ 12.1 ✅ 12.2 ✅ 12.3 ✅ 12.4 ✅ 12.5 ✅ 12.6 | |
simpleAssert | ✅ 11.5 ✅ 11.6 ✅ 11.7 ✅ 11.8 ✅ 12.0 ✅ 12.1 ✅ 12.2 ✅ 12.3 ✅ 12.4 ✅ 12.5 ✅ 12.6 | |
simpleAttributes | ❌ 11.5 ❌ 11.6 ❌ 11.7 ❌ 11.8 ❌ 12.0 ❌ 12.1 ❌ 12.2 ❌ 12.3 ❌ 12.4 ❌ 12.5 ❌ 12.6 | The sample passes, but the running time is very long. This is because the "Maximum y- or z-dimension of a grid of thread blocks" is 65535 on NVIDIA GPUs but 2^31-1 on PPU. The sample code depends on this value, which causes the extremely long running time. |
simpleMultiCopy | ✅ 11.5 ✅ 11.6 ✅ 11.7 ✅ 11.8 ✅ 12.0 ✅ 12.1 ✅ 12.2 ✅ 12.3 ✅ 12.4 ✅ 12.5 ✅ 12.6 | |
simpleMultiGPU | ✅ 11.5 ✅ 11.6 ✅ 11.7 ✅ 11.8 ✅ 12.0 ✅ 12.1 ✅ 12.2 ✅ 12.3 ✅ 12.4 ✅ 12.5 ✅ 12.6 | |
simpleP2P | ✅ 11.5 ✅ 11.6 ✅ 11.7 ✅ 11.8 ✅ 12.0 ✅ 12.1 ✅ 12.2 ✅ 12.3 ✅ 12.4 ✅ 12.5 ✅ 12.6 | |
simpleSeparateCompilation | ✅ 11.5 ✅ 11.6 ✅ 11.7 ✅ 11.8 ✅ 12.0 ✅ 12.1 ✅ 12.2 ✅ 12.3 ✅ 12.4 ✅ 12.5 ✅ 12.6 | |
simpleStreams | ✅ 11.5 ✅ 11.6 ✅ 11.7 ✅ 11.8 ✅ 12.0 ✅ 12.1 ✅ 12.2 ✅ 12.3 ✅ 12.4 ✅ 12.5 ✅ 12.6 | |
threadMigration | ✅ 11.5 ✅ 11.6 ✅ 11.7 ✅ 11.8 ✅ 12.0 ✅ 12.1 ✅ 12.2 ✅ 12.3 ✅ 12.4 ✅ 12.5 ✅ 12.6 | |
vectorAddDrv | ✅ 11.5 ✅ 11.6 ✅ 11.7 ✅ 11.8 ✅ 12.0 ✅ 12.1 ✅ 12.2 ✅ 12.3 ✅ 12.4 ✅ 12.5 ✅ 12.6 | |
binomialOptions_nvrtc | ✅ 11.5 ✅ 11.6 ✅ 11.7 ✅ 11.8 ✅ 12.0 ✅ 12.1 ✅ 12.2 ✅ 12.3 ✅ 12.4 ✅ 12.5 ✅ 12.6 | |
clock_nvrtc | ✅ 11.5 ✅ 11.6 ✅ 11.7 ✅ 11.8 ✅ 12.0 ✅ 12.1 ✅ 12.2 ✅ 12.3 ✅ 12.4 ✅ 12.5 ✅ 12.6 | |
inlinePTX_nvrtc | ✅ 11.5 ✅ 11.6 ✅ 11.7 ✅ 11.8 ✅ 12.0 ✅ 12.1 ✅ 12.2 ✅ 12.3 ✅ 12.4 ✅ 12.5 ✅ 12.6 | |
matrixMul_nvrtc | ✅ 11.5 ✅ 11.6 ✅ 11.7 ✅ 11.8 ✅ 12.0 ✅ 12.1 ✅ 12.2 ✅ 12.3 ✅ 12.4 ✅ 12.5 ✅ 12.6 | |
quasirandomGenerator_nvrtc | ✅ 11.5 ✅ 11.6 ✅ 11.7 ✅ 11.8 ✅ 12.0 ✅ 12.1 ✅ 12.2 ✅ 12.3 ✅ 12.4 ✅ 12.5 ✅ 12.6 | |
simpleAssert_nvrtc | ✅ 11.5 ✅ 11.6 ✅ 11.7 ✅ 11.8 ✅ 12.0 ✅ 12.1 ✅ 12.2 ✅ 12.3 ✅ 12.4 ✅ 12.5 ✅ 12.6 | |
simpleAtomicIntrinsics_nvrtc | ✅ 11.5 ✅ 11.6 ✅ 11.7 ✅ 11.8 ✅ 12.0 ✅ 12.1 ✅ 12.2 ✅ 12.3 ✅ 12.4 ✅ 12.5 ✅ 12.6 | |
simpleTemplates_nvrtc | ✅ 11.5 ✅ 11.6 ✅ 11.7 ✅ 11.8 ✅ 12.0 ✅ 12.1 ✅ 12.2 ✅ 12.3 ✅ 12.4 ✅ 12.5 ✅ 12.6 | |
simpleVoteIntrinsics_nvrtc | ✅ 11.5 ✅ 11.6 ✅ 11.7 ✅ 11.8 ✅ 12.0 ✅ 12.1 ✅ 12.2 ✅ 12.3 ✅ 12.4 ✅ 12.5 ✅ 12.6 | |
BlackScholes_nvrtc | ✅ 11.5 ✅ 11.6 ✅ 11.7 ✅ 11.8 ✅ 12.0 ✅ 12.1 ✅ 12.2 ✅ 12.3 ✅ 12.4 ✅ 12.5 ✅ 12.6 | |
libNVVM | ❌ 12.3 ❌ 12.4 ❌ 12.5 ❌ 12.6 | PPU is currently compatible with the definition of LLVM IR for nvgpu, but it is not fully compatible with the official NVIDIA NVVM IR definition. |
StreamPriorities | ✅ 11.5 ✅ 11.6 ✅ 11.7 ✅ 11.8 ✅ 12.0 ✅ 12.1 ✅ 12.2 ✅ 12.3 ✅ 12.4 ✅ 12.5 ✅ 12.6 | |
MC_EstimatePiInlineQ | ❌ | Related curand APIs are not yet fully supported.
|
MC_EstimatePiP | ✅ 11.5 ✅ 11.6 ✅ 11.7 ✅ 11.8 ✅ 12.0 ✅ 12.1 ✅ 12.2 ✅ 12.3 ✅ 12.4 ✅ 12.5 ✅ 12.6 | |
MC_EstimatePiQ | ❌ | Related curand APIs, such as curandCreateGenerator, are not yet fully supported. |
MersenneTwisterGP11213 | ❌ | Related curand APIs are not yet fully supported. |
batchCUBLAS | ❌ | Related curand APIs, such as cublasSetMatrix, are not yet fully supported. |
batchedLabelMarkersAndLabelCompressionNPP | ❌ | nppiLabelMarkersUFGetBufferSize_32u_C1R nppiCompressMarkerLabelsGetBufferSize_32u_C1R nppiLabelMarkersUFBatch_8u32u_C1R_Advanced_Ctx nppiCompressMarkerLabelsUFBatch_32u_C1IR_Advanced_Ctx The preceding APIs are not yet supported. |
boxFilterNPP | ✅ 11.1 ✅ 11.2 ✅ 11.3 ✅ 11.4 ✅ 11.5 ✅ 11.6 ✅ 11.7 ✅ 11.8 ✅ 12.0 ✅ 12.1 ✅ 12.2 ✅ 12.3 ✅ 12.4 ✅ 12.5 ✅ 12.6 |
|
conjugateGradientCudaGraphs | ❌ | The cusparse library is not yet fully supported. |
conjugateGradient | ❌ | |
conjugateGradientMultiDeviceCG | ❌ | |
conjugateGradientPrecond | ❌ | |
conjugateGradientUM | ❌ | |
cuSolverDn_LinearSolver | ❌ | The cusparse library, including cusolverSpCreate, is not yet fully supported. |
cuSolverRf | ❌ | |
cuSolverSp_LinearSolver | ❌ | |
cuSolverSp_LowlevelCholesky | ❌ | |
cuSolverSp_LowlevelQR | ❌ | |
graphMemoryFootprint | ✅ 11.5 ✅ 11.6 ✅ 11.7 ✅ 11.8 ✅ 12.0 ✅ 12.1 ✅ 12.2 ✅ 12.3 ✅ 12.4 ✅ 12.5 ✅ 12.6 | |
graphMemoryNodes | ❌ | The APIs for memory allocation and deallocation are not yet defined because the header file has not been updated to this version. |
immaTensorCoreGemm | ✅ 11.5 ✅ 11.6 ✅ 11.7 ✅ 11.8 ✅ 12.0 ✅ 12.1 ✅ 12.2 ✅ 12.3 ✅ 12.4 ✅ 12.5 ✅ 12.6 | |
jacobiCudaGraphs | ✅ 11.1 ✅ 11.2 ✅ 11.3 ✅ 11.4 ✅ 11.5 ✅ 11.6 ✅ 11.7 ✅ 11.8 ✅ 12.0 ✅ 12.1 ✅ 12.2 ✅ 12.3 ✅ 12.4 ✅ 12.5 ✅ 12.6 | |
matrixMulDynlinkJIT | ❌ | DynlinkJIT is not currently supported. |
memMapIPCDrv | ❌ | The granularity obtained from cuMemGetAllocationGranularity is 2 MB, but PPU is designed for 8 MB. The check in the code needs to be modified. |
nbody | ❌ | Graphics and OpenGL related APIs are not supported. |
Mandelbrot | ❌ | |
particles | ❌ | |
oceanFFT | ❌ | |
simpleCUDA2GL | ❌ | |
simpleGL | ❌ | |
recursiveGaussian | ❌ | |
ptxjit | ❌ | PPU does not support PTX. |
randomFog | ❌ | Lacks graphical display capabilities. |
simpleCUBLAS | ❌ | CUBLAS API implementation is incomplete. |
simpleCUBLASXT | ❌ | |
simpleCUBLAS_LU | ❌ | |
simpleCUFFT | ❌ | The cuFFT library is not supported. |
simpleCUFFT_2d_MGPU | ❌ | |
simpleCUFFT_MGPU | ❌ | |
simpleCUFFT_callback | ❌ | |
systemWideAtomics | ❌ |
|
FilterBorderControlNPP | ❌ | Related NPP APIs are not currently supported. |
watershedSegmentationNPP | ❌ | |
streamOrderedAllocationP2P | ✅ 11.5 ✅ 11.6 ✅ 11.7 ✅ 11.8 ✅ 12.0 ✅ 12.1 ✅ 12.2 ✅ 12.3 ✅ 12.4 ✅ 12.5 ✅ 12.6 | |
EGLStream_CUDA_CrossGPU | ❌ | Related EGL APIs are not supported. |
EGLStream_CUDA_Interop | ❌ | |
EGLStreams_CUDA_Interop | ❌ | |
EGLSync_CUDAEvent_Interop | ❌ | GLES is not supported. |
cuDLALayerwiseStatsStandalone | ❌ | |
cuDLALayerwiseStatsHybrid | ❌ | |
simpleGLES_EGLOutput | ❌ | |
fluidsGLES | ❌ | |
nbody_opengles | ❌ | |
simpleGLES | ❌ | |
simpleGLES_screen | ❌ | |
nbody_screen | ❌ | |
cuDLAHybridMode | ❌ | |
cuDLAStandaloneMode | ❌ | |
cuDLAErrorReporting | ❌ | |
cudaNvSciNvMedia | ❌ | |
cdpAdvancedQuicksort | ❌ | The CUDA Dynamic Parallelism (CDP) feature is not supported. |
cdpBezierTessellation | ❌ | |
cdpQuadtree | ❌ | |
cdpSimplePrint | ❌ | |
cdpSimpleQuicksort | ❌ | |
cudaNvSci | ❌ | libnvscibuf.so not found. NvSci is not currently supported. |
dmmaTensorCoreGemm | ❌ | PPU Tensor Cores do not support Double MMA instructions. |
dxtc | ✅ 11.5 ✅ 11.6 ✅ 11.7 ✅ 11.8 ✅ 12.0 ✅ 12.1 ✅ 12.2 ✅ 12.3 ✅ 12.4 ✅ 12.5 ✅ 12.6 | |
freeImageInteropNPP | ✅ 11.5 ✅ 11.6 ✅ 11.7 ✅ 11.8 ✅ 12.0 ✅ 12.1 ✅ 12.2 ✅ 12.3 ✅ 12.4 ✅ 12.5 ✅ 12.6 | |
histEqualizationNPP | ✅ 11.5 ✅ 11.6 ✅ 11.7 ✅ 11.8 ✅ 12.0 ✅ 12.1 ✅ 12.2 ✅ 12.3 ✅ 12.4 ✅ 12.5 ✅ 12.6 | |
cannyEdgeDetectorNPP | ✅ 11.1 ✅ 11.2 ✅ 11.3 ✅ 11.4 ✅ 11.5 ✅ 11.6 ✅ 11.7 ✅ 11.8 ✅ 12.0 ✅ 12.1 ✅ 12.2 ✅ 12.3 ✅ 12.4 ✅ 12.5 ✅ 12.6 | |
convolutionTexture | ❌ | PPU does not support texture and GL features. |
bindlessTexture | ❌ | |
bicubicTexture | ❌ | |
HSOpticalFlow | ❌ | |
simpleLayeredTexture | ❌ | |
simplePitchLinearTexture | ❌ | |
simpleSurfaceWrite | ❌ | |
simpleTexture | ❌ | |
simpleTexture3D | ❌ | |
simpleTextureDrv | ❌ | |
simpleCubemapTexture | ❌ | |
volumeFiltering | ❌ | |
volumeRender | ❌ | |
vulkanImageCUDA | ❌ | |
stereoDisparity | ❌ | |
boxFilter | ❌ | |
bilateralFilter | ❌ | |
postProcessGL | ❌ | |
imageDenoising | ❌ | |
fluidsGL | ❌ | |
smokeParticles | ❌ | |
lineOfSight | ❌ | |
marchingCubes | ❌ | |
convolutionFFT2D | ❌ | |
dct8x8 | ❌ | |
NV12toBGRandResize | ❌ | |
SobelFilter | ❌ | |
FunctionPointers | ❌ | |
simpleVulkan | ❌ | Related Vulkan-CUDA features are not currently supported. |
simpleVulkanMMAP | ❌ | |
simpleD3D10 | ❌ | PPU does not support D3D graphics related APIs. |
fluidsD3D9 | ❌ | |
simpleD3D11 | ❌ | |
simpleD3D11Texture | ❌ | |
simpleD3D10RenderTarget | ❌ | |
simpleD3D10Texture | ❌ | |
SLID3D10Texture | ❌ | |
VFlockingD3D10 | ❌ | |
simpleD3D12 | ❌ | |
simpleD3D9Texture | ❌ | |
simpleD3D9 | ❌ | |
cudaGraphsPerfScaling | ❌ 12.5 ❌ 12.6 | The cudaGraphUpload API is not currently supported. |
Unsupported CUDA Runtime APIs
This implementation is aligned with CUDA Runtime 12.3. Modules marked as [DEPRECATED] in the CUDA Runtime 12.3 specification are not supported and are not listed here. All APIs are supported except for the following:
List of unsupported APIs
Feature module | CUDA Runtime API name | Notes |
Device Management | RDMA Flush. Does not affect RDMA usage. | |
NvSci Lib. No current requirement. | ||
Graphics-related. No requirement in AI scenarios. | ||
External Resource Interoperability | Related to graphics API interaction. Only CUDA APIs are currently supported. | |
Execution Control | Deprecated as of CUDA 7.5. Will not be supported. | |
Deprecated as of CUDA 7.5. Will not be supported. | ||
Occupancy | Cluster-related. | |
Memory Management | Except for cudaMemAdvise_v2, all are array-related. No requirement in AI scenarios. | |
OpenGL Interoperability | Graphics-related. No requirement in AI scenarios. | |
Direct3D 9 Interoperability | ||
Direct3D 10 Interoperability | ||
Direct3D 11 Interoperability | ||
VDPAU Interoperability | ||
EGL Interoperability | ||
Graphics Interoperability | ||
Surface Object Management | ||
Graph Management | Device function. Requires CDP support. | |
Mainly graphics-related. No requirement in AI scenarios. | ||
Additionally, a small number of APIs have unsupported enumerations. These are not listed. The actual result returned at runtime, such as cudaErrorNotSupported or cudaErrorInvalidValue, is considered final.
CUDA cuDNN support status
Compared to cuDNN 8.5.0, the support status of cuDNN APIs is shown in the following table:
Most commonly used APIs for neural network (NN) applications are supported and optimized.
Compared to Ampere, all APIs can be supported by software. There are currently no PPU hardware limitations. Support will be gradually added in future software versions based on priority.
The current API support rate is 196/263, or 74.5%.
Excluding 26 deprecated APIs, the support rate is 196/237, or 82.7%.
cuDNN API support status
API | cuDNN 8.5.0 | PPU 1.4 | Status | Feature description |
cudnnCreateRNNDescriptor | Yes | Yes | ||
cudnnDestroyRNNDescriptor | Yes | Yes | ||
cudnnSetRNNDescriptor_v8 | Yes | Yes | ||
cudnnGetRNNDescriptor_v8 | Yes | Yes | ||
cudnnSetRNNDescriptor_v6 | Yes | Yes | ||
cudnnGetRNNDescriptor_v6 | Yes | Yes | ||
cudnnSetRNNMatrixMathType | Yes | Yes | ||
cudnnGetRNNMatrixMathType | Yes | Yes | ||
cudnnSetRNNBiasMode | Yes | Yes | ||
cudnnGetRNNBiasMode | Yes | Yes | ||
cudnnRNNSetClip_v8 | Yes | Yes | ||
cudnnRNNGetClip_v8 | Yes | Yes | ||
cudnnRNNSetClip | Yes | Yes | ||
cudnnRNNGetClip | Yes | Yes | ||
cudnnSetRNNProjectionLayers | Yes | Yes | ||
cudnnGetRNNProjectionLayers | Yes | Yes | ||
cudnnGetRNNWorkspaceSize | Yes | Yes | ||
cudnnGetRNNTrainingReserveSize | Yes | Yes | ||
cudnnGetRNNTempSpaceSizes | Yes | Yes | ||
cudnnGetRNNParamsSize | Yes | Yes | ||
cudnnGetRNNWeightSpaceSize | Yes | Yes | ||
cudnnGetRNNLinLayerMatrixParams | Yes | Yes | ||
cudnnGetRNNLinLayerBiasParams | Yes | Yes | ||
cudnnGetRNNWeightParams | Yes | Yes | ||
cudnnRNNForwardInference | Yes | Yes | ||
cudnnCreateRNNDataDescriptor | Yes | Yes | ||
cudnnDestroyRNNDataDescriptor | Yes | Yes | ||
cudnnSetRNNDataDescriptor | Yes | Yes | ||
cudnnGetRNNDataDescriptor | Yes | Yes | ||
cudnnRNNForward | Yes | Yes | ||
cudnnCreateSeqDataDescriptor | Yes | Yes | ||
cudnnDestroySeqDataDescriptor | Yes | Yes | ||
cudnnSetSeqDataDescriptor | Yes | Yes | ||
cudnnGetSeqDataDescriptor | Yes | Yes | ||
cudnnCreateAttnDescriptor | Yes | Yes | ||
cudnnDestroyAttnDescriptor | Yes | Yes | ||
cudnnSetAttnDescriptor | Yes | Yes | ||
cudnnGetAttnDescriptor | Yes | Yes | ||
cudnnGetMultiHeadAttnBuffers | Yes | Yes | ||
cudnnGetMultiHeadAttnWeights | Yes | Yes | ||
cudnnMultiHeadAttnForward | Yes | Yes | ||
cudnnAdvInferVersionCheck | Yes | Yes | ||
cudnnRNNForwardTraining | Yes | Yes | ||
cudnnRNNBackwardData | Yes | Yes | ||
cudnnRNNBackwardData_v8 | Yes | Yes | ||
cudnnRNNBackwardWeights | Yes | Yes | ||
cudnnRNNBackwardWeights_v8 | Yes | Yes | ||
cudnnDestroyCTCLossDescriptor | Yes | Yes | ||
cudnnCreateCTCLossDescriptor | Yes | Yes | ||
cudnnSetCTCLossDescriptor | Yes | Yes | ||
cudnnGetCTCLossDescriptor | Yes | Yes | ||
cudnnSetCTCLossDescriptorEx | Yes | Yes | ||
cudnnGetCTCLossDescriptorEx | Yes | Yes | ||
cudnnSetCTCLossDescriptor_v8 | Yes | Yes | ||
cudnnGetCTCLossDescriptor_v8 | Yes | Yes | ||
cudnnGetCTCLossWorkspaceSize_v8 | Yes | Yes | ||
cudnnCTCLoss | Yes | Yes | ||
cudnnGetCTCLossWorkspaceSize | Yes | Yes | ||
cudnnCTCLoss_v8 | Yes | Yes | ||
cudnnAdvTrainVersionCheck | Yes | Yes | ||
cudnnBackendCreateDescriptor | Yes | Yes | ||
cudnnBackendDestroyDescriptor | Yes | Yes | ||
cudnnBackendInitialize | Yes | Yes | ||
cudnnBackendFinalize | Yes | Yes | ||
cudnnBackendSetAttribute | Yes | Yes | ||
cudnnBackendGetAttribute | Yes | Yes | ||
cudnnBackendExecute | Yes | Yes | ||
cudnnCreateConvolutionDescriptor | Yes | Yes | ||
cudnnDestroyConvolutionDescriptor | Yes | Yes | ||
cudnnSetConvolution2dDescriptor | Yes | Yes | ||
cudnnGetConvolution2dDescriptor | Yes | Yes | ||
cudnnSetConvolutionNdDescriptor | Yes | Yes | ||
cudnnGetConvolutionNdDescriptor | Yes | Yes | ||
cudnnSetConvolutionMathType | Yes | Yes | ||
cudnnGetConvolutionMathType | Yes | Yes | ||
cudnnSetConvolutionGroupCount | Yes | Yes | ||
cudnnGetConvolutionGroupCount | Yes | Yes | ||
cudnnGetConvolution2dForwardOutputDim | Yes | Yes | ||
cudnnGetConvolutionNdForwardOutputDim | Yes | Yes | ||
cudnnGetConvolutionForwardAlgorithmMaxCount | Yes | Yes | ||
cudnnGetConvolutionBackwardDataAlgorithmMaxCount | Yes | Yes | ||
cudnnGetConvolutionForwardWorkspaceSize | Yes | Yes | ||
cudnnGetConvolutionForwardAlgorithm_v7 | Yes | Yes | ||
cudnnFindConvolutionForwardAlgorithm | Yes | Yes | ||
cudnnFindConvolutionForwardAlgorithmEx | Yes | Yes | ||
cudnnConvolutionForward | Yes | Yes | ||
cudnnConvolutionBiasActivationForward | Yes | Yes | ||
cudnnGetConvolutionBackwardDataWorkspaceSize | Yes | Yes | ||
cudnnFindConvolutionBackwardDataAlgorithm | Yes | Yes | ||
cudnnFindConvolutionBackwardDataAlgorithmEx | Yes | Yes | ||
cudnnGetConvolutionBackwardDataAlgorithm_v7 | Yes | Yes | ||
cudnnConvolutionBackwardData | Yes | Yes | ||
cudnnGetFoldedConvBackwardDataDescriptors | Yes | Yes | ||
cudnnCnnInferVersionCheck | Yes | Yes | ||
cudnnGetConvolutionBackwardFilterWorkspaceSize | Yes | Yes | ||
cudnnGetConvolutionBackwardFilterAlgorithmMaxCount | Yes | Yes | ||
cudnnFindConvolutionBackwardFilterAlgorithm | Yes | Yes | ||
cudnnFindConvolutionBackwardFilterAlgorithmEx | Yes | Yes | ||
cudnnGetConvolutionBackwardFilterAlgorithm_v7 | Yes | Yes | ||
cudnnConvolutionBackwardFilter | Yes | Yes | ||
cudnnCnnTrainVersionCheck | Yes | Yes | ||
cudnnGetVersion | Yes | Yes | ||
cudnnGetProperty | Yes | Yes | ||
cudnnGetErrorString | Yes | Yes | ||
cudnnCreate | Yes | Yes | ||
cudnnDestroy | Yes | Yes | ||
cudnnSetStream | Yes | Yes | ||
cudnnGetStream | Yes | Yes | ||
cudnnGetCudartVersion | Yes | Yes | ||
cudnnCreateTensorDescriptor | Yes | Yes | ||
cudnnDestroyTensorDescriptor | Yes | Yes | ||
cudnnSetTensor4dDescriptor | Yes | Yes | ||
cudnnSetTensor4dDescriptorEx | Yes | Yes | ||
cudnnGetTensor4dDescriptor | Yes | Yes | ||
cudnnSetTensorNdDescriptor | Yes | Yes | ||
cudnnSetTensorNdDescriptorEx | Yes | Yes | ||
cudnnGetTensorNdDescriptor | Yes | Yes | ||
cudnnGetTensorSizeInBytes | Yes | Yes | ||
cudnnCreateFilterDescriptor | Yes | Yes | ||
cudnnDestroyFilterDescriptor | Yes | Yes | ||
cudnnSetFilter4dDescriptor | Yes | Yes | ||
cudnnGetFilter4dDescriptor | Yes | Yes | ||
cudnnSetFilterNdDescriptor | Yes | Yes | ||
cudnnGetFilterNdDescriptor | Yes | Yes | ||
cudnnGetFilterSizeInBytes | Yes | Yes | ||
cudnnDeriveBNTensorDescriptor | Yes | Yes | ||
cudnnBatchNormalizationForwardInference | Yes | Yes | ||
cudnnCreateOpTensorDescriptor | Yes | Yes | ||
cudnnDestroyOpTensorDescriptor | Yes | Yes | ||
cudnnSetOpTensorDescriptor | Yes | Yes | ||
cudnnGetOpTensorDescriptor | Yes | Yes | ||
cudnnCreatePoolingDescriptor | Yes | Yes | ||
cudnnSetPooling2dDescriptor | Yes | Yes | ||
cudnnSetPoolingNdDescriptor | Yes | Yes | ||
cudnnGetPoolingNdForwardOutputDim | Yes | Yes | ||
cudnnGetPooling2dForwardOutputDim | Yes | Yes | ||
cudnnDestroyPoolingDescriptor | Yes | Yes | ||
cudnnPoolingForward | Yes | Yes | ||
cudnnCreateActivationDescriptor | Yes | Yes | ||
cudnnSetActivationDescriptor | Yes | Yes | ||
cudnnGetActivationDescriptor | Yes | Yes | ||
cudnnDestroyActivationDescriptor | Yes | Yes | ||
cudnnActivationForward | Yes | Yes | ||
cudnnCreateDropoutDescriptor | Yes | Yes | ||
cudnnDestroyDropoutDescriptor | Yes | Yes | ||
cudnnDropoutGetStatesSize | Yes | Yes | ||
cudnnDropoutGetReserveSpaceSize | Yes | Yes | ||
cudnnSetDropoutDescriptor | Yes | Yes | ||
cudnnRestoreDropoutDescriptor | Yes | Yes | ||
cudnnGetDropoutDescriptor | Yes | Yes | ||
cudnnDropoutForward | Yes | Yes | ||
cudnnSoftmaxForward | Yes | Yes | ||
cudnnAddTensor | Yes | Yes | ||
cudnnScaleTensor | Yes | Yes | ||
cudnnOpTensor | Yes | Yes | ||
cudnnTransformTensor | Yes | Yes | ||
cudnnCreateTensorTransformDescriptor | Yes | Yes | ||
cudnnDestroyTensorTransformDescriptor | Yes | Yes | ||
cudnnSetTensorTransformDescriptor | Yes | Yes | ||
cudnnGetTensorTransformDescriptor | Yes | Yes | ||
cudnnTransformTensorEx | Yes | Yes | ||
cudnnInitTransformDest | Yes | Yes | ||
cudnnTransformFilter | Yes | Yes | ||
cudnnCreateReduceTensorDescriptor | Yes | Yes | ||
cudnnDestroyReduceTensorDescriptor | Yes | Yes | ||
cudnnSetReduceTensorDescriptor | Yes | Yes | ||
cudnnGetReduceTensorDescriptor | Yes | Yes | ||
cudnnReduceTensor | Yes | Yes | ||
cudnnGetReductionWorkspaceSize | Yes | Yes | ||
cudnnGetReductionIndicesSize | Yes | Yes | ||
cudnnCreateLRNDescriptor | Yes | Yes | ||
cudnnDestroyLRNDescriptor | Yes | Yes | ||
cudnnGetLRNDescriptor | Yes | Yes | ||
cudnnSetLRNDescriptor | Yes | Yes | ||
cudnnLRNCrossChannelForward | Yes | Yes | ||
cudnnCreateSpatialTransformerDescriptor | Yes | Yes | ||
cudnnDestroySpatialTransformerDescriptor | Yes | Yes | ||
cudnnSetSpatialTransformerNdDescriptor | Yes | Yes | ||
cudnnSpatialTfGridGeneratorForward | Yes | Yes | ||
cudnnSpatialTfSamplerForward | Yes | Yes | ||
cudnnOpsInferVersionCheck | Yes | Yes | ||
cudnnGetBatchNormalizationForwardTrainingExWorkspaceSize | Yes | Yes | ||
cudnnGetBatchNormalizationBackwardExWorkspaceSize | Yes | Yes | ||
cudnnGetBatchNormalizationTrainingExReserveSpaceSize | Yes | Yes | ||
cudnnBatchNormalizationForwardTraining | Yes | Yes | ||
cudnnBatchNormalizationForwardTrainingEx | Yes | Yes | ||
cudnnBatchNormalizationBackward | Yes | Yes | ||
cudnnBatchNormalizationBackwardEx | Yes | Yes | ||
cudnnPoolingBackward | Yes | Yes | ||
cudnnActivationBackward | Yes | Yes | ||
cudnnDropoutBackward | Yes | Yes | ||
cudnnSoftmaxBackward | Yes | Yes | ||
cudnnLRNCrossChannelBackward | Yes | Yes | ||
cudnnSpatialTfSamplerBackward | Yes | Yes | ||
cudnnSpatialTfGridGeneratorBackward | Yes | Yes | ||
cudnnOpsTrainVersionCheck | Yes | Yes | ||
cudnnQueryRuntimeError | Yes | No | Helper function to check for numerical overflows in BN. | |
cudnnSetTensor | Yes | No | Helper function to set a tensor to a constant value. | |
cudnnGetPooling2dDescriptor | Yes | No | Helper function to get the pooling Nd descriptor. | |
cudnnGetPoolingNdDescriptor | Yes | No | ||
cudnnSetActivationDescriptorSwishBeta | Yes | No | Set/get for swish_beta in the activation function. | |
cudnnGetActivationDescriptorSwishBeta | Yes | No | ||
cudnnCreateAlgorithmDescriptor | Yes | No | Deprecated in cuDNN 8.0. | Operations related to AlgorithmDescriptor parameters. |
cudnnSetAlgorithmDescriptor | Yes | No | ||
cudnnGetAlgorithmDescriptor | Yes | No | ||
cudnnCopyAlgorithmDescriptor | Yes | No | ||
cudnnDestroyAlgorithmDescriptor | Yes | No | ||
cudnnCreateAlgorithmPerformance | Yes | No | Operations related to AlgorithmPerformance parameters. | |
cudnnSetAlgorithmPerformance | Yes | No | ||
cudnnGetAlgorithmPerformance | Yes | No | ||
cudnnDestroyAlgorithmPerformance | Yes | No | ||
cudnnGetAlgorithmSpaceSize | Yes | No | Deprecated in cuDNN 8.0. | Storage for algorithm metadata. |
cudnnSaveAlgorithm | Yes | No | ||
cudnnRestoreAlgorithm | Yes | No | ||
cudnnSetCallback | Yes | No | Related to callback functions. | |
cudnnGetCallback | Yes | No | ||
cudnnSetConvolutionReorderType | Yes | No | Set/get for convolution ReorderType. | |
cudnnGetConvolutionReorderType | Yes | No | ||
cudnnIm2Col | Yes | No | im2Col, constructs forward-related matrices. | |
cudnnReorderFilterAndBias | Yes | No | Reorders the filter and bias. | |
cudnnConvolutionBackwardBias | Yes | No | Computes convolution gradient with bias. | |
cudnnCreateFusedOpsConstParamPack | Yes | No | Related to cudnnFusedOps computation. Can be replaced with backend APIs. | |
cudnnDestroyFusedOpsConstParamPack | Yes | No | ||
cudnnSetFusedOpsConstParamPackAttribute | Yes | No | ||
cudnnGetFusedOpsConstParamPackAttribute | Yes | No | ||
cudnnCreateFusedOpsVariantParamPack | Yes | No | ||
cudnnDestroyFusedOpsVariantParamPack | Yes | No | ||
cudnnSetFusedOpsVariantParamPackAttribute | Yes | No | ||
cudnnGetFusedOpsVariantParamPackAttribute | Yes | No | ||
cudnnCreateFusedOpsPlan | Yes | No | ||
cudnnDestroyFusedOpsPlan | Yes | No | ||
cudnnMakeFusedOpsPlan | Yes | No | ||
cudnnFusedOpsExecute | Yes | No | ||
cudnnCreatePersistentRNNPlan | Yes | No | Deprecated in cuDNN 8.0. | Operations related to the new RNN Persistent algorithm. |
cudnnDestroyPersistentRNNPlan | Yes | No | ||
cudnnSetPersistentRNNPlan | Yes | No | ||
cudnnBuildRNNDynamic | Yes | No | ||
cudnnSetRNNPaddingMode | Yes | No | Deprecated in cuDNN 8.0. | RNN padding-related operations. Can be replaced with acdnnSetRNNDescriptor_v8(). |
cudnnGetRNNPaddingMode | Yes | No | ||
cudnnRNNForwardInferenceEx | Yes | No | You can call acdnnRNNForward() | |
cudnnSetRNNAlgorithmDescriptor | Yes | No | Optimizing RNN algorithms | |
cudnnGetRNNForwardInferenceAlgorithmMaxCount | Yes | No | ||
cudnnFindRNNForwardInferenceAlgorithmEx | Yes | No | ||
cudnnRNNForwardTrainingEx | Yes | No | Deprecated in cuDNN 8.0. | You can use acdnnRNNForward(). |
cudnnRNNBackwardDataEx | Yes | No | You can use the acdnnRNNBackwardData_v8() function. | |
cudnnRNNBackwardWeightsEx | Yes | No | You can use acdnnRNNBackwardWeights_v8(). | |
cudnnGetRNNForwardTrainingAlgorithmMaxCount | Yes | No | Optimizing RNN algorithms | |
cudnnFindRNNForwardTrainingAlgorithmEx | Yes | No | ||
cudnnGetRNNBackwardDataAlgorithmMaxCount | Yes | No | ||
cudnnFindRNNBackwardDataAlgorithmEx | Yes | No | ||
cudnnGetRNNBackwardWeightsAlgorithmMaxCount | Yes | No | ||
cudnnFindRNNBackwardWeightsAlgorithmEx | Yes | No | ||
cudnnMultiHeadAttnBackwardData | Yes | No | MultiHeadAttn backward pass. | |
cudnnMultiHeadAttnBackwardWeights | Yes | No | ||
cudnnDivisiveNormalizationForward | Yes | No | Forward DivisiveNormalization layer computation. | |
cudnnDeriveNormTensorDescriptor | Yes | No | Exports normalization layer tensor descriptor. | |
cudnnNormalizationForwardInference | Yes | No | Forward Normalization layer computation. | |
cudnnDivisiveNormalizationBackward | Yes | No | Backward DivisiveNormalization layer computation. | |
cudnnGetNormalizationForwardTrainingWorkspaceSize | Yes | No | Normalization layer helper API to get workspace size. | |
cudnnGetNormalizationBackwardWorkspaceSize | Yes | No | ||
cudnnGetNormalizationTrainingReserveSpaceSize | Yes | No | ||
cudnnNormalizationForwardTraining | Yes | No | Forward Normalization layer computation. | |
cudnnNormalizationBackward | Yes | No | Computation of the Inverse Normalization Layer |
CUDA cuBLAS support status
Compared to cuBLAS 11.9.2, the support status of cuBLAS APIs is shown in the following table:
Most commonly used APIs for NN applications are supported and optimized.
Compared to Ampere, all APIs can be supported by software. There are currently no PPU hardware limitations. Support will be gradually added in future software versions based on priority.
The current API support rate is 89/290, or 30.7%. Unsupported APIs fall into the following main categories:
Complex data types: 131
Special matrix types (such as symmetric, compressed, and triangular): 36
Helper function types (such as set/get and memcpy): 18
Batched gemv: 12
Uncommon algorithms (matrix addition geam, matrix inversion matinv): 4
Because AI applications do not involve complex or special matrix types, the API support rate for AI applications is 89/123, or 72.4%.
cuBLAS API support status
API | cuBLAS 11.9.2 | PPU 1.4 |
cublasCreate_v2 | Yes | Yes |
cublasDestroy_v2 | Yes | Yes |
cublasGetProperty | Yes | Yes |
cublasSetStream_v2 | Yes | Yes |
cublasGetStream_v2 | Yes | Yes |
cublasGetMathMode | Yes | Yes |
cublasSetMathMode | Yes | Yes |
cublasGetPointerMode_v2 | Yes | Yes |
cublasSetPointerMode_v2 | Yes | Yes |
cublasSetWorkspace_v2 | Yes | Yes |
cublasGetStatusString | Yes | Yes |
cublasIamaxEx | Yes | Yes |
cublasIsamax_v2 | Yes | Yes |
cublasIdamax_v2 | Yes | Yes |
cublasIaminEx | Yes | Yes |
cublasIsamin_v2 | Yes | Yes |
cublasIdamin_v2 | Yes | Yes |
cublasAsumEx | Yes | Yes |
cublasSasum_v2 | Yes | Yes |
cublasDasum_v2 | Yes | Yes |
cublasAxpyEx | Yes | Yes |
cublasSaxpy_v2 | Yes | Yes |
cublasDaxpy_v2 | Yes | Yes |
cublasCopyEx | Yes | Yes |
cublasScopy_v2 | Yes | Yes |
cublasDcopy_v2 | Yes | Yes |
cublasDotEx | Yes | Yes |
cublasSdot_v2 | Yes | Yes |
cublasDdot_v2 | Yes | Yes |
cublasNrm2Ex | Yes | Yes |
cublasSnrm2_v2 | Yes | Yes |
cublasDnrm2_v2 | Yes | Yes |
cublasRotEx | Yes | Yes |
cublasSrot_v2 | Yes | Yes |
cublasDrot_v2 | Yes | Yes |
cublasRotgEx | Yes | Yes |
cublasSrotg_v2 | Yes | Yes |
cublasDrotg_v2 | Yes | Yes |
cublasRotmEx | Yes | Yes |
cublasSrotm_v2 | Yes | Yes |
cublasDrotm_v2 | Yes | Yes |
cublasRotmgEx | Yes | Yes |
cublasSrotmg_v2 | Yes | Yes |
cublasDrotmg_v2 | Yes | Yes |
cublasScalEx | Yes | Yes |
cublasSscal_v2 | Yes | Yes |
cublasDscal_v2 | Yes | Yes |
cublasSwapEx | Yes | Yes |
cublasSswap_v2 | Yes | Yes |
cublasDswap_v2 | Yes | Yes |
cublasSgemv_v2 | Yes | Yes |
cublasDgemv_v2 | Yes | Yes |
cublasSgemm_v2 | Yes | Yes |
cublasDgemm_v2 | Yes | Yes |
cublasHgemm | Yes | Yes |
cublasSgemmEx | Yes | Yes |
cublasGemmEx | Yes | Yes |
cublasHgemmBatched | Yes | Yes |
cublasSgemmBatched | Yes | Yes |
cublasGemmBatchedEx | Yes | Yes |
cublasGemmStridedBatchedEx | Yes | Yes |
cublasSgemmStridedBatched | Yes | Yes |
cublasDgemmBatched | Yes | Yes |
cublasDgemmStridedBatched | Yes | Yes |
cublasHgemmStridedBatched | Yes | Yes |
cublasSgetrfBatched | Yes | Yes |
cublasDgetrfBatched | Yes | Yes |
cublasSgetrsBatched | Yes | Yes |
cublasDgetrsBatched | Yes | Yes |
cublasSger_v2 | Yes | Yes |
cublasDger_v2 | Yes | Yes |
cublasSsyr_v2 | Yes | Yes |
cublasDsyr_v2 | Yes | Yes |
cublasSspr_v2 | Yes | Yes |
cublasDspr_v2 | Yes | Yes |
cublasSsyr2_v2 | Yes | Yes |
cublasDsyr2_v2 | Yes | Yes |
cublasSspr2_v2 | Yes | Yes |
cublasDspr2_v2 | Yes | Yes |
cublasStrsm_v2 | Yes | Yes |
cublasDtrsm_v2 | Yes | Yes |
cublasStrsmBatched | Yes | Yes |
cublasDtrsmBatched | Yes | Yes |
cublasSgetriBatched | Yes | Yes |
cublasDgetriBatched | Yes | Yes |
cublasSgeqrfBatched | Yes | Yes |
cublasDgeqrfBatched | Yes | Yes |
cublasSgelsBatched | Yes | Yes |
cublasDgelsBatched | Yes | Yes |
cublasGetVersion_v2 | Yes | No |
cublasGetCudartVersion | Yes | No |
cublasGetAtomicsMode | Yes | No |
cublasSetAtomicsMode | Yes | No |
cublasGetSmCountTarget | Yes | No |
cublasSetSmCountTarget | Yes | No |
cublasGetStatusName | Yes | No |
cublasLoggerConfigure | Yes | No |
cublasSetLoggerCallback | Yes | No |
cublasGetLoggerCallback | Yes | No |
cublasSetVector | Yes | No |
cublasGetVector | Yes | No |
cublasSetMatrix | Yes | No |
cublasGetMatrix | Yes | No |
cublasSetVectorAsync | Yes | No |
cublasGetVectorAsync | Yes | No |
cublasSetMatrixAsync | Yes | No |
cublasGetMatrixAsync | Yes | No |
cublasSgemvBatched | Yes | No |
cublasDgemvBatched | Yes | No |
cublasCgemvBatched | Yes | No |
cublasZgemvBatched | Yes | No |
cublasHSHgemvBatched | Yes | No |
cublasHSSgemvBatched | Yes | No |
cublasTSTgemvBatched | Yes | No |
cublasTSSgemvBatched | Yes | No |
cublasSgemvStridedBatched | Yes | No |
cublasDgemvStridedBatched | Yes | No |
cublasCgemvStridedBatched | Yes | No |
cublasZgemvStridedBatched | Yes | No |
cublasHSHgemvStridedBatched | Yes | No |
cublasHSSgemvStridedBatched | Yes | No |
cublasTSTgemvStridedBatched | Yes | No |
cublasTSSgemvStridedBatched | Yes | No |
cublasScnrm2_v2 | Yes | No |
cublasDznrm2_v2 | Yes | No |
cublasDotcEx | Yes | No |
cublasCdotu_v2 | Yes | No |
cublasCdotc_v2 | Yes | No |
cublasZdotu_v2 | Yes | No |
cublasZdotc_v2 | Yes | No |
cublasCscal_v2 | Yes | No |
cublasCsscal_v2 | Yes | No |
cublasZscal_v2 | Yes | No |
cublasZdscal_v2 | Yes | No |
cublasCaxpy_v2 | Yes | No |
cublasZaxpy_v2 | Yes | No |
cublasCcopy_v2 | Yes | No |
cublasZcopy_v2 | Yes | No |
cublasCswap_v2 | Yes | No |
cublasZswap_v2 | Yes | No |
cublasIcamax_v2 | Yes | No |
cublasIzamax_v2 | Yes | No |
cublasIcamin_v2 | Yes | No |
cublasIzamin_v2 | Yes | No |
cublasScasum_v2 | Yes | No |
cublasDzasum_v2 | Yes | No |
cublasCrot_v2 | Yes | No |
cublasCsrot_v2 | Yes | No |
cublasZrot_v2 | Yes | No |
cublasZdrot_v2 | Yes | No |
cublasCrotg_v2 | Yes | No |
cublasZrotg_v2 | Yes | No |
cublasCgemv_v2 | Yes | No |
cublasZgemv_v2 | Yes | No |
cublasCgemm_v2 | Yes | No |
cublasCgemm3m | Yes | No |
cublasCgemm3mEx | Yes | No |
cublasZgemm_v2 | Yes | No |
cublasZgemm3m | Yes | No |
cublasCgemmEx | Yes | No |
cublasCgemmBatched | Yes | No |
cublasCgemm3mBatched | Yes | No |
cublasZgemmBatched | Yes | No |
cublasCgemmStridedBatched | Yes | No |
cublasCgemm3mStridedBatched | Yes | No |
cublasZgemmStridedBatched | Yes | No |
cublasCgetrfBatched | Yes | No |
cublasZgetrfBatched | Yes | No |
cublasCgetrsBatched | Yes | No |
cublasZgetrsBatched | Yes | No |
cublasSgbmv_v2 | Yes | No |
cublasDgbmv_v2 | Yes | No |
cublasCgbmv_v2 | Yes | No |
cublasZgbmv_v2 | Yes | No |
cublasStrmv_v2 | Yes | No |
cublasDtrmv_v2 | Yes | No |
cublasCtrmv_v2 | Yes | No |
cublasZtrmv_v2 | Yes | No |
cublasStbmv_v2 | Yes | No |
cublasDtbmv_v2 | Yes | No |
cublasCtbmv_v2 | Yes | No |
cublasZtbmv_v2 | Yes | No |
cublasStpmv_v2 | Yes | No |
cublasDtpmv_v2 | Yes | No |
cublasCtpmv_v2 | Yes | No |
cublasZtpmv_v2 | Yes | No |
cublasStrsv_v2 | Yes | No |
cublasDtrsv_v2 | Yes | No |
cublasCtrsv_v2 | Yes | No |
cublasZtrsv_v2 | Yes | No |
cublasStpsv_v2 | Yes | No |
cublasDtpsv_v2 | Yes | No |
cublasCtpsv_v2 | Yes | No |
cublasZtpsv_v2 | Yes | No |
cublasStbsv_v2 | Yes | No |
cublasDtbsv_v2 | Yes | No |
cublasCtbsv_v2 | Yes | No |
cublasZtbsv_v2 | Yes | No |
cublasSsymv_v2 | Yes | No |
cublasDsymv_v2 | Yes | No |
cublasCsymv_v2 | Yes | No |
cublasZsymv_v2 | Yes | No |
cublasChemv_v2 | Yes | No |
cublasZhemv_v2 | Yes | No |
cublasSsbmv_v2 | Yes | No |
cublasDsbmv_v2 | Yes | No |
cublasChbmv_v2 | Yes | No |
cublasZhbmv_v2 | Yes | No |
cublasSspmv_v2 | Yes | No |
cublasDspmv_v2 | Yes | No |
cublasChpmv_v2 | Yes | No |
cublasZhpmv_v2 | Yes | No |
cublasCgeru_v2 | Yes | No |
cublasCgerc_v2 | Yes | No |
cublasZgeru_v2 | Yes | No |
cublasZgerc_v2 | Yes | No |
cublasCsyr_v2 | Yes | No |
cublasZsyr_v2 | Yes | No |
cublasCher_v2 | Yes | No |
cublasZher_v2 | Yes | No |
cublasChpr_v2 | Yes | No |
cublasZhpr_v2 | Yes | No |
cublasCsyr2_v2 | Yes | No |
cublasZsyr2_v2 | Yes | No |
cublasCher2_v2 | Yes | No |
cublasZher2_v2 | Yes | No |
cublasChpr2_v2 | Yes | No |
cublasZhpr2_v2 | Yes | No |
cublasSsyrk_v2 | Yes | No |
cublasDsyrk_v2 | Yes | No |
cublasCsyrk_v2 | Yes | No |
cublasZsyrk_v2 | Yes | No |
cublasCsyrkEx | Yes | No |
cublasCsyrk3mEx | Yes | No |
cublasCherk_v2 | Yes | No |
cublasZherk_v2 | Yes | No |
cublasCherkEx | Yes | No |
cublasCherk3mEx | Yes | No |
cublasSsyr2k_v2 | Yes | No |
cublasDsyr2k_v2 | Yes | No |
cublasCsyr2k_v2 | Yes | No |
cublasZsyr2k_v2 | Yes | No |
cublasCher2k_v2 | Yes | No |
cublasZher2k_v2 | Yes | No |
cublasSsyrkx | Yes | No |
cublasDsyrkx | Yes | No |
cublasCsyrkx | Yes | No |
cublasZsyrkx | Yes | No |
cublasCherkx | Yes | No |
cublasZherkx | Yes | No |
cublasSsymm_v2 | Yes | No |
cublasDsymm_v2 | Yes | No |
cublasCsymm_v2 | Yes | No |
cublasZsymm_v2 | Yes | No |
cublasChemm_v2 | Yes | No |
cublasZhemm_v2 | Yes | No |
cublasCtrsm_v2 | Yes | No |
cublasZtrsm_v2 | Yes | No |
cublasStrmm_v2 | Yes | No |
cublasDtrmm_v2 | Yes | No |
cublasCtrmm_v2 | Yes | No |
cublasZtrmm_v2 | Yes | No |
cublasSgeam | Yes | No |
cublasDgeam | Yes | No |
cublasCgeam | Yes | No |
cublasZgeam | Yes | No |
cublasCgetriBatched | Yes | No |
cublasZgetriBatched | Yes | No |
cublasCtrsmBatched | Yes | No |
cublasZtrsmBatched | Yes | No |
cublasSmatinvBatched | Yes | No |
cublasDmatinvBatched | Yes | No |
cublasCmatinvBatched | Yes | No |
cublasZmatinvBatched | Yes | No |
cublasCgeqrfBatched | Yes | No |
cublasZgeqrfBatched | Yes | No |
cublasCgelsBatched | Yes | No |
cublasZgelsBatched | Yes | No |
cublasSdgmm | Yes | No |
cublasDdgmm | Yes | No |
cublasCdgmm | Yes | No |
cublasZdgmm | Yes | No |
cublasStpttr | Yes | No |
cublasDtpttr | Yes | No |
cublasCtpttr | Yes | No |
cublasZtpttr | Yes | No |
cublasStrttp | Yes | No |
cublasDtrttp | Yes | No |
cublasCtrttp | Yes | No |
cublasZtrttp | Yes | No |