diff --git a/CMakeLists.txt b/CMakeLists.txt index 8701fe5635..187b32045b 100644 --- a/CMakeLists.txt +++ b/CMakeLists.txt @@ -254,7 +254,7 @@ if(HIP_PLATFORM STREQUAL "hcc") execute_process(COMMAND ${HCC_HOME}/bin/hcc-config --ldflags OUTPUT_VARIABLE HCC_LD_FLAGS) set(CMAKE_SHARED_LINKER_FLAGS "${CMAKE_SHARED_LINKER_FLAGS} ${HCC_LD_FLAGS}") - set(CMAKE_SHARED_LINKER_FLAGS "${CMAKE_SHARED_LINKER_FLAGS} --amdgpu-target=gfx701 --amdgpu-target=gfx803 --amdgpu-target=gfx900 --amdgpu-target=gfx906") + set(CMAKE_SHARED_LINKER_FLAGS "${CMAKE_SHARED_LINKER_FLAGS} --amdgpu-target=gfx701 --amdgpu-target=gfx803 --amdgpu-target=gfx900 --amdgpu-target=gfx906 --amdgpu-target=gfx908") if(COMPILE_HIP_ATP_MARKER) set(CMAKE_SHARED_LINKER_FLAGS "${CMAKE_SHARED_LINKER_FLAGS} -L/opt/rocm/profiler/CXLActivityLogger/bin/x86_64 -lCXLActivityLogger") endif() diff --git a/bin/hipcc b/bin/hipcc index d2fa9a2306..85e090c761 100755 --- a/bin/hipcc +++ b/bin/hipcc @@ -156,6 +156,7 @@ $target_gfx802 = 0; $target_gfx803 = 0; $target_gfx900 = 0; $target_gfx906 = 0; +$target_gfx908 = 0; $target_gfx1010 = 0; $target_gfx1012 = 0; $default_amdgpu_target = 1; @@ -429,6 +430,11 @@ foreach $arg (@ARGV) $target_gfx906 = 1; $default_amdgpu_target = 0; } + if($arg eq '--amdgpu-target=gfx908') + { + $target_gfx908 = 1; + $default_amdgpu_target = 0; + } if($arg eq '--amdgpu-target=gfx1010') { $target_gfx1010 = 1; @@ -670,6 +676,11 @@ if($HIP_PLATFORM eq "hcc" or $HIP_PLATFORM eq "clang"){ $target_gfx906 = 1; $default_amdgpu_target = 0; } + if($target eq 'gfx908') + { + $target_gfx908 = 1; + $default_amdgpu_target = 0; + } if($target eq 'gfx1010') { $target_gfx1010 = 1; @@ -715,6 +726,10 @@ if($HIP_PLATFORM eq "hcc" or $HIP_PLATFORM eq "clang"){ $target_gfx906 = 1; $default_amdgpu_target = 0; } + if($val eq "gfx908") { + $target_gfx908 = 1; + $default_amdgpu_target = 0; + } if($val eq 'gfx1010') { $target_gfx1010 = 1; @@ -789,6 +804,14 @@ if($HIP_PLATFORM eq "hcc" or $HIP_PLATFORM eq "clang"){ } $HIPCXXFLAGS .= " -D__HIP_ARCH_GFX906__=1 "; } + if ($target_gfx908 eq 1) { + $GPU_ARCH_ARG = $GPU_ARCH_OPT . "gfx908"; + $HIPLDFLAGS .= $GPU_ARCH_ARG; + if ($HIP_PLATFORM eq 'clang') { + $HIPCXXFLAGS .= $GPU_ARCH_ARG;; + } + $HIPCXXFLAGS .= " -D__HIP_ARCH_GFX908__=1 "; + } if ($target_gfx1010 eq 1) { $GPU_ARCH_ARG = $GPU_ARCH_OPT . "gfx1010"; $HIPLDFLAGS .= $GPU_ARCH_ARG; diff --git a/docs/markdown/CUBLAS_API_supported_by_HIP.md b/docs/markdown/CUBLAS_API_supported_by_HIP.md index 7f3cbc6702..62e014c944 100644 --- a/docs/markdown/CUBLAS_API_supported_by_HIP.md +++ b/docs/markdown/CUBLAS_API_supported_by_HIP.md @@ -2,106 +2,106 @@ ## **1. CUBLAS Data types** -| **type** | **CUDA** | **HIP** |**HIP value** (if differs) | -|-------------:|---------------------------------------------------------------|------------------------------------------------------------|---------------------------| -| enum |***`cublasStatus`*** |***`hipblasStatus_t`*** | -| enum |***`cublasStatus_t`*** |***`hipblasStatus_t`*** | -| 0 |*`CUBLAS_STATUS_SUCCESS`* |*`HIPBLAS_STATUS_SUCCESS`* | -| 1 |*`CUBLAS_STATUS_NOT_INITIALIZED`* |*`HIPBLAS_STATUS_NOT_INITIALIZED`* | -| 3 |*`CUBLAS_STATUS_ALLOC_FAILED`* |*`HIPBLAS_STATUS_ALLOC_FAILED`* | 2 | -| 7 |*`CUBLAS_STATUS_INVALID_VALUE`* |*`HIPBLAS_STATUS_INVALID_VALUE`* | 3 | -| 8 |*`CUBLAS_STATUS_ARCH_MISMATCH`* |*`HIPBLAS_STATUS_ARCH_MISMATCH`* | | -| 11 |*`CUBLAS_STATUS_MAPPING_ERROR`* |*`HIPBLAS_STATUS_MAPPING_ERROR`* | 4 | -| 13 |*`CUBLAS_STATUS_EXECUTION_FAILED`* |*`HIPBLAS_STATUS_EXECUTION_FAILED`* | 5 | -| 14 |*`CUBLAS_STATUS_INTERNAL_ERROR`* |*`HIPBLAS_STATUS_INTERNAL_ERROR`* | 6 | -| 15 |*`CUBLAS_STATUS_NOT_SUPPORTED`* |*`HIPBLAS_STATUS_NOT_SUPPORTED`* | 7 | -| 16 |*`CUBLAS_STATUS_LICENSE_ERROR`* | | -| enum |***`cublasOperation_t`*** |***`hipblasOperation_t`*** | -| 0 |*`CUBLAS_OP_N`* |*`HIPBLAS_OP_N`* | 111 | -| 1 |*`CUBLAS_OP_T`* |*`HIPBLAS_OP_T`* | 112 | -| 2 |*`CUBLAS_OP_C`* |*`HIPBLAS_OP_C`* | 113 | -| 2 |*`CUBLAS_OP_HERMITAN`* |*`HIPBLAS_OP_C`* | 113 | -| 3 |*`CUBLAS_OP_CONJG`* | | -| enum |***`cublasFillMode_t`*** |***`hipblasFillMode_t`*** | -| 0 |*`CUBLAS_FILL_MODE_LOWER`* |*`HIPBLAS_FILL_MODE_LOWER`* | 121 | -| 1 |*`CUBLAS_FILL_MODE_UPPER`* |*`HIPBLAS_FILL_MODE_UPPER`* | 122 | -| 1 |*`CUBLAS_FILL_MODE_FULL`* |*`HIPBLAS_FILL_MODE_FULL`* | 123 | -| enum |***`cublasDiagType_t`*** |***`hipblasDiagType_t`*** | -| 0 |*`CUBLAS_DIAG_NON_UNIT`* |*`HIPBLAS_DIAG_NON_UNIT`* | 131 | -| 1 |*`CUBLAS_DIAG_UNIT`* |*`HIPBLAS_DIAG_UNIT`* | 132 | -| enum |***`cublasSideMode_t`*** |***`hipblasSideMode_t`*** | -| 0 |*`CUBLAS_SIDE_LEFT`* |*`HIPBLAS_SIDE_LEFT`* | 141 | -| 1 |*`CUBLAS_SIDE_RIGHT`* |*`HIPBLAS_SIDE_RIGHT`* | 142 | -| enum |***`cublasPointerMode_t`*** |***`hipblasPointerMode_t`*** | -| 0 |*`CUBLAS_POINTER_MODE_HOST`* |*`HIPBLAS_POINTER_MODE_HOST`* | -| 1 |*`CUBLAS_POINTER_MODE_DEVICE`* |*`HIPBLAS_POINTER_MODE_DEVICE`* | -| enum |***`cublasAtomicsMode_t`*** | | -| 0 |*`CUBLAS_ATOMICS_NOT_ALLOWED`* | | -| 1 |*`CUBLAS_ATOMICS_ALLOWED`* | | -| enum |***`cublasGemmAlgo_t`*** |***`hipblasGemmAlgo_t`*** | -| -1 |*`CUBLAS_GEMM_DFALT`* |*`HIPBLAS_GEMM_DEFAULT`* | 160 | -| -1 |*`CUBLAS_GEMM_DEFAULT`* |*`HIPBLAS_GEMM_DEFAULT`* | 160 | -| 0 |*`CUBLAS_GEMM_ALGO0`* | | -| 1 |*`CUBLAS_GEMM_ALGO1`* | | -| 2 |*`CUBLAS_GEMM_ALGO2`* | | -| 3 |*`CUBLAS_GEMM_ALGO3`* | | -| 4 |*`CUBLAS_GEMM_ALGO4`* | | -| 5 |*`CUBLAS_GEMM_ALGO5`* | | -| 6 |*`CUBLAS_GEMM_ALGO6`* | | -| 7 |*`CUBLAS_GEMM_ALGO7`* | | -| 8 |*`CUBLAS_GEMM_ALGO8`* | | -| 9 |*`CUBLAS_GEMM_ALGO9`* | | -| 10 |*`CUBLAS_GEMM_ALGO10`* | | -| 11 |*`CUBLAS_GEMM_ALGO11`* | | -| 12 |*`CUBLAS_GEMM_ALGO12`* | | -| 13 |*`CUBLAS_GEMM_ALGO13`* | | -| 14 |*`CUBLAS_GEMM_ALGO14`* | | -| 15 |*`CUBLAS_GEMM_ALGO15`* | | -| 16 |*`CUBLAS_GEMM_ALGO16`* | | -| 17 |*`CUBLAS_GEMM_ALGO17`* | | -| 18 |*`CUBLAS_GEMM_ALGO18`* | | -| 19 |*`CUBLAS_GEMM_ALGO19`* | | -| 20 |*`CUBLAS_GEMM_ALGO20`* | | -| 21 |*`CUBLAS_GEMM_ALGO21`* | | -| 22 |*`CUBLAS_GEMM_ALGO22`* | | -| 23 |*`CUBLAS_GEMM_ALGO23`* | | -| 99 |*`CUBLAS_GEMM_DEFAULT_TENSOR_OP`* | | -| 99 |*`CUBLAS_GEMM_DFALT_TENSOR_OP`* | | -| 100 |*`CUBLAS_GEMM_ALGO0_TENSOR_OP`* | | -| 101 |*`CUBLAS_GEMM_ALGO1_TENSOR_OP`* | | -| 102 |*`CUBLAS_GEMM_ALGO2_TENSOR_OP`* | | -| 103 |*`CUBLAS_GEMM_ALGO3_TENSOR_OP`* | | -| 104 |*`CUBLAS_GEMM_ALGO4_TENSOR_OP`* | | -| 105 |*`CUBLAS_GEMM_ALGO5_TENSOR_OP`* | | -| 106 |*`CUBLAS_GEMM_ALGO6_TENSOR_OP`* | | -| 107 |*`CUBLAS_GEMM_ALGO7_TENSOR_OP`* | | -| 108 |*`CUBLAS_GEMM_ALGO8_TENSOR_OP`* | | -| 109 |*`CUBLAS_GEMM_ALGO9_TENSOR_OP`* | | -| 110 |*`CUBLAS_GEMM_ALGO10_TENSOR_OP`* | | -| 111 |*`CUBLAS_GEMM_ALGO11_TENSOR_OP`* | | -| 112 |*`CUBLAS_GEMM_ALGO12_TENSOR_OP`* | | -| 113 |*`CUBLAS_GEMM_ALGO13_TENSOR_OP`* | | -| 114 |*`CUBLAS_GEMM_ALGO14_TENSOR_OP`* | | -| 115 |*`CUBLAS_GEMM_ALGO15_TENSOR_OP`* | | -| enum |***`cublasMath_t`*** | | -| 0 |*`CUBLAS_DEFAULT_MATH`* | | -| 1 |*`CUBLAS_TENSOR_OP_MATH`* | | -| enum* |`cublasDataType_t` | | -| struct |`cublasContext` | | -| struct* |`cublasHandle_t` |`hipblasHandle_t` | +| **type** | **CUDA** |**CUDA version\***| **HIP** |**HIP value** (if differs) | +|-------------:|---------------------------------------------------------------|:----------------:|------------------------------------------------------------|---------------------------| +| enum |***`cublasStatus`*** | |***`hipblasStatus_t`*** | +| enum |***`cublasStatus_t`*** | |***`hipblasStatus_t`*** | +| 0 |*`CUBLAS_STATUS_SUCCESS`* | |*`HIPBLAS_STATUS_SUCCESS`* | +| 1 |*`CUBLAS_STATUS_NOT_INITIALIZED`* | |*`HIPBLAS_STATUS_NOT_INITIALIZED`* | +| 3 |*`CUBLAS_STATUS_ALLOC_FAILED`* | |*`HIPBLAS_STATUS_ALLOC_FAILED`* | 2 | +| 7 |*`CUBLAS_STATUS_INVALID_VALUE`* | |*`HIPBLAS_STATUS_INVALID_VALUE`* | 3 | +| 8 |*`CUBLAS_STATUS_ARCH_MISMATCH`* | |*`HIPBLAS_STATUS_ARCH_MISMATCH`* | | +| 11 |*`CUBLAS_STATUS_MAPPING_ERROR`* | |*`HIPBLAS_STATUS_MAPPING_ERROR`* | 4 | +| 13 |*`CUBLAS_STATUS_EXECUTION_FAILED`* | |*`HIPBLAS_STATUS_EXECUTION_FAILED`* | 5 | +| 14 |*`CUBLAS_STATUS_INTERNAL_ERROR`* | |*`HIPBLAS_STATUS_INTERNAL_ERROR`* | 6 | +| 15 |*`CUBLAS_STATUS_NOT_SUPPORTED`* | |*`HIPBLAS_STATUS_NOT_SUPPORTED`* | 7 | +| 16 |*`CUBLAS_STATUS_LICENSE_ERROR`* | | | +| enum |***`cublasOperation_t`*** | |***`hipblasOperation_t`*** | +| 0 |*`CUBLAS_OP_N`* | |*`HIPBLAS_OP_N`* | 111 | +| 1 |*`CUBLAS_OP_T`* | |*`HIPBLAS_OP_T`* | 112 | +| 2 |*`CUBLAS_OP_C`* | |*`HIPBLAS_OP_C`* | 113 | +| 2 |*`CUBLAS_OP_HERMITAN`* | 10.1 |*`HIPBLAS_OP_C`* | 113 | +| 3 |*`CUBLAS_OP_CONJG`* | 10.1 | | +| enum |***`cublasFillMode_t`*** | |***`hipblasFillMode_t`*** | +| 0 |*`CUBLAS_FILL_MODE_LOWER`* | |*`HIPBLAS_FILL_MODE_LOWER`* | 121 | +| 1 |*`CUBLAS_FILL_MODE_UPPER`* | |*`HIPBLAS_FILL_MODE_UPPER`* | 122 | +| 2 |*`CUBLAS_FILL_MODE_FULL`* | 10.1 |*`HIPBLAS_FILL_MODE_FULL`* | 123 | +| enum |***`cublasDiagType_t`*** | |***`hipblasDiagType_t`*** | +| 0 |*`CUBLAS_DIAG_NON_UNIT`* | |*`HIPBLAS_DIAG_NON_UNIT`* | 131 | +| 1 |*`CUBLAS_DIAG_UNIT`* | |*`HIPBLAS_DIAG_UNIT`* | 132 | +| enum |***`cublasSideMode_t`*** | |***`hipblasSideMode_t`*** | +| 0 |*`CUBLAS_SIDE_LEFT`* | |*`HIPBLAS_SIDE_LEFT`* | 141 | +| 1 |*`CUBLAS_SIDE_RIGHT`* | |*`HIPBLAS_SIDE_RIGHT`* | 142 | +| enum |***`cublasPointerMode_t`*** | |***`hipblasPointerMode_t`*** | +| 0 |*`CUBLAS_POINTER_MODE_HOST`* | |*`HIPBLAS_POINTER_MODE_HOST`* | +| 1 |*`CUBLAS_POINTER_MODE_DEVICE`* | |*`HIPBLAS_POINTER_MODE_DEVICE`* | +| enum |***`cublasAtomicsMode_t`*** | | | +| 0 |*`CUBLAS_ATOMICS_NOT_ALLOWED`* | | | +| 1 |*`CUBLAS_ATOMICS_ALLOWED`* | | | +| enum |***`cublasGemmAlgo_t`*** | 8.0 |***`hipblasGemmAlgo_t`*** | +| -1 |*`CUBLAS_GEMM_DFALT`* | 8.0 |*`HIPBLAS_GEMM_DEFAULT`* | 160 | +| -1 |*`CUBLAS_GEMM_DEFAULT`* | 8.0 |*`HIPBLAS_GEMM_DEFAULT`* | 160 | +| 0 |*`CUBLAS_GEMM_ALGO0`* | 8.0 | | +| 1 |*`CUBLAS_GEMM_ALGO1`* | 8.0 | | +| 2 |*`CUBLAS_GEMM_ALGO2`* | 8.0 | | +| 3 |*`CUBLAS_GEMM_ALGO3`* | 8.0 | | +| 4 |*`CUBLAS_GEMM_ALGO4`* | 8.0 | | +| 5 |*`CUBLAS_GEMM_ALGO5`* | 8.0 | | +| 6 |*`CUBLAS_GEMM_ALGO6`* | 8.0 | | +| 7 |*`CUBLAS_GEMM_ALGO7`* | 8.0 | | +| 8 |*`CUBLAS_GEMM_ALGO8`* | 9.0 | | +| 9 |*`CUBLAS_GEMM_ALGO9`* | 9.0 | | +| 10 |*`CUBLAS_GEMM_ALGO10`* | 9.0 | | +| 11 |*`CUBLAS_GEMM_ALGO11`* | 9.0 | | +| 12 |*`CUBLAS_GEMM_ALGO12`* | 9.0 | | +| 13 |*`CUBLAS_GEMM_ALGO13`* | 9.0 | | +| 14 |*`CUBLAS_GEMM_ALGO14`* | 9.0 | | +| 15 |*`CUBLAS_GEMM_ALGO15`* | 9.0 | | +| 16 |*`CUBLAS_GEMM_ALGO16`* | 9.0 | | +| 17 |*`CUBLAS_GEMM_ALGO17`* | 9.0 | | +| 18 |*`CUBLAS_GEMM_ALGO18`* | 9.2 | | +| 19 |*`CUBLAS_GEMM_ALGO19`* | 9.2 | | +| 20 |*`CUBLAS_GEMM_ALGO20`* | 9.2 | | +| 21 |*`CUBLAS_GEMM_ALGO21`* | 9.2 | | +| 22 |*`CUBLAS_GEMM_ALGO22`* | 9.2 | | +| 23 |*`CUBLAS_GEMM_ALGO23`* | 9.2 | | +| 99 |*`CUBLAS_GEMM_DEFAULT_TENSOR_OP`* | 9.0 | | +| 99 |*`CUBLAS_GEMM_DFALT_TENSOR_OP`* | 9.0 | | +| 100 |*`CUBLAS_GEMM_ALGO0_TENSOR_OP`* | 9.0 | | +| 101 |*`CUBLAS_GEMM_ALGO1_TENSOR_OP`* | 9.0 | | +| 102 |*`CUBLAS_GEMM_ALGO2_TENSOR_OP`* | 9.0 | | +| 103 |*`CUBLAS_GEMM_ALGO3_TENSOR_OP`* | 9.0 | | +| 104 |*`CUBLAS_GEMM_ALGO4_TENSOR_OP`* | 9.0 | | +| 105 |*`CUBLAS_GEMM_ALGO5_TENSOR_OP`* | 9.2 | | +| 106 |*`CUBLAS_GEMM_ALGO6_TENSOR_OP`* | 9.2 | | +| 107 |*`CUBLAS_GEMM_ALGO7_TENSOR_OP`* | 9.2 | | +| 108 |*`CUBLAS_GEMM_ALGO8_TENSOR_OP`* | 9.2 | | +| 109 |*`CUBLAS_GEMM_ALGO9_TENSOR_OP`* | 9.2 | | +| 110 |*`CUBLAS_GEMM_ALGO10_TENSOR_OP`* | 9.2 | | +| 111 |*`CUBLAS_GEMM_ALGO11_TENSOR_OP`* | 9.2 | | +| 112 |*`CUBLAS_GEMM_ALGO12_TENSOR_OP`* | 9.2 | | +| 113 |*`CUBLAS_GEMM_ALGO13_TENSOR_OP`* | 9.2 | | +| 114 |*`CUBLAS_GEMM_ALGO14_TENSOR_OP`* | 9.2 | | +| 115 |*`CUBLAS_GEMM_ALGO15_TENSOR_OP`* | 9.2 | | +| enum |***`cublasMath_t`*** | 9.0 | | +| 0 |*`CUBLAS_DEFAULT_MATH`* | 9.0 | | +| 1 |*`CUBLAS_TENSOR_OP_MATH`* | 9.0 | | +| enum* |`cublasDataType_t` | 7.5 | | +| struct |`cublasContext` | | | +| struct* |`cublasHandle_t` | |`hipblasHandle_t` | ## **2. CUBLAS API functions** -| **CUDA** | **HIP** | -|-----------------------------------------------------------|-------------------------------------------------| +| **CUDA** | **HIP** |**CUDA version\***| +|-----------------------------------------------------------|-------------------------------------------------|:----------------:| |`cublasCreate` |`hipblasCreate` | |`cublasCreate_v2` |`hipblasCreate` | |`cublasDestroy` |`hipblasDestroy` | |`cublasDestroy_v2` |`hipblasDestroy` | |`cublasGetVersion` | | |`cublasGetVersion_v2` | | -|`cublasGetProperty` | | -|`cublasGetCudartVersion` | | +|`cublasGetProperty` | | 8.0 | +|`cublasGetCudartVersion` | | 10.1 | |`cublasGetStream` |`hipblasGetStream` | |`cublasGetStream_v2` |`hipblasGetStream` | |`cublasSetStream` |`hipblasSetStream` | @@ -112,12 +112,12 @@ |`cublasSetPointerMode_v2` |`hipblasSetPointerMode` | |`cublasGetAtomicsMode` | | |`cublasSetAtomicsMode` | | -|`cublasGetMathMode` | | -|`cublasSetMathMode` | | -|`cublasLogCallback` | | -|`cublasLoggerConfigure` | | -|`cublasSetLoggerCallback` | | -|`cublasGetLoggerCallback` | | +|`cublasGetMathMode` | | 9.0 | +|`cublasSetMathMode` | | 9.0 | +|`cublasLogCallback` | | 9.2 | +|`cublasLoggerConfigure` | | 9.2 | +|`cublasSetLoggerCallback` | | 9.2 | +|`cublasGetLoggerCallback` | | 9.2 | |`cublasSetVector` |`hipblasSetVector` | |`cublasGetVector` |`hipblasGetVector` | |`cublasSetMatrix` |`hipblasSetMatrix` | @@ -127,7 +127,7 @@ |`cublasSetMatrixAsync` | | |`cublasGetMatrixAsync` | | |`cublasXerbla` | | -|`cublasNrm2Ex` | | +|`cublasNrm2Ex` | | 8.0 | |`cublasSnrm2` |`hipblasSnrm2` | |`cublasSnrm2_v2` |`hipblasSnrm2` | |`cublasDnrm2` |`hipblasDnrm2` | @@ -136,8 +136,8 @@ |`cublasScnrm2_v2` | | |`cublasDznrm2` | | |`cublasDznrm2_v2` | | -|`cublasDotEx` | | -|`cublasDotcEx` | | +|`cublasDotEx` | | 8.0 | +|`cublasDotcEx` | | 8.0 | |`cublasSdot` |`hipblasSdot` | |`cublasSdot_v2` |`hipblasSdot` | |`cublasDdot` |`hipblasDdot` | @@ -150,7 +150,7 @@ |`cublasZdotu_v2` | | |`cublasZdotc` | | |`cublasZdotc_v2` | | -|`cublasScalEx` | | +|`cublasScalEx` | | 8.0 | |`cublasSscal` |`hipblasSscal` | |`cublasSscal_v2` |`hipblasSscal` | |`cublasDscal` |`hipblasDscal` | @@ -163,7 +163,7 @@ |`cublasZscal_v2` | | |`cublasZdscal` | | |`cublasZdscal_v2` | | -|`cublasAxpyEx` | | +|`cublasAxpyEx` | | 8.0 | |`cublasSaxpy` |`hipblasSaxpy` | |`cublasSaxpy_v2` |`hipblasSaxpy` | |`cublasDaxpy` |`hipblasDaxpy` | @@ -177,7 +177,7 @@ |`cublasDcopy` |`hipblasDcopy` | |`cublasDcopy_v2` |`hipblasDcopy` | |`cublasCcopy` | | -|`cublasCopyEx` | | +|`cublasCopyEx` | | 10.1 | |`cublasCcopy_v2` | | |`cublasZcopy` | | |`cublasZcopy_v2` | | @@ -189,7 +189,7 @@ |`cublasCswap_v2` | | |`cublasZswap` | | |`cublasZswap_v2` | | -|`cublasIamaxEx` | | +|`cublasIamaxEx` | | 10.1 | |`cublasIsamax` |`hipblasIsamax` | |`cublasIsamax_v2` |`hipblasIsamax` | |`cublasIdamax` |`hipblasIdamax` | @@ -198,7 +198,7 @@ |`cublasIcamax_v2` | | |`cublasIzamax` | | |`cublasIzamax_v2` | | -|`cublasIaminEx` | | +|`cublasIaminEx` | | 10.1 | |`cublasIsamin` | | |`cublasIsamin_v2` | | |`cublasIdamin` | | @@ -207,7 +207,7 @@ |`cublasIcamin_v2` | | |`cublasIzamin` | | |`cublasIzamin_v2` | | -|`cublasAsumEx` | | +|`cublasAsumEx` | | 10.1 | |`cublasSasum` |`hipblasSasum` | |`cublasSasum_v2` |`hipblasSasum` | |`cublasDasum` |`hipblasDasum` | @@ -216,7 +216,7 @@ |`cublasScasum_v2` | | |`cublasDzasum` | | |`cublasDzasum_v2` | | -|`cublasRotEx` | | +|`cublasRotEx` | | 10.1 | |`cublasSrot` | | |`cublasSrot_v2` | | |`cublasDrot` | | @@ -225,7 +225,7 @@ |`cublasCrot_v2` | | |`cublasZrot` | | |`cublasZrot_v2` | | -|`cublasRotgEx` | | +|`cublasRotgEx` | | 10.1 | |`cublasZdrot` | | |`cublasZdrot_v2` | | |`cublasSrotg` | | @@ -236,12 +236,12 @@ |`cublasCrotg_v2` | | |`cublasZrotg` | | |`cublasZrotg_v2` | | -|`cublasRotmEx` | | +|`cublasRotmEx` | | 10.1 | |`cublasSrotm` | | |`cublasSrotm_v2` | | |`cublasDrotm` | | |`cublasDrotm_v2` | | -|`cublasRotmgEx` | | +|`cublasRotmgEx` | | 10.1 | |`cublasSrotmg` | | |`cublasSrotmg_v2` | | |`cublasDrotmg` | | @@ -396,16 +396,16 @@ |`cublasDgemm_v2` |`hipblasDgemm` | |`cublasCgemm` | | |`cublasCgemm_v2` | | -|`cublasCgemm3m` | | -|`cublasCgemm3mEx` | | +|`cublasCgemm3m` | | 8.0 | +|`cublasCgemm3mEx` | | 8.0 | |`cublasZgemm` | | |`cublasZgemm_v2` | | -|`cublasZgemm3m` | | -|`cublasHgemm` |`hipblasHgemm` | -|`cublasSgemmEx` | | -|`cublasGemmEx` |`hipblasGemmEx` | -|`cublasCgemmEx` | | -|`cublasUint8gemmBias` | | +|`cublasZgemm3m` | | 8.0 | +|`cublasHgemm` |`hipblasHgemm` | 7.5 | +|`cublasSgemmEx` | | 7.5 | +|`cublasGemmEx` |`hipblasGemmEx` | 8.0 | +|`cublasCgemmEx` | | 8.0 | +|`cublasUint8gemmBias` | | 8.0 | |`cublasSsyrk` | | |`cublasSsyrk_v2` | | |`cublasDsyrk` | | @@ -414,14 +414,14 @@ |`cublasCsyrk_v2` | | |`cublasZsyrk` | | |`cublasZsyrk_v2` | | -|`cublasCsyrkEx` | | -|`cublasCsyrk3mEx` | | +|`cublasCsyrkEx` | | 8.0 | +|`cublasCsyrk3mEx` | | 8.0 | |`cublasCherk` | | |`cublasCherk_v2` | | |`cublasZherk` | | |`cublasZherk_v2` | | -|`cublasCherkEx` | | -|`cublasCherk3mEx` | | +|`cublasCherkEx` | | 8.0 | +|`cublasCherk3mEx` | | 8.0 | |`cublasSsyr2k` | | |`cublasSsyr2k_v2` | | |`cublasDsyr2k` | | @@ -468,20 +468,20 @@ |`cublasCtrmm_v2` | | |`cublasZtrmm` | | |`cublasZtrmm_v2` | | -|`cublasHgemmBatched` | | +|`cublasHgemmBatched` | | 9.0 | |`cublasSgemmBatched` |`hipblasSgemmBatched` | |`cublasDgemmBatched` |`hipblasDgemmBatched` | |`cublasCgemmBatched` | | -|`cublasCgemm3mBatched` | | +|`cublasCgemm3mBatched` | | 8.0 | |`cublasZgemmBatched` | | -|`cublasGemmBatchedEx` | | -|`cublasGemmStridedBatchedEx` | | -|`cublasSgemmStridedBatched` |`hipblasSgemmStridedBatched` | -|`cublasDgemmStridedBatched` |`hipblasDgemmStridedBatched` | -|`cublasCgemmStridedBatched` | | -|`cublasCgemm3mStridedBatched` | | -|`cublasZgemmStridedBatched` | | -|`cublasHgemmStridedBatched` | | +|`cublasGemmBatchedEx` | | 9.1 | +|`cublasGemmStridedBatchedEx` | | 9.1 | +|`cublasSgemmStridedBatched` |`hipblasSgemmStridedBatched` | 8.0 | +|`cublasDgemmStridedBatched` |`hipblasDgemmStridedBatched` | 8.0 | +|`cublasCgemmStridedBatched` | | 8.0 | +|`cublasCgemm3mStridedBatched` | | 8.0 | +|`cublasZgemmStridedBatched` | | 8.0 | +|`cublasHgemmStridedBatched` | | 8.0 | |`cublasSgeam` |`hipblasSgeam` | |`cublasDgeam` |`hipblasDgeam` | |`cublasCgeam` | | @@ -526,3 +526,5 @@ |`cublasDtrttp` | | |`cublasCtrttp` | | |`cublasZtrttp` | | + +\* CUDA version, in which API has appeared and (optional) last version before abandoning it; no value in case of earlier versions < 7.5. diff --git a/docs/markdown/CUDA_Driver_API_functions_supported_by_HIP.md b/docs/markdown/CUDA_Driver_API_functions_supported_by_HIP.md index 010cf4d2c9..7aa24465f1 100644 --- a/docs/markdown/CUDA_Driver_API_functions_supported_by_HIP.md +++ b/docs/markdown/CUDA_Driver_API_functions_supported_by_HIP.md @@ -2,8 +2,8 @@ ## **1. Data types used by CUDA driver** -| **type** | **CUDA** | **HIP** | -|-------------:|--------------------------------------------------------------------|------------------------------------------------------------| +| **type** | **CUDA** | **HIP** |**CUDA version\***| +|-------------:|:-------------------------------------------------------------------|:-----------------------------------------------------------|:----------------:| | struct |`CUDA_ARRAY3D_DESCRIPTOR` |`HIP_ARRAY3D_DESCRIPTOR` | | typedef |`CUDA_ARRAY3D_DESCRIPTOR_st` |`HIP_ARRAY3D_DESCRIPTOR` | | struct |`CUDA_ARRAY_DESCRIPTOR` |`HIP_ARRAY_DESCRIPTOR` | @@ -28,8 +28,8 @@ | typedef |`CUipcEventHandle_st` |`ihipIpcEventHandle_t` | | struct |`CUipcMemHandle` |`hipIpcMemHandle_t` | | typedef |`CUipcMemHandle_st` |`hipIpcMemHandle_st` | -| union |`CUstreamBatchMemOpParams` | | -| typedef |`CUstreamBatchMemOpParams_union` | | +| union |`CUstreamBatchMemOpParams` | | 8.0 | +| typedef |`CUstreamBatchMemOpParams_union` | | 8.0 | | enum |***`CUaddress_mode`*** |***`hipTextureAddressMode`*** | | typedef |***`CUaddress_mode_enum`*** |***`hipTextureAddressMode`*** | | 0 |*`CU_TR_ADDRESS_MODE_WRAP`* |*`hipAddressModeWrap`* | @@ -157,22 +157,22 @@ | 83 |*`CU_DEVICE_ATTRIBUTE_MANAGED_MEMORY`* | | | 84 |*`CU_DEVICE_ATTRIBUTE_MULTI_GPU_BOARD`* |*`hipDeviceAttributeIsMultiGpuBoard`* | | 85 |*`CU_DEVICE_ATTRIBUTE_MULTI_GPU_BOARD_GROUP_ID`* | | -| 86 |*`CU_DEVICE_ATTRIBUTE_HOST_NATIVE_ATOMIC_SUPPORTED`* | | -| 87 |*`CU_DEVICE_ATTRIBUTE_SINGLE_TO_DOUBLE_PRECISION_PERF_RATIO`* | | -| 88 |*`CU_DEVICE_ATTRIBUTE_PAGEABLE_MEMORY_ACCESS`* | | -| 89 |*`CU_DEVICE_ATTRIBUTE_CONCURRENT_MANAGED_ACCESS`* | | -| 90 |*`CU_DEVICE_ATTRIBUTE_COMPUTE_PREEMPTION_SUPPORTED`* | | -| 91 |*`CU_DEVICE_ATTRIBUTE_CAN_USE_HOST_POINTER_FOR_REGISTERED_MEM`* | | -| 92 |*`CU_DEVICE_ATTRIBUTE_CAN_USE_STREAM_MEM_OPS`* | | -| 93 |*`CU_DEVICE_ATTRIBUTE_CAN_USE_64_BIT_STREAM_MEM_OPS`* | | -| 94 |*`CU_DEVICE_ATTRIBUTE_CAN_USE_STREAM_WAIT_VALUE_NOR`* | | -| 95 |*`CU_DEVICE_ATTRIBUTE_COOPERATIVE_LAUNCH`* | | -| 96 |*`CU_DEVICE_ATTRIBUTE_COOPERATIVE_MULTI_DEVICE_LAUNCH`* | | -| 97 |*`CU_DEVICE_ATTRIBUTE_MAX_SHARED_MEMORY_PER_BLOCK_OPTIN`* | | -| 98 |*`CU_DEVICE_ATTRIBUTE_CAN_FLUSH_REMOTE_WRITES`* | | -| 99 |*`CU_DEVICE_ATTRIBUTE_HOST_REGISTER_SUPPORTED`* | | -| 100 |*`CU_DEVICE_ATTRIBUTE_PAGEABLE_MEMORY_ACCESS_USES_HOST_PAGE_TABLES`*| | -| 101 |*`CU_DEVICE_ATTRIBUTE_DIRECT_MANAGED_MEM_ACCESS_FROM_HOST`* | | +| 86 |*`CU_DEVICE_ATTRIBUTE_HOST_NATIVE_ATOMIC_SUPPORTED`* | | 8.0 | +| 87 |*`CU_DEVICE_ATTRIBUTE_SINGLE_TO_DOUBLE_PRECISION_PERF_RATIO`* | | 8.0 | +| 88 |*`CU_DEVICE_ATTRIBUTE_PAGEABLE_MEMORY_ACCESS`* | | 8.0 | +| 89 |*`CU_DEVICE_ATTRIBUTE_CONCURRENT_MANAGED_ACCESS`* | | 8.0 | +| 90 |*`CU_DEVICE_ATTRIBUTE_COMPUTE_PREEMPTION_SUPPORTED`* | | 8.0 | +| 91 |*`CU_DEVICE_ATTRIBUTE_CAN_USE_HOST_POINTER_FOR_REGISTERED_MEM`* | | 8.0 | +| 92 |*`CU_DEVICE_ATTRIBUTE_CAN_USE_STREAM_MEM_OPS`* | | 9.0 | +| 93 |*`CU_DEVICE_ATTRIBUTE_CAN_USE_64_BIT_STREAM_MEM_OPS`* | | 9.0 | +| 94 |*`CU_DEVICE_ATTRIBUTE_CAN_USE_STREAM_WAIT_VALUE_NOR`* | | 9.0 | +| 95 |*`CU_DEVICE_ATTRIBUTE_COOPERATIVE_LAUNCH`* | | 9.0 | +| 96 |*`CU_DEVICE_ATTRIBUTE_COOPERATIVE_MULTI_DEVICE_LAUNCH`* | | 9.0 | +| 97 |*`CU_DEVICE_ATTRIBUTE_MAX_SHARED_MEMORY_PER_BLOCK_OPTIN`* | | 9.0 | +| 98 |*`CU_DEVICE_ATTRIBUTE_CAN_FLUSH_REMOTE_WRITES`* | | 9.2 | +| 99 |*`CU_DEVICE_ATTRIBUTE_HOST_REGISTER_SUPPORTED`* | | 9.2 | +| 100 |*`CU_DEVICE_ATTRIBUTE_PAGEABLE_MEMORY_ACCESS_USES_HOST_PAGE_TABLES`*| | 9.2 | +| 101 |*`CU_DEVICE_ATTRIBUTE_DIRECT_MANAGED_MEM_ACCESS_FROM_HOST`* | | 9.2 | | 102 |*`CU_DEVICE_ATTRIBUTE_MAX`* | | | enum |***`CUevent_flags`*** | | | typedef |***`CUevent_flags_enum`*** | | @@ -200,8 +200,8 @@ | 5 |*`CU_FUNC_ATTRIBUTE_PTX_VERSION`* | | | 6 |*`CU_FUNC_ATTRIBUTE_BINARY_VERSION`* | | | 7 |*`CU_FUNC_ATTRIBUTE_CACHE_MODE_CA`* | | -| 8 |*`CU_FUNC_ATTRIBUTE_MAX_DYNAMIC_SHARED_SIZE_BYTES`* | | -| 9 |*`CU_FUNC_ATTRIBUTE_PREFERRED_SHARED_MEMORY_CARVEOUT`* | | +| 8 |*`CU_FUNC_ATTRIBUTE_MAX_DYNAMIC_SHARED_SIZE_BYTES`* | | 9.0 | +| 9 |*`CU_FUNC_ATTRIBUTE_PREFERRED_SHARED_MEMORY_CARVEOUT`* | | 9.0 | | 10 |*`CU_FUNC_ATTRIBUTE_MAX`* | | | enum |***`CUgraphicsMapResourceFlags`*** | | | typedef |***`CUgraphicsMapResourceFlags_enum`*** | | @@ -244,11 +244,11 @@ | |*`CU_JIT_LOG_VERBOSE`* | | | |*`CU_JIT_GENERATE_LINE_INFO`* | | | |*`CU_JIT_CACHE_MODE`* | | -| |*`CU_JIT_NEW_SM3X_OPT`* | | -| |*`CU_JIT_FAST_COMPILE`* | | -| |*`CU_JIT_GLOBAL_SYMBOL_NAMES`* | | -| |*`CU_JIT_GLOBAL_SYMBOL_ADDRESSES`* | | -| |*`CU_JIT_GLOBAL_SYMBOL_COUNT`* | | +| |*`CU_JIT_NEW_SM3X_OPT`* | | 8.0 | +| |*`CU_JIT_FAST_COMPILE`* | | 8.0 | +| |*`CU_JIT_GLOBAL_SYMBOL_NAMES`* | | 10.0 | +| |*`CU_JIT_GLOBAL_SYMBOL_ADDRESSES`* | | 10.0 | +| |*`CU_JIT_GLOBAL_SYMBOL_COUNT`* | | 10.0 | | |*`CU_JIT_NUM_OPTIONS`* | | | enum |***`CUjit_target`*** | | | typedef |***`CUjit_target_enum`*** | | @@ -264,14 +264,14 @@ | 37 |*`CU_TARGET_COMPUTE_37`* | | | 50 |*`CU_TARGET_COMPUTE_50`* | | | 52 |*`CU_TARGET_COMPUTE_52`* | | -| 53 |*`CU_TARGET_COMPUTE_53`* | | -| 60 |*`CU_TARGET_COMPUTE_60`* | | -| 61 |*`CU_TARGET_COMPUTE_61`* | | -| 62 |*`CU_TARGET_COMPUTE_62`* | | -| 70 |*`CU_TARGET_COMPUTE_70`* | | -| 72 |*`CU_TARGET_COMPUTE_72`* | | -| 73 |*`CU_TARGET_COMPUTE_73`* | | -| 75 |*`CU_TARGET_COMPUTE_75`* | | +| 53 |*`CU_TARGET_COMPUTE_53`* | | 8.0 | +| 60 |*`CU_TARGET_COMPUTE_60`* | | 8.0 | +| 61 |*`CU_TARGET_COMPUTE_61`* | | 8.0 | +| 62 |*`CU_TARGET_COMPUTE_62`* | | 8.0 | +| 70 |*`CU_TARGET_COMPUTE_70`* | | 9.0 | +| 72 |*`CU_TARGET_COMPUTE_72`* | | 10.1 | +| 73 |*`CU_TARGET_COMPUTE_73`* | | 9.1 - 9.2 | +| 75 |*`CU_TARGET_COMPUTE_75`* | | 9.1 | | enum |***`CUjitInputType`*** | | | typedef |***`CUjitInputType_enum`*** | | | 0 |*`CU_JIT_INPUT_CUBIN`* | | @@ -287,16 +287,16 @@ | 0x02 |*`CU_LIMIT_MALLOC_HEAP_SIZE`* |*`hipLimitMallocHeapSize`* | | 0x03 |*`CU_LIMIT_DEV_RUNTIME_SYNC_DEPTH`* | | | 0x04 |*`CU_LIMIT_DEV_RUNTIME_PENDING_LAUNCH_COUNT`* | | -| 0x05 |*`CU_LIMIT_MAX_L2_FETCH_GRANULARITY`* | | +| 0x05 |*`CU_LIMIT_MAX_L2_FETCH_GRANULARITY`* | | 10.0 | | |*`CU_LIMIT_MAX`* | | -| enum |***`CUmem_advise`*** | | -| typedef |***`CUmem_advise_enum`*** | | -| 1 |*`CU_MEM_ADVISE_SET_READ_MOSTLY`* | | -| 2 |*`CU_MEM_ADVISE_UNSET_READ_MOSTLY`* | | -| 3 |*`CU_MEM_ADVISE_SET_PREFERRED_LOCATION`* | | -| 4 |*`CU_MEM_ADVISE_UNSET_PREFERRED_LOCATION`* | | -| 5 |*`CU_MEM_ADVISE_SET_ACCESSED_BY`* | | -| 6 |*`CU_MEM_ADVISE_UNSET_ACCESSED_BY`* | | +| enum |***`CUmem_advise`*** | | 8.0 | +| typedef |***`CUmem_advise_enum`*** | | 8.0 | +| 1 |*`CU_MEM_ADVISE_SET_READ_MOSTLY`* | | 8.0 | +| 2 |*`CU_MEM_ADVISE_UNSET_READ_MOSTLY`* | | 8.0 | +| 3 |*`CU_MEM_ADVISE_SET_PREFERRED_LOCATION`* | | 8.0 | +| 4 |*`CU_MEM_ADVISE_UNSET_PREFERRED_LOCATION`* | | 8.0 | +| 5 |*`CU_MEM_ADVISE_SET_ACCESSED_BY`* | | 8.0 | +| 6 |*`CU_MEM_ADVISE_UNSET_ACCESSED_BY`* | | 8.0 | | enum |***`CUmemAttach_flags`*** | | | typedef |***`CUmemAttach_flags_enum`*** | | | 0x1 |*`CU_MEM_ATTACH_GLOBAL`* | | @@ -308,12 +308,12 @@ | 0x02 |*`CU_MEMORYTYPE_DEVICE`* |*`hipMemoryTypeDevice`* | | 0x03 |*`CU_MEMORYTYPE_ARRAY`* |*`hipMemoryTypeArray`* | | 0x04 |*`CU_MEMORYTYPE_UNIFIED`* |*`hipMemoryTypeUnified`* | -| enum |***`CUmem_range_attribute`*** | | -| typedef |***`CUmem_range_attribute_enum`*** | | -| 1 |*`CU_MEM_RANGE_ATTRIBUTE_READ_MOSTLY`* | | -| 2 |*`CU_MEM_RANGE_ATTRIBUTE_PREFERRED_LOCATION`* | | -| 3 |*`CU_MEM_RANGE_ATTRIBUTE_ACCESSED_BY`* | | -| 4 |*`CU_MEM_RANGE_ATTRIBUTE_LAST_PREFETCH_LOCATION`* | | +| enum |***`CUmem_range_attribute`*** | | 8.0 | +| typedef |***`CUmem_range_attribute_enum`*** | | 8.0 | +| 1 |*`CU_MEM_RANGE_ATTRIBUTE_READ_MOSTLY`* | | 8.0 | +| 2 |*`CU_MEM_RANGE_ATTRIBUTE_PREFERRED_LOCATION`* | | 8.0 | +| 3 |*`CU_MEM_RANGE_ATTRIBUTE_ACCESSED_BY`* | | 8.0 | +| 4 |*`CU_MEM_RANGE_ATTRIBUTE_LAST_PREFETCH_LOCATION`* | | 8.0 | | enum |***`CUcomputemode`*** |***`hipComputeMode`*** | | typedef |***`CUcomputemode_enum`*** |***`hipComputeMode`*** | | 0 |*`CU_COMPUTEMODE_DEFAULT`* |*`hipComputeModeDefault`* | @@ -334,7 +334,7 @@ | 6 |*`CU_POINTER_ATTRIBUTE_SYNC_MEMOPS`* | | | 7 |*`CU_POINTER_ATTRIBUTE_BUFFER_ID`* | | | 8 |*`CU_POINTER_ATTRIBUTE_IS_MANAGED`* | | -| 9 |*`CU_POINTER_ATTRIBUTE_DEVICE_ORDINAL`* | | +| 9 |*`CU_POINTER_ATTRIBUTE_DEVICE_ORDINAL`* | | 9.2 | | enum |***`CUresourcetype`*** | | | typedef |***`CUresourcetype_enum`*** | | | 0x00 |*`CU_RESOURCE_TYPE_ARRAY`* | | @@ -409,15 +409,15 @@ | 217 |*`CUDA_ERROR_PEER_ACCESS_UNSUPPORTED`* |*`hipErrorPeerAccessUnsupported`* | | 218 |*`CUDA_ERROR_INVALID_PTX`* |*`hipErrorInvalidKernelFile`* | | 219 |*`CUDA_ERROR_INVALID_GRAPHICS_CONTEXT`* |*`hipErrorInvalidGraphicsContext`* | -| 220 |*`CUDA_ERROR_NVLINK_UNCORRECTABLE`* | | -| 221 |*`CUDA_ERROR_JIT_COMPILER_NOT_FOUND`* | | +| 220 |*`CUDA_ERROR_NVLINK_UNCORRECTABLE`* | | 8.0 | +| 221 |*`CUDA_ERROR_JIT_COMPILER_NOT_FOUND`* | | 9.0 | | 300 |*`CUDA_ERROR_INVALID_SOURCE`* |*`hipErrorInvalidSource`* | | 301 |*`CUDA_ERROR_FILE_NOT_FOUND`* |*`hipErrorFileNotFound`* | | 302 |*`CUDA_ERROR_SHARED_OBJECT_SYMBOL_NOT_FOUND`* |*`hipErrorSharedObjectSymbolNotFound`* | | 303 |*`CUDA_ERROR_SHARED_OBJECT_INIT_FAILED`* |*`hipErrorSharedObjectInitFailed`* | | 304 |*`CUDA_ERROR_OPERATING_SYSTEM`* |*`hipErrorOperatingSystem`* | | 400 |*`CUDA_ERROR_INVALID_HANDLE`* |*`hipErrorInvalidResourceHandle`* | -| 401 |*`CUDA_ERROR_ILLEGAL_STATE`* | | +| 401 |*`CUDA_ERROR_ILLEGAL_STATE`* | | 10.0 | | 500 |*`CUDA_ERROR_NOT_FOUND`* |*`hipErrorNotFound`* | | 600 |*`CUDA_ERROR_NOT_READY`* |*`hipErrorNotReady`* | | 700 |*`CUDA_ERROR_ILLEGAL_ADDRESS`* |*`hipErrorIllegalAddress`* | @@ -440,40 +440,40 @@ | 719 |*`CUDA_ERROR_LAUNCH_FAILED`* |*`hipErrorLaunchFailure`* | | 800 |*`CUDA_ERROR_NOT_PERMITTED`* | | | 801 |*`CUDA_ERROR_NOT_SUPPORTED`* | | -| 802 |*`CUDA_ERROR_SYSTEM_NOT_READY`* | | -| 803 |*`CUDA_ERROR_SYSTEM_DRIVER_MISMATCH`* | | -| 804 |*`CUDA_ERROR_COMPAT_NOT_SUPPORTED_ON_DEVICE`* | | -| 900 |*`CUDA_ERROR_STREAM_CAPTURE_UNSUPPORTED`* | | -| 901 |*`CUDA_ERROR_STREAM_CAPTURE_INVALIDATED`* | | -| 902 |*`CUDA_ERROR_STREAM_CAPTURE_MERGE`* | | -| 903 |*`CUDA_ERROR_STREAM_CAPTURE_UNMATCHED`* | | -| 904 |*`CUDA_ERROR_STREAM_CAPTURE_UNJOINED`* | | -| 905 |*`CUDA_ERROR_STREAM_CAPTURE_ISOLATION`* | | -| 906 |*`CUDA_ERROR_STREAM_CAPTURE_IMPLICIT`* | | -| 907 |*`CUDA_ERROR_CAPTURED_EVENT`* | | -| 908 |*`CUDA_ERROR_STREAM_CAPTURE_WRONG_THREAD`* | | +| 802 |*`CUDA_ERROR_SYSTEM_NOT_READY`* | | 10.0 | +| 803 |*`CUDA_ERROR_SYSTEM_DRIVER_MISMATCH`* | | 10.1 | +| 804 |*`CUDA_ERROR_COMPAT_NOT_SUPPORTED_ON_DEVICE`* | | 10.1 | +| 900 |*`CUDA_ERROR_STREAM_CAPTURE_UNSUPPORTED`* | | 10.0 | +| 901 |*`CUDA_ERROR_STREAM_CAPTURE_INVALIDATED`* | | 10.0 | +| 902 |*`CUDA_ERROR_STREAM_CAPTURE_MERGE`* | | 10.0 | +| 903 |*`CUDA_ERROR_STREAM_CAPTURE_UNMATCHED`* | | 10.0 | +| 904 |*`CUDA_ERROR_STREAM_CAPTURE_UNJOINED`* | | 10.0 | +| 905 |*`CUDA_ERROR_STREAM_CAPTURE_ISOLATION`* | | 10.0 | +| 906 |*`CUDA_ERROR_STREAM_CAPTURE_IMPLICIT`* | | 10.0 | +| 907 |*`CUDA_ERROR_CAPTURED_EVENT`* | | 10.0 | +| 908 |*`CUDA_ERROR_STREAM_CAPTURE_WRONG_THREAD`* | | 10.1 | | 999 |*`CUDA_ERROR_UNKNOWN`* | | | enum |***`CUsharedconfig`*** |***`hipSharedMemConfig`*** | | typedef |***`CUsharedconfig_enum`*** |***`hipSharedMemConfig`*** | | 0x00 |*`CU_SHARED_MEM_CONFIG_DEFAULT_BANK_SIZE`* |*`hipSharedMemBankSizeDefault`* | | 0x01 |*`CU_SHARED_MEM_CONFIG_FOUR_BYTE_BANK_SIZE`* |*`hipSharedMemBankSizeFourByte`* | | 0x02 |*`CU_SHARED_MEM_CONFIG_EIGHT_BYTE_BANK_SIZE`* |*`hipSharedMemBankSizeEightByte`* | -| enum |***`CUshared_carveout`*** | | -| typedef |`CUshared_carveout_enum` | | -| -1 |*`CU_SHAREDMEM_CARVEOUT_DEFAULT`* | | -| 100 |*`CU_SHAREDMEM_CARVEOUT_MAX_SHARED`* | | -| 0 |*`CU_SHAREDMEM_CARVEOUT_MAX_L1`* | | +| enum |***`CUshared_carveout`*** | | 9.0 | +| typedef |***`CUshared_carveout_enum`*** | | 9.0 | +| -1 |*`CU_SHAREDMEM_CARVEOUT_DEFAULT`* | | 9.0 | +| 100 |*`CU_SHAREDMEM_CARVEOUT_MAX_SHARED`* | | 9.0 | +| 0 |*`CU_SHAREDMEM_CARVEOUT_MAX_L1`* | | 9.0 | | enum |***`CUstream_flags`*** | | | typedef |***`CUstream_flags_enum`*** | | | 0x0 |*`CU_STREAM_DEFAULT`* |*`hipStreamDefault`* | | 0x1 |*`CU_STREAM_NON_BLOCKING`* |*`hipStreamNonBlocking`* | -| enum |***`CUstreamBatchMemOpType`*** | | -| typedef |***`CUstreamBatchMemOpType_enum`*** | | -| 1 |*`CU_STREAM_MEM_OP_WAIT_VALUE_32`* | | -| 2 |*`CU_STREAM_MEM_OP_WRITE_VALUE_32`* | | -| 3 |*`CU_STREAM_MEM_OP_FLUSH_REMOTE_WRITES`* | | -| 4 |*`CU_STREAM_MEM_OP_WAIT_VALUE_64`* | | -| 5 |*`CU_STREAM_MEM_OP_WRITE_VALUE_64`* | | +| enum |***`CUstreamBatchMemOpType`*** | | 8.0 | +| typedef |***`CUstreamBatchMemOpType_enum`*** | | 8.0 | +| 1 |*`CU_STREAM_MEM_OP_WAIT_VALUE_32`* | | 8.0 | +| 2 |*`CU_STREAM_MEM_OP_WRITE_VALUE_32`* | | 8.0 | +| 3 |*`CU_STREAM_MEM_OP_FLUSH_REMOTE_WRITES`* | | 8.0 | +| 4 |*`CU_STREAM_MEM_OP_WAIT_VALUE_64`* | | 9.0 | +| 5 |*`CU_STREAM_MEM_OP_WRITE_VALUE_64`* | | 9.0 | | enum |***`CUGLDeviceList`*** | | | typedef |***`CUGLDeviceList_enum`*** | | | 0x01 |*`CU_GL_DEVICE_LIST_ALL`* | | @@ -523,8 +523,8 @@ | typedef |`CUcontext_st` |`hipCtx_t` | | typedef |`CUdevice` |`hipDevice_t` | | typedef |`CUdeviceptr` |`hipDeviceptr_t` | -| struct |`CUeglStreamConnection_st` | | -| typedef |`CUeglStreamConnection` | | +| struct |`CUeglStreamConnection_st` | | 9.1 | +| typedef |`CUeglStreamConnection` | | 9.1 | | typedef |`CUevent` |`hipEvent_t` | | struct |`CUevent_st` |`ihipEvent_t` | | typedef |`CUfunction` |`hipFunction_t` | @@ -552,7 +552,7 @@ | define |`CU_MEMHOSTALLOC_PORTABLE` |`hipHostMallocPortable` | | define |`CU_MEMHOSTALLOC_WRITECOMBINED` |`hipHostAllocWriteCombined` | | define |`CU_MEMHOSTREGISTER_DEVICEMAP` |`hipHostRegisterMapped` | -| define |`CU_MEMHOSTREGISTER_IOMEMORY` |`hipHostRegisterIoMemory` | +| define |`CU_MEMHOSTREGISTER_IOMEMORY` |`hipHostRegisterIoMemory` | 7.5 | | define |`CU_MEMHOSTREGISTER_PORTABLE` |`hipHostRegisterPortable` | | define |`CU_PARAM_TR_DEFAULT` | | | define |`CU_STREAM_LEGACY` | | @@ -567,225 +567,225 @@ | define |`CUDA_ARRAY3D_LAYERED` |`hipArrayLayered` | | define |`CUDA_ARRAY3D_SURFACE_LDST` |`hipArraySurfaceLoadStore` | | define |`CUDA_ARRAY3D_TEXTURE_GATHER` |`hipArrayTextureGather` | -| define |`CUDA_ARRAY3D_COLOR_ATTACHMENT` | | +| define |`CUDA_ARRAY3D_COLOR_ATTACHMENT` | | 10.0 | | define |`CUDA_VERSION` | | -| typedef |`CUexternalMemory` | | -| struct |`CUextMemory_st` | | -| typedef |`CUexternalSemaphore` | | -| struct |`CUextSemaphore_st` | | -| typedef |`CUgraph` | | -| struct |`CUgraph_st` | | -| typedef |`CUgraphNode` | | -| struct |`CUgraphNode_st` | | -| typedef |`CUgraphExec` | | -| struct |`CUgraphExec_st` | | -| typedef |`CUhostFn` | | +| typedef |`CUexternalMemory` | | 10.0 | +| struct |`CUextMemory_st` | | 10.0 | +| typedef |`CUexternalSemaphore` | | 10.0 | +| struct |`CUextSemaphore_st` | | 10.0 | +| typedef |`CUgraph` | | 10.0 | +| struct |`CUgraph_st` | | 10.0 | +| typedef |`CUgraphNode` | | 10.0 | +| struct |`CUgraphNode_st` | | 10.0 | +| typedef |`CUgraphExec` | | 10.0 | +| struct |`CUgraphExec_st` | | 10.0 | +| typedef |`CUhostFn` | | 10.0 | | typedef |`CUoccupancyB2DSize` | | -| struct |`CUDA_KERNEL_NODE_PARAMS` | | -| typedef |`CUDA_KERNEL_NODE_PARAMS_st` | | -| struct |`CUDA_LAUNCH_PARAMS` | | -| typedef |`CUDA_LAUNCH_PARAMS_st` | | -| struct |`CUDA_MEMSET_NODE_PARAMS` | | -| typedef |`CUDA_MEMSET_NODE_PARAMS_st` | | -| struct |`CUDA_HOST_NODE_PARAMS` | | -| typedef |`CUDA_HOST_NODE_PARAMS_st` | | -| enum |***`CUgraphNodeType`*** | | -| typedef |***`CUgraphNodeType_enum`*** | | -| 0 |*`CU_GRAPH_NODE_TYPE_KERNEL`* | | -| 1 |*`CU_GRAPH_NODE_TYPE_MEMCPY`* | | -| 2 |*`CU_GRAPH_NODE_TYPE_MEMSET`* | | -| 3 |*`CU_GRAPH_NODE_TYPE_HOST`* | | -| 4 |*`CU_GRAPH_NODE_TYPE_GRAPH`* | | -| 5 |*`CU_GRAPH_NODE_TYPE_EMPTY`* | | -| 6 |*`CU_GRAPH_NODE_TYPE_COUNT`* | | -| enum |***`CUstreamCaptureStatus`*** | | -| typedef |***`CUstreamCaptureStatus_enum`*** | | -| 0 |*`CU_STREAM_CAPTURE_STATUS_NONE`* | | -| 1 |*`CU_STREAM_CAPTURE_STATUS_ACTIVE`* | | -| 2 |*`CU_STREAM_CAPTURE_STATUS_INVALIDATED`* | | -| enum |***`CUstreamCaptureMode`*** | | -| typedef |***`CUstreamCaptureMode_enum`*** | | -| 0 |*`CU_STREAM_CAPTURE_MODE_GLOBAL`* | | -| 1 |*`CU_STREAM_CAPTURE_MODE_THREAD_LOCAL`* | | -| 2 |*`CU_STREAM_CAPTURE_MODE_RELAXED`* | | -| enum |***`CUstreamWaitValue_flags`*** | | -| typedef |***`CUstreamWaitValue_flags_enum`*** | | -| 0x0 |*`CU_STREAM_WAIT_VALUE_GEQ`* | | -| 0x1 |*`CU_STREAM_WAIT_VALUE_EQ`* | | -| 0x2 |*`CU_STREAM_WAIT_VALUE_AND`* | | -| 1<<30 |*`CU_STREAM_WAIT_VALUE_FLUSH`* | | -| enum |***`CUstreamWriteValue_flags`*** | | -| typedef |***`CUstreamWriteValue_flags_enum`*** | | -| 0x0 |*`CU_STREAM_WRITE_VALUE_DEFAULT`* | | -| 0x1 |*`CU_STREAM_WRITE_VALUE_NO_MEMORY_BARRIER`* | | -| enum |***`CUdevice_P2PAttribute`*** | | -| typedef |***`CUdevice_P2PAttribute_enum`*** | | -| 0x01 |*`CU_DEVICE_P2P_ATTRIBUTE_PERFORMANCE_RANK`* | | -| 0x02 |*`CU_DEVICE_P2P_ATTRIBUTE_ACCESS_SUPPORTED`* | | -| 0x03 |*`CU_DEVICE_P2P_ATTRIBUTE_NATIVE_ATOMIC_SUPPORTED`* | | -| 0x04 |*`CU_DEVICE_P2P_ATTRIBUTE_ACCESS_ACCESS_SUPPORTED`* | | -| 0x04 |*`CU_DEVICE_P2P_ATTRIBUTE_ARRAY_ACCESS_ACCESS_SUPPORTED`* | | -| 0x04 |*`CU_DEVICE_P2P_ATTRIBUTE_CUDA_ARRAY_ACCESS_SUPPORTED`* | | -| enum |***`CUeglColorFormat`*** | | -| typedef |***`CUeglColorFormate_enum`*** | | -| 0x00 |*`CU_EGL_COLOR_FORMAT_YUV420_PLANAR`* | | -| 0x01 |*`CU_EGL_COLOR_FORMAT_YUV420_SEMIPLANAR`* | | -| 0x02 |*`CU_EGL_COLOR_FORMAT_YUV422_PLANAR`* | | -| 0x03 |*`CU_EGL_COLOR_FORMAT_YUV422_SEMIPLANAR`* | | -| 0x04 |*`CU_EGL_COLOR_FORMAT_RGB`* | | -| 0x05 |*`CU_EGL_COLOR_FORMAT_BGR`* | | -| 0x06 |*`CU_EGL_COLOR_FORMAT_ARGB`* | | -| 0x07 |*`CU_EGL_COLOR_FORMAT_RGBA`* | | -| 0x08 |*`CU_EGL_COLOR_FORMAT_L`* | | -| 0x09 |*`CU_EGL_COLOR_FORMAT_R`* | | -| 0x0A |*`CU_EGL_COLOR_FORMAT_YUV444_PLANAR`* | | -| 0x0B |*`CU_EGL_COLOR_FORMAT_YUV444_SEMIPLANAR`* | | -| 0x0C |*`CU_EGL_COLOR_FORMAT_YUYV_422`* | | -| 0x0D |*`CU_EGL_COLOR_FORMAT_UYVY_422`* | | -| 0x0E |*`CU_EGL_COLOR_FORMAT_ABGR`* | | -| 0x0F |*`CU_EGL_COLOR_FORMAT_BGRA`* | | -| 0x10 |*`CU_EGL_COLOR_FORMAT_A`* | | -| 0x11 |*`CU_EGL_COLOR_FORMAT_RG`* | | -| 0x12 |*`CU_EGL_COLOR_FORMAT_AYUV`* | | -| 0x13 |*`CU_EGL_COLOR_FORMAT_YVU444_SEMIPLANAR`* | | -| 0x14 |*`CU_EGL_COLOR_FORMAT_YVU422_SEMIPLANAR`* | | -| 0x15 |*`CU_EGL_COLOR_FORMAT_YVU420_SEMIPLANAR`* | | -| 0x16 |*`CU_EGL_COLOR_FORMAT_Y10V10U10_444_SEMIPLANAR`* | | -| 0x17 |*`CU_EGL_COLOR_FORMAT_Y10V10U10_420_SEMIPLANAR`* | | -| 0x18 |*`CU_EGL_COLOR_FORMAT_Y12V12U12_444_SEMIPLANAR`* | | -| 0x19 |*`CU_EGL_COLOR_FORMAT_Y12V12U12_420_SEMIPLANAR`* | | -| 0x1A |*`CU_EGL_COLOR_FORMAT_VYUY_ER`* | | -| 0x1B |*`CU_EGL_COLOR_FORMAT_UYVY_ER`* | | -| 0x1C |*`CU_EGL_COLOR_FORMAT_YUYV_ER`* | | -| 0x1D |*`CU_EGL_COLOR_FORMAT_YVYU_ER`* | | -| 0x1E |*`CU_EGL_COLOR_FORMAT_YUV_ER`* | | -| 0x1F |*`CU_EGL_COLOR_FORMAT_YUVA_ER`* | | -| 0x20 |*`CU_EGL_COLOR_FORMAT_AYUV_ER`* | | -| 0x21 |*`CU_EGL_COLOR_FORMAT_YUV444_PLANAR_ER`* | | -| 0x22 |*`CU_EGL_COLOR_FORMAT_YUV422_PLANAR_ER`* | | -| 0x23 |*`CU_EGL_COLOR_FORMAT_YUV420_PLANAR_ER`* | | -| 0x24 |*`CU_EGL_COLOR_FORMAT_YUV444_SEMIPLANAR_ER`* | | -| 0x25 |*`CU_EGL_COLOR_FORMAT_YUV422_SEMIPLANAR_ER`* | | -| 0x26 |*`CU_EGL_COLOR_FORMAT_YUV420_SEMIPLANAR_ER`* | | -| 0x27 |*`CU_EGL_COLOR_FORMAT_YVU444_PLANAR_ER`* | | -| 0x28 |*`CU_EGL_COLOR_FORMAT_YVU422_PLANAR_ER`* | | -| 0x29 |*`CU_EGL_COLOR_FORMAT_YVU420_PLANAR_ER`* | | -| 0x2A |*`CU_EGL_COLOR_FORMAT_YVU444_SEMIPLANAR_ER`* | | -| 0x2B |*`CU_EGL_COLOR_FORMAT_YVU422_SEMIPLANAR_ER`* | | -| 0x2C |*`CU_EGL_COLOR_FORMAT_YVU420_SEMIPLANAR_ER`* | | -| 0x2D |*`CU_EGL_COLOR_FORMAT_BAYER_RGGB`* | | -| 0x2E |*`CU_EGL_COLOR_FORMAT_BAYER_BGGR`* | | -| 0x2F |*`CU_EGL_COLOR_FORMAT_BAYER_GRBG`* | | -| 0x30 |*`CU_EGL_COLOR_FORMAT_BAYER_GBRG`* | | -| 0x31 |*`CU_EGL_COLOR_FORMAT_BAYER10_RGGB`* | | -| 0x32 |*`CU_EGL_COLOR_FORMAT_BAYER10_BGGR`* | | -| 0x33 |*`CU_EGL_COLOR_FORMAT_BAYER10_GRBG`* | | -| 0x34 |*`CU_EGL_COLOR_FORMAT_BAYER10_GBRG`* | | -| 0x35 |*`CU_EGL_COLOR_FORMAT_BAYER12_RGGB`* | | -| 0x36 |*`CU_EGL_COLOR_FORMAT_BAYER12_BGGR`* | | -| 0x37 |*`CU_EGL_COLOR_FORMAT_BAYER12_GRBG`* | | -| 0x38 |*`CU_EGL_COLOR_FORMAT_BAYER12_GBRG`* | | -| 0x39 |*`CU_EGL_COLOR_FORMAT_BAYER14_RGGB`* | | -| 0x3A |*`CU_EGL_COLOR_FORMAT_BAYER14_BGGR`* | | -| 0x3B |*`CU_EGL_COLOR_FORMAT_BAYER14_GRBG`* | | -| 0x3C |*`CU_EGL_COLOR_FORMAT_BAYER14_GBRG`* | | -| 0x3D |*`CU_EGL_COLOR_FORMAT_BAYER20_RGGB`* | | -| 0x3E |*`CU_EGL_COLOR_FORMAT_BAYER20_BGGR`* | | -| 0x3F |*`CU_EGL_COLOR_FORMAT_BAYER20_GRBG`* | | -| 0x40 |*`CU_EGL_COLOR_FORMAT_BAYER20_GBRG`* | | -| 0x41 |*`CU_EGL_COLOR_FORMAT_YVU444_PLANAR`* | | -| 0x42 |*`CU_EGL_COLOR_FORMAT_YVU422_PLANAR`* | | -| 0x43 |*`CU_EGL_COLOR_FORMAT_YVU420_PLANAR`* | | -| 0x44 |*`CU_EGL_COLOR_FORMAT_BAYER_ISP_RGGB`* | | -| 0x45 |*`CU_EGL_COLOR_FORMAT_BAYER_ISP_BGGR`* | | -| 0x46 |*`CU_EGL_COLOR_FORMAT_BAYER_ISP_GRBG`* | | -| 0x47 |*`CU_EGL_COLOR_FORMAT_BAYER_ISP_GBRG`* | | -| 0x48 |*`CU_EGL_COLOR_FORMAT_MAX`* | | -| enum |***`CUeglFrameType`*** | | -| typedef |***`CUeglFrameType_enum`*** | | -| 0 |*`CU_EGL_FRAME_TYPE_ARRAY`* | | -| 1 |*`CU_EGL_FRAME_TYPE_PITCH`* | | -| enum |***`CUeglResourceLocationFlags`*** | | -| typedef |***`CUeglResourceLocationFlags_enum`*** | | -| 0x00 |*`CU_EGL_RESOURCE_LOCATION_SYSMEM`* | | -| 0x01 |*`CU_EGL_RESOURCE_LOCATION_VIDMEM`* | | -| enum |***`CUexternalMemoryHandleType`*** | | -| typedef |***`CUexternalMemoryHandleType_enum`*** | | -| 1 |*`CU_EXTERNAL_MEMORY_HANDLE_TYPE_OPAQUE_FD`* | | -| 2 |*`CU_EXTERNAL_MEMORY_HANDLE_TYPE_OPAQUE_WIN32`* | | -| 3 |*`CU_EXTERNAL_MEMORY_HANDLE_TYPE_OPAQUE_WIN32_KMT`* | | -| 4 |*`CU_EXTERNAL_MEMORY_HANDLE_TYPE_D3D12_HEAP`* | | -| 5 |*`CU_EXTERNAL_MEMORY_HANDLE_TYPE_D3D12_RESOURCE`* | | -| define |`CUDA_EXTERNAL_MEMORY_DEDICATED` | | -| struct |`CUDA_EXTERNAL_MEMORY_HANDLE_DESC` | | -| typedef |`CUDA_EXTERNAL_MEMORY_HANDLE_DESC_st` | | -| struct |`CUDA_EXTERNAL_MEMORY_BUFFER_DESC` | | -| typedef |`CUDA_EXTERNAL_MEMORY_BUFFER_DESC_st` | | -| struct |`CUDA_EXTERNAL_MEMORY_MIPMAPPED_ARRAY_DESC` | | -| typedef |`CUDA_EXTERNAL_MEMORY_MIPMAPPED_ARRAY_DESC_st` | | -| enum |***`CUexternalSemaphoreHandleType`*** | | -| typedef |***`CUexternalSemaphoreHandleType_enum`*** | | -| 1 |*`CU_EXTERNAL_SEMAPHORE_HANDLE_TYPE_OPAQUE_FD`* | | -| 2 |*`CU_EXTERNAL_SEMAPHORE_HANDLE_TYPE_OPAQUE_WIN32`* | | -| 3 |*`CU_EXTERNAL_SEMAPHORE_HANDLE_TYPE_OPAQUE_WIN32_KMT`* | | -| 4 |*`CU_EXTERNAL_SEMAPHORE_HANDLE_TYPE_D3D12_FENCE`* | | -| struct |`CUDA_EXTERNAL_SEMAPHORE_HANDLE_DESC` | | -| typedef |`CUDA_EXTERNAL_SEMAPHORE_HANDLE_DESC_st` | | -| struct |`CUDA_EXTERNAL_SEMAPHORE_SIGNAL_PARAMS` | | -| typedef |`CUDA_EXTERNAL_SEMAPHORE_SIGNAL_PARAMS_st` | | -| struct |`CUDA_EXTERNAL_SEMAPHORE_WAIT_PARAMS` | | -| typedef |`CUDA_EXTERNAL_SEMAPHORE_WAIT_PARAMS_st` | | -| define |`CUDA_COOPERATIVE_LAUNCH_MULTI_DEVICE_NO_PRE_LAUNCH_SYNC` | | -| define |`CUDA_COOPERATIVE_LAUNCH_MULTI_DEVICE_NO_POST_LAUNCH_SYNC` | | +| struct |`CUDA_KERNEL_NODE_PARAMS` | | 10.0 | +| typedef |`CUDA_KERNEL_NODE_PARAMS_st` | | 10.0 | +| struct |`CUDA_LAUNCH_PARAMS` | | 9.0 | +| typedef |`CUDA_LAUNCH_PARAMS_st` | | 9.0 | +| struct |`CUDA_MEMSET_NODE_PARAMS` | | 10.0 | +| typedef |`CUDA_MEMSET_NODE_PARAMS_st` | | 10.0 | +| struct |`CUDA_HOST_NODE_PARAMS` | | 10.0 | +| typedef |`CUDA_HOST_NODE_PARAMS_st` | | 10.0 | +| enum |***`CUgraphNodeType`*** | | 10.0 | +| typedef |***`CUgraphNodeType_enum`*** | | 10.0 | +| 0 |*`CU_GRAPH_NODE_TYPE_KERNEL`* | | 10.0 | +| 1 |*`CU_GRAPH_NODE_TYPE_MEMCPY`* | | 10.0 | +| 2 |*`CU_GRAPH_NODE_TYPE_MEMSET`* | | 10.0 | +| 3 |*`CU_GRAPH_NODE_TYPE_HOST`* | | 10.0 | +| 4 |*`CU_GRAPH_NODE_TYPE_GRAPH`* | | 10.0 | +| 5 |*`CU_GRAPH_NODE_TYPE_EMPTY`* | | 10.0 | +| 6 |*`CU_GRAPH_NODE_TYPE_COUNT`* | | 10.0 | +| enum |***`CUstreamCaptureStatus`*** | | 10.0 | +| typedef |***`CUstreamCaptureStatus_enum`*** | | 10.0 | +| 0 |*`CU_STREAM_CAPTURE_STATUS_NONE`* | | 10.0 | +| 1 |*`CU_STREAM_CAPTURE_STATUS_ACTIVE`* | | 10.0 | +| 2 |*`CU_STREAM_CAPTURE_STATUS_INVALIDATED`* | | 10.0 | +| enum |***`CUstreamCaptureMode`*** | | 10.1 | +| typedef |***`CUstreamCaptureMode_enum`*** | | 10.1 | +| 0 |*`CU_STREAM_CAPTURE_MODE_GLOBAL`* | | 10.1 | +| 1 |*`CU_STREAM_CAPTURE_MODE_THREAD_LOCAL`* | | 10.1 | +| 2 |*`CU_STREAM_CAPTURE_MODE_RELAXED`* | | 10.1 | +| enum |***`CUstreamWaitValue_flags`*** | | 8.0 | +| typedef |***`CUstreamWaitValue_flags_enum`*** | | 8.0 | +| 0x0 |*`CU_STREAM_WAIT_VALUE_GEQ`* | | 8.0 | +| 0x1 |*`CU_STREAM_WAIT_VALUE_EQ`* | | 8.0 | +| 0x2 |*`CU_STREAM_WAIT_VALUE_AND`* | | 8.0 | +| 1<<30 |*`CU_STREAM_WAIT_VALUE_FLUSH`* | | 8.0 | +| enum |***`CUstreamWriteValue_flags`*** | | 8.0 | +| typedef |***`CUstreamWriteValue_flags_enum`*** | | 8.0 | +| 0x0 |*`CU_STREAM_WRITE_VALUE_DEFAULT`* | | 8.0 | +| 0x1 |*`CU_STREAM_WRITE_VALUE_NO_MEMORY_BARRIER`* | | 8.0 | +| enum |***`CUdevice_P2PAttribute`*** | | 8.0 | +| typedef |***`CUdevice_P2PAttribute_enum`*** | | 8.0 | +| 0x01 |*`CU_DEVICE_P2P_ATTRIBUTE_PERFORMANCE_RANK`* | | 8.0 | +| 0x02 |*`CU_DEVICE_P2P_ATTRIBUTE_ACCESS_SUPPORTED`* | | 8.0 | +| 0x03 |*`CU_DEVICE_P2P_ATTRIBUTE_NATIVE_ATOMIC_SUPPORTED`* | | 8.0 | +| 0x04 |*`CU_DEVICE_P2P_ATTRIBUTE_ACCESS_ACCESS_SUPPORTED`* | | 10.1 | +| 0x04 |*`CU_DEVICE_P2P_ATTRIBUTE_ARRAY_ACCESS_ACCESS_SUPPORTED`* | | 9.2 - 10.0 | +| 0x04 |*`CU_DEVICE_P2P_ATTRIBUTE_CUDA_ARRAY_ACCESS_SUPPORTED`* | | 9.2 | +| enum |***`CUeglColorFormat`*** | | 8.0 | +| typedef |***`CUeglColorFormate_enum`*** | | 8.0 | +| 0x00 |*`CU_EGL_COLOR_FORMAT_YUV420_PLANAR`* | | 8.0 | +| 0x01 |*`CU_EGL_COLOR_FORMAT_YUV420_SEMIPLANAR`* | | 8.0 | +| 0x02 |*`CU_EGL_COLOR_FORMAT_YUV422_PLANAR`* | | 8.0 | +| 0x03 |*`CU_EGL_COLOR_FORMAT_YUV422_SEMIPLANAR`* | | 8.0 | +| 0x04 |*`CU_EGL_COLOR_FORMAT_RGB`* | | 8.0 | +| 0x05 |*`CU_EGL_COLOR_FORMAT_BGR`* | | 8.0 | +| 0x06 |*`CU_EGL_COLOR_FORMAT_ARGB`* | | 8.0 | +| 0x07 |*`CU_EGL_COLOR_FORMAT_RGBA`* | | 8.0 | +| 0x08 |*`CU_EGL_COLOR_FORMAT_L`* | | 8.0 | +| 0x09 |*`CU_EGL_COLOR_FORMAT_R`* | | 8.0 | +| 0x0A |*`CU_EGL_COLOR_FORMAT_YUV444_PLANAR`* | | 9.0 | +| 0x0B |*`CU_EGL_COLOR_FORMAT_YUV444_SEMIPLANAR`* | | 9.0 | +| 0x0C |*`CU_EGL_COLOR_FORMAT_YUYV_422`* | | 9.0 | +| 0x0D |*`CU_EGL_COLOR_FORMAT_UYVY_422`* | | 9.0 | +| 0x0E |*`CU_EGL_COLOR_FORMAT_ABGR`* | | 9.1 | +| 0x0F |*`CU_EGL_COLOR_FORMAT_BGRA`* | | 9.1 | +| 0x10 |*`CU_EGL_COLOR_FORMAT_A`* | | 9.1 | +| 0x11 |*`CU_EGL_COLOR_FORMAT_RG`* | | 9.1 | +| 0x12 |*`CU_EGL_COLOR_FORMAT_AYUV`* | | 9.1 | +| 0x13 |*`CU_EGL_COLOR_FORMAT_YVU444_SEMIPLANAR`* | | 9.1 | +| 0x14 |*`CU_EGL_COLOR_FORMAT_YVU422_SEMIPLANAR`* | | 9.1 | +| 0x15 |*`CU_EGL_COLOR_FORMAT_YVU420_SEMIPLANAR`* | | 9.1 | +| 0x16 |*`CU_EGL_COLOR_FORMAT_Y10V10U10_444_SEMIPLANAR`* | | 9.1 | +| 0x17 |*`CU_EGL_COLOR_FORMAT_Y10V10U10_420_SEMIPLANAR`* | | 9.1 | +| 0x18 |*`CU_EGL_COLOR_FORMAT_Y12V12U12_444_SEMIPLANAR`* | | 9.1 | +| 0x19 |*`CU_EGL_COLOR_FORMAT_Y12V12U12_420_SEMIPLANAR`* | | 9.1 | +| 0x1A |*`CU_EGL_COLOR_FORMAT_VYUY_ER`* | | 9.1 | +| 0x1B |*`CU_EGL_COLOR_FORMAT_UYVY_ER`* | | 9.1 | +| 0x1C |*`CU_EGL_COLOR_FORMAT_YUYV_ER`* | | 9.1 | +| 0x1D |*`CU_EGL_COLOR_FORMAT_YVYU_ER`* | | 9.1 | +| 0x1E |*`CU_EGL_COLOR_FORMAT_YUV_ER`* | | 9.1 | +| 0x1F |*`CU_EGL_COLOR_FORMAT_YUVA_ER`* | | 9.1 | +| 0x20 |*`CU_EGL_COLOR_FORMAT_AYUV_ER`* | | 9.1 | +| 0x21 |*`CU_EGL_COLOR_FORMAT_YUV444_PLANAR_ER`* | | 9.1 | +| 0x22 |*`CU_EGL_COLOR_FORMAT_YUV422_PLANAR_ER`* | | 9.1 | +| 0x23 |*`CU_EGL_COLOR_FORMAT_YUV420_PLANAR_ER`* | | 9.1 | +| 0x24 |*`CU_EGL_COLOR_FORMAT_YUV444_SEMIPLANAR_ER`* | | 9.1 | +| 0x25 |*`CU_EGL_COLOR_FORMAT_YUV422_SEMIPLANAR_ER`* | | 9.1 | +| 0x26 |*`CU_EGL_COLOR_FORMAT_YUV420_SEMIPLANAR_ER`* | | 9.1 | +| 0x27 |*`CU_EGL_COLOR_FORMAT_YVU444_PLANAR_ER`* | | 9.1 | +| 0x28 |*`CU_EGL_COLOR_FORMAT_YVU422_PLANAR_ER`* | | 9.1 | +| 0x29 |*`CU_EGL_COLOR_FORMAT_YVU420_PLANAR_ER`* | | 9.1 | +| 0x2A |*`CU_EGL_COLOR_FORMAT_YVU444_SEMIPLANAR_ER`* | | 9.1 | +| 0x2B |*`CU_EGL_COLOR_FORMAT_YVU422_SEMIPLANAR_ER`* | | 9.1 | +| 0x2C |*`CU_EGL_COLOR_FORMAT_YVU420_SEMIPLANAR_ER`* | | 9.1 | +| 0x2D |*`CU_EGL_COLOR_FORMAT_BAYER_RGGB`* | | 9.1 | +| 0x2E |*`CU_EGL_COLOR_FORMAT_BAYER_BGGR`* | | 9.1 | +| 0x2F |*`CU_EGL_COLOR_FORMAT_BAYER_GRBG`* | | 9.1 | +| 0x30 |*`CU_EGL_COLOR_FORMAT_BAYER_GBRG`* | | 9.1 | +| 0x31 |*`CU_EGL_COLOR_FORMAT_BAYER10_RGGB`* | | 9.1 | +| 0x32 |*`CU_EGL_COLOR_FORMAT_BAYER10_BGGR`* | | 9.1 | +| 0x33 |*`CU_EGL_COLOR_FORMAT_BAYER10_GRBG`* | | 9.1 | +| 0x34 |*`CU_EGL_COLOR_FORMAT_BAYER10_GBRG`* | | 9.1 | +| 0x35 |*`CU_EGL_COLOR_FORMAT_BAYER12_RGGB`* | | 9.1 | +| 0x36 |*`CU_EGL_COLOR_FORMAT_BAYER12_BGGR`* | | 9.1 | +| 0x37 |*`CU_EGL_COLOR_FORMAT_BAYER12_GRBG`* | | 9.1 | +| 0x38 |*`CU_EGL_COLOR_FORMAT_BAYER12_GBRG`* | | 9.1 | +| 0x39 |*`CU_EGL_COLOR_FORMAT_BAYER14_RGGB`* | | 9.1 | +| 0x3A |*`CU_EGL_COLOR_FORMAT_BAYER14_BGGR`* | | 9.1 | +| 0x3B |*`CU_EGL_COLOR_FORMAT_BAYER14_GRBG`* | | 9.1 | +| 0x3C |*`CU_EGL_COLOR_FORMAT_BAYER14_GBRG`* | | 9.1 | +| 0x3D |*`CU_EGL_COLOR_FORMAT_BAYER20_RGGB`* | | 9.1 | +| 0x3E |*`CU_EGL_COLOR_FORMAT_BAYER20_BGGR`* | | 9.1 | +| 0x3F |*`CU_EGL_COLOR_FORMAT_BAYER20_GRBG`* | | 9.1 | +| 0x40 |*`CU_EGL_COLOR_FORMAT_BAYER20_GBRG`* | | 9.1 | +| 0x41 |*`CU_EGL_COLOR_FORMAT_YVU444_PLANAR`* | | 9.1 | +| 0x42 |*`CU_EGL_COLOR_FORMAT_YVU422_PLANAR`* | | 9.1 | +| 0x43 |*`CU_EGL_COLOR_FORMAT_YVU420_PLANAR`* | | 9.1 | +| 0x44 |*`CU_EGL_COLOR_FORMAT_BAYER_ISP_RGGB`* | | 9.2 | +| 0x45 |*`CU_EGL_COLOR_FORMAT_BAYER_ISP_BGGR`* | | 9.2 | +| 0x46 |*`CU_EGL_COLOR_FORMAT_BAYER_ISP_GRBG`* | | 9.2 | +| 0x47 |*`CU_EGL_COLOR_FORMAT_BAYER_ISP_GBRG`* | | 9.2 | +| 0x48 |*`CU_EGL_COLOR_FORMAT_MAX`* | | 9.0 | +| enum |***`CUeglFrameType`*** | | 8.0 | +| typedef |***`CUeglFrameType_enum`*** | | 8.0 | +| 0 |*`CU_EGL_FRAME_TYPE_ARRAY`* | | 8.0 | +| 1 |*`CU_EGL_FRAME_TYPE_PITCH`* | | 8.0 | +| enum |***`CUeglResourceLocationFlags`*** | | 8.0 | +| typedef |***`CUeglResourceLocationFlags_enum`*** | | 8.0 | +| 0x00 |*`CU_EGL_RESOURCE_LOCATION_SYSMEM`* | | 8.0 | +| 0x01 |*`CU_EGL_RESOURCE_LOCATION_VIDMEM`* | | 8.0 | +| enum |***`CUexternalMemoryHandleType`*** | | 10.0 | +| typedef |***`CUexternalMemoryHandleType_enum`*** | | 10.0 | +| 1 |*`CU_EXTERNAL_MEMORY_HANDLE_TYPE_OPAQUE_FD`* | | 10.0 | +| 2 |*`CU_EXTERNAL_MEMORY_HANDLE_TYPE_OPAQUE_WIN32`* | | 10.0 | +| 3 |*`CU_EXTERNAL_MEMORY_HANDLE_TYPE_OPAQUE_WIN32_KMT`* | | 10.0 | +| 4 |*`CU_EXTERNAL_MEMORY_HANDLE_TYPE_D3D12_HEAP`* | | 10.0 | +| 5 |*`CU_EXTERNAL_MEMORY_HANDLE_TYPE_D3D12_RESOURCE`* | | 10.0 | +| define |`CUDA_EXTERNAL_MEMORY_DEDICATED` | | 10.0 | +| struct |`CUDA_EXTERNAL_MEMORY_HANDLE_DESC` | | 10.0 | +| typedef |`CUDA_EXTERNAL_MEMORY_HANDLE_DESC_st` | | 10.0 | +| struct |`CUDA_EXTERNAL_MEMORY_BUFFER_DESC` | | 10.0 | +| typedef |`CUDA_EXTERNAL_MEMORY_BUFFER_DESC_st` | | 10.0 | +| struct |`CUDA_EXTERNAL_MEMORY_MIPMAPPED_ARRAY_DESC` | | 10.0 | +| typedef |`CUDA_EXTERNAL_MEMORY_MIPMAPPED_ARRAY_DESC_st` | | 10.0 | +| enum |***`CUexternalSemaphoreHandleType`*** | | 10.0 | +| typedef |***`CUexternalSemaphoreHandleType_enum`*** | | 10.0 | +| 1 |*`CU_EXTERNAL_SEMAPHORE_HANDLE_TYPE_OPAQUE_FD`* | | 10.0 | +| 2 |*`CU_EXTERNAL_SEMAPHORE_HANDLE_TYPE_OPAQUE_WIN32`* | | 10.0 | +| 3 |*`CU_EXTERNAL_SEMAPHORE_HANDLE_TYPE_OPAQUE_WIN32_KMT`* | | 10.0 | +| 4 |*`CU_EXTERNAL_SEMAPHORE_HANDLE_TYPE_D3D12_FENCE`* | | 10.0 | +| struct |`CUDA_EXTERNAL_SEMAPHORE_HANDLE_DESC` | | 10.0 | +| typedef |`CUDA_EXTERNAL_SEMAPHORE_HANDLE_DESC_st` | | 10.0 | +| struct |`CUDA_EXTERNAL_SEMAPHORE_SIGNAL_PARAMS` | | 10.0 | +| typedef |`CUDA_EXTERNAL_SEMAPHORE_SIGNAL_PARAMS_st` | | 10.0 | +| struct |`CUDA_EXTERNAL_SEMAPHORE_WAIT_PARAMS` | | 10.0 | +| typedef |`CUDA_EXTERNAL_SEMAPHORE_WAIT_PARAMS_st` | | 10.0 | +| define |`CUDA_COOPERATIVE_LAUNCH_MULTI_DEVICE_NO_PRE_LAUNCH_SYNC` | | 9.0 | +| define |`CUDA_COOPERATIVE_LAUNCH_MULTI_DEVICE_NO_POST_LAUNCH_SYNC` | | 9.0 | | define |`__CUDACC__` |`__HIPCC__` | | define |`CUDA_CB` | | -| define |`CU_DEVICE_CPU` | | -| define |`CU_DEVICE_INVALID` | | +| define |`CU_DEVICE_CPU` | | 8.0 | +| define |`CU_DEVICE_INVALID` | | 8.0 | | struct |`CUuuid` | | | typedef |`CUuuid_st` | | ## **2. Error Handling** -| **CUDA** | **HIP** | -|-----------------------------------------------------------|-------------------------------| +| **CUDA** | **HIP** |**CUDA version\***| +|-----------------------------------------------------------|-------------------------------|------------------| | `cuGetErrorName` | | | `cuGetErrorString` | | ## **3. Initialization** -| **CUDA** | **HIP** | -|-----------------------------------------------------------|-------------------------------| +| **CUDA** | **HIP** |**CUDA version\***| +|-----------------------------------------------------------|-------------------------------|------------------| | `cuInit` | `hipInit` | ## **4. Version Management** -| **CUDA** | **HIP** | -|-----------------------------------------------------------|-------------------------------| +| **CUDA** | **HIP** |**CUDA version\***| +|-----------------------------------------------------------|-------------------------------|------------------| | `cuDriverGetVersion` | `hipDriverGetVersion` | ## **5. Device Management** -| **CUDA** | **HIP** | -|-----------------------------------------------------------|-------------------------------| +| **CUDA** | **HIP** |**CUDA version\***| +|-----------------------------------------------------------|-------------------------------|:----------------:| | `cuDriverGetVersion` | `hipGetDevice` | | `cuDeviceGetAttribute` | `hipDeviceGetAttribute` | | `cuDeviceGetCount` | `hipGetDeviceCount` | | `cuDeviceGetName` | `hipDeviceGetName` | | `cuDeviceTotalMem` | `hipDeviceTotalMem` | -| `cuDeviceGetLuid` | | -| `cuDeviceGetUuid` | | +| `cuDeviceGetLuid` | | 10.0 | +| `cuDeviceGetUuid` | | 9.2 | ## **6. Device Management [DEPRECATED]** -| **CUDA** | **HIP** | -|-----------------------------------------------------------|-------------------------------| +| **CUDA** | **HIP** |**CUDA version\***| +|-----------------------------------------------------------|-------------------------------|------------------| | `cuDeviceComputeCapability` | `hipDeviceComputeCapability` | | `cuDeviceGetProperties` | | ## **7. Primary Context Management** -| **CUDA** | **HIP** | -|-----------------------------------------------------------|-------------------------------| +| **CUDA** | **HIP** |**CUDA version\***| +|-----------------------------------------------------------|-------------------------------|------------------| | `cuDevicePrimaryCtxGetState` | `hipDevicePrimaryCtxGetState` | | `cuDevicePrimaryCtxRelease` | `hipDevicePrimaryCtxRelease` | | `cuDevicePrimaryCtxReset` | `hipDevicePrimaryCtxReset` | @@ -794,37 +794,37 @@ ## **8. Context Management** -| **CUDA** | **HIP** | -|-----------------------------------------------------------|-------------------------------| -| `cuCtxCreate` | `hipCtxCreate` | -| `cuCtxDestroy` | `hipCtxDestroy` | -| `cuCtxGetApiVersion` | `hipCtxGetApiVersion` | -| `cuCtxGetCacheConfig` | `hipCtxGetCacheConfig` | -| `cuCtxGetCurrent` | `hipCtxGetCurrent` | -| `cuCtxGetDevice` | `hipCtxGetDevice` | -| `cuCtxGetFlags` | `hipCtxGetFlags` | -| `cuCtxGetLimit` | `hipDeviceGetLimit` | -| `cuCtxGetSharedMemConfig` | `hipCtxGetSharedMemConfig` | +| **CUDA** | **HIP** |**CUDA version\***| +|-----------------------------------------------------------|----------------------------------|------------------| +| `cuCtxCreate` | `hipCtxCreate` | +| `cuCtxDestroy` | `hipCtxDestroy` | +| `cuCtxGetApiVersion` | `hipCtxGetApiVersion` | +| `cuCtxGetCacheConfig` | `hipCtxGetCacheConfig` | +| `cuCtxGetCurrent` | `hipCtxGetCurrent` | +| `cuCtxGetDevice` | `hipCtxGetDevice` | +| `cuCtxGetFlags` | `hipCtxGetFlags` | +| `cuCtxGetLimit` | `hipDeviceGetLimit` | +| `cuCtxGetSharedMemConfig` | `hipCtxGetSharedMemConfig` | | `cuCtxGetStreamPriorityRange` | `hipDeviceGetStreamPriorityRange`| -| `cuCtxPopCurrent` | `hipCtxPopCurrent` | -| `cuCtxPushCurrent` | `hipCtxPushCurrent` | -| `cuCtxSetCacheConfig` | `hipCtxSetCacheConfig` | -| `cuCtxSetCurrent` | `hipCtxSetCurrent` | -| `cuCtxSetLimit` | `hipDeviceSetLimit` | -| `cuCtxSetSharedMemConfig` | `hipCtxSetSharedMemConfig` | -| `cuCtxSynchronize` | `hipCtxSynchronize` | +| `cuCtxPopCurrent` | `hipCtxPopCurrent` | +| `cuCtxPushCurrent` | `hipCtxPushCurrent` | +| `cuCtxSetCacheConfig` | `hipCtxSetCacheConfig` | +| `cuCtxSetCurrent` | `hipCtxSetCurrent` | +| `cuCtxSetLimit` | `hipDeviceSetLimit` | +| `cuCtxSetSharedMemConfig` | `hipCtxSetSharedMemConfig` | +| `cuCtxSynchronize` | `hipCtxSynchronize` | ## **9. Context Management [DEPRECATED]** -| **CUDA** | **HIP** | -|-----------------------------------------------------------|-------------------------------| +| **CUDA** | **HIP** |**CUDA version\***| +|-----------------------------------------------------------|-------------------------------|------------------| | `cuCtxAttach` | | | `cuCtxDetach` | | ## **10. Module Management** -| **CUDA** | **HIP** | -|-----------------------------------------------------------|-------------------------------| +| **CUDA** | **HIP** |**CUDA version\***| +|-----------------------------------------------------------|-------------------------------|------------------| | `cuLinkAddData` | | | `cuLinkAddFile` | | | `cuLinkComplete` | | @@ -842,8 +842,8 @@ ## **11. Memory Management** -| **CUDA** | **HIP** | -|-----------------------------------------------------------|-------------------------------| +| **CUDA** | **HIP** |**CUDA version\***| +|-----------------------------------------------------------|-------------------------------|------------------| | `cuArray3DCreate` | `hipArray3DCreate` | | `cuArray3DGetDescriptor` | | | `cuArrayCreate` | `hipArrayCreate` | @@ -911,20 +911,20 @@ ## **12. Unified Addressing** -| **CUDA** | **HIP** | -|-----------------------------------------------------------|-------------------------------| -| `cuMemAdvise` | | -| `cuMemPrefetchAsync` | | -| `cuMemRangeGetAttribute` | | -| `cuMemRangeGetAttributes` | | +| **CUDA** | **HIP** |**CUDA version\***| +|-----------------------------------------------------------|-------------------------------|:----------------:| +| `cuMemAdvise` | | 8.0 | +| `cuMemPrefetchAsync` | | 8.0 | +| `cuMemRangeGetAttribute` | | 8.0 | +| `cuMemRangeGetAttributes` | | 8.0 | | `cuPointerGetAttribute` | | | `cuPointerGetAttributes` | | | `cuPointerSetAttribute` | | ## **13. Stream Management** -| **CUDA** | **HIP** | -|-----------------------------------------------------------|-------------------------------| +| **CUDA** | **HIP** |**CUDA version\***| +|-----------------------------------------------------------|-------------------------------|:----------------:| | `cuStreamAddCallback` | `hipStreamAddCallback` | | `cuStreamAttachMemAsync` | | | `cuStreamCreate` | `hipStreamCreateWithFlags` | @@ -935,17 +935,17 @@ | `cuStreamQuery` | `hipStreamQuery` | | `cuStreamSynchronize` | `hipStreamSynchronize` | | `cuStreamWaitEvent` | `hipStreamWaitEvent` | -| `cuStreamBeginCapture` | | -| `cuStreamBeginCapture_ptsz` | | -| `cuStreamEndCapture` | | -| `cuStreamGetCaptureInfo` | | -| `cuStreamIsCapturing` | | -| `cuThreadExchangeStreamCaptureMode` | | +| `cuStreamBeginCapture` | | 10.0 | +| `cuStreamBeginCapture_ptsz` | | 10.1 | +| `cuStreamEndCapture` | | 10.0 | +| `cuStreamGetCaptureInfo` | | 10.1 | +| `cuStreamIsCapturing` | | 10.0 | +| `cuThreadExchangeStreamCaptureMode` | | 10.1 | ## **14. Event Management** -| **CUDA** | **HIP** | -|-----------------------------------------------------------|-------------------------------| +| **CUDA** | **HIP** |**CUDA version\***| +|-----------------------------------------------------------|-------------------------------|------------------| | `cuEventCreate` | `hipEventCreateWithFlags` | | `cuEventDestroy` | `hipEventDestroy` | | `cuEventElapsedTime` | `hipEventElapsedTime` | @@ -955,44 +955,44 @@ ## **15. External Resource Interoperability** -| **CUDA** | **HIP** | -|-----------------------------------------------------------|-------------------------------| -| `cuSignalExternalSemaphoresAsync` | | -| `cuWaitExternalSemaphoresAsync` | | -| `cuImportExternalMemory` | | -| `cuExternalMemoryGetMappedBuffer` | | -| `cuExternalMemoryGetMappedMipmappedArray` | | -| `cuDestroyExternalMemory` | | -| `cuImportExternalSemaphore` | | -| `cuDestroyExternalSemaphore` | | +| **CUDA** | **HIP** |**CUDA version\***| +|-----------------------------------------------------------|-------------------------------|:----------------:| +| `cuSignalExternalSemaphoresAsync` | | 10.0 | +| `cuWaitExternalSemaphoresAsync` | | 10.0 | +| `cuImportExternalMemory` | | 10.0 | +| `cuExternalMemoryGetMappedBuffer` | | 10.0 | +| `cuExternalMemoryGetMappedMipmappedArray` | | 10.0 | +| `cuDestroyExternalMemory` | | 10.0 | +| `cuImportExternalSemaphore` | | 10.0 | +| `cuDestroyExternalSemaphore` | | 10.0 | ## **16. Stream Memory Operations** -| **CUDA** | **HIP** | -|-----------------------------------------------------------|-------------------------------| -| `cuStreamBatchMemOp` | | -| `cuStreamWaitValue32` | | -| `cuStreamWaitValue64` | | -| `cuStreamWriteValue32` | | -| `cuStreamWriteValue64` | | +| **CUDA** | **HIP** |**CUDA version\***| +|-----------------------------------------------------------|-------------------------------|:----------------:| +| `cuStreamBatchMemOp` | | 8.0 | +| `cuStreamWaitValue32` | | 8.0 | +| `cuStreamWaitValue64` | | 9.0 | +| `cuStreamWriteValue32` | | 8.0 | +| `cuStreamWriteValue64` | | 9.0 | ## **17. Execution Control** -| **CUDA** | **HIP** | -|-----------------------------------------------------------|-------------------------------| +| **CUDA** | **HIP** |**CUDA version\***| +|-----------------------------------------------------------|-------------------------------|:----------------:| | `cuFuncGetAttribute` | | -| `cuFuncSetAttribute` | | +| `cuFuncSetAttribute` | | 9.0 | | `cuFuncSetCacheConfig` | `hipFuncSetCacheConfig` | | `cuFuncSetSharedMemConfig` | | | `cuLaunchKernel` | `hipModuleLaunchKernel` | -| `cuLaunchHostFunc` | | -| `cuLaunchCooperativeKernel` | | -| `cuLaunchCooperativeKernelMultiDevice` | | +| `cuLaunchHostFunc` | | 10.0 | +| `cuLaunchCooperativeKernel` | | 9.0 | +| `cuLaunchCooperativeKernelMultiDevice` | | 9.0 | ## **18. Execution Control [DEPRECATED]** -| **CUDA** | **HIP** | -|-----------------------------------------------------------|-------------------------------| +| **CUDA** | **HIP** |**CUDA version\***| +|-----------------------------------------------------------|-------------------------------|------------------| | `cuFuncSetBlockShape` | | | `cuFuncSetSharedSize` | | | `cuLaunch` | | @@ -1005,58 +1005,58 @@ ## **19. Graph Management** -| **CUDA** | **HIP** | -|-----------------------------------------------------------|-------------------------------| -| `cuGraphCreate` | | -| `cuGraphLaunch` | | -| `cuGraphAddKernelNode` | | -| `cuGraphKernelNodeGetParams` | | -| `cuGraphKernelNodeSetParams` | | -| `cuGraphAddMemcpyNode` | | -| `cuGraphMemcpyNodeGetParams` | | -| `cuGraphMemcpyNodeSetParams` | | -| `cuGraphAddMemsetNode` | | -| `cuGraphMemsetNodeGetParams` | | -| `cuGraphMemsetNodeSetParams` | | -| `cuGraphAddHostNode` | | -| `cuGraphHostNodeGetParams` | | -| `cuGraphHostNodeSetParams` | | -| `cuGraphAddChildGraphNode` | | -| `cuGraphChildGraphNodeGetGraph` | | -| `cuGraphAddEmptyNode` | | -| `cuGraphClone` | | -| `cuGraphNodeFindInClone` | | -| `cuGraphNodeGetType` | | -| `cuGraphGetNodes` | | -| `cuGraphGetRootNodes` | | -| `cuGraphGetEdges` | | -| `cuGraphNodeGetDependencies` | | -| `cuGraphNodeGetDependentNodes` | | -| `cuGraphAddDependencies` | | -| `cuGraphRemoveDependencies` | | -| `cuGraphDestroyNode` | | -| `cuGraphInstantiate` | | -| `cuGraphExecDestroy` | | -| `cuGraphExecKernelNodeSetParams` | | -| `cuGraphDestroy` | | +| **CUDA** | **HIP** |**CUDA version\***| +|-----------------------------------------------------------|-------------------------------|:----------------:| +| `cuGraphCreate` | | 10.0 | +| `cuGraphLaunch` | | 10.0 | +| `cuGraphAddKernelNode` | | 10.0 | +| `cuGraphKernelNodeGetParams` | | 10.0 | +| `cuGraphKernelNodeSetParams` | | 10.0 | +| `cuGraphAddMemcpyNode` | | 10.0 | +| `cuGraphMemcpyNodeGetParams` | | 10.0 | +| `cuGraphMemcpyNodeSetParams` | | 10.0 | +| `cuGraphAddMemsetNode` | | 10.0 | +| `cuGraphMemsetNodeGetParams` | | 10.0 | +| `cuGraphMemsetNodeSetParams` | | 10.0 | +| `cuGraphAddHostNode` | | 10.0 | +| `cuGraphHostNodeGetParams` | | 10.0 | +| `cuGraphHostNodeSetParams` | | 10.0 | +| `cuGraphAddChildGraphNode` | | 10.0 | +| `cuGraphChildGraphNodeGetGraph` | | 10.0 | +| `cuGraphAddEmptyNode` | | 10.0 | +| `cuGraphClone` | | 10.0 | +| `cuGraphNodeFindInClone` | | 10.0 | +| `cuGraphNodeGetType` | | 10.0 | +| `cuGraphGetNodes` | | 10.0 | +| `cuGraphGetRootNodes` | | 10.0 | +| `cuGraphGetEdges` | | 10.0 | +| `cuGraphNodeGetDependencies` | | 10.0 | +| `cuGraphNodeGetDependentNodes` | | 10.0 | +| `cuGraphAddDependencies` | | 10.0 | +| `cuGraphRemoveDependencies` | | 10.0 | +| `cuGraphDestroyNode` | | 10.0 | +| `cuGraphInstantiate` | | 10.0 | +| `cuGraphExecDestroy` | | 10.0 | +| `cuGraphExecKernelNodeSetParams` | | 10.1 | +| `cuGraphDestroy` | | 10.0 | ## **20. Occupancy** -| **CUDA** | **HIP** | -|-----------------------------------------------------------|---------------------------------------------------------| +| **CUDA** | **HIP** |**CUDA version\***| +|-----------------------------------------------------------|---------------------------------------------------------|------------------| | `cuOccupancyMaxActiveBlocksPerMultiprocessor` | `hipOccupancyMaxActiveBlocksPerMultiprocessor` | | `cuOccupancyMaxActiveBlocksPerMultiprocessorWithFlags` | | | `cuOccupancyMaxPotentialBlockSize` | `hipOccupancyMaxPotentialBlockSize` | -| `cuOccupancyMaxActiveBlocksPerMultiprocessorWithFlags` | | +| `cuOccupancyMaxPotentialBlockSizeWithFlags` | | ## **21. Texture Reference Management** -| **CUDA** | **HIP** | -|-----------------------------------------------------------|-------------------------------| +| **CUDA** | **HIP** |**CUDA version\***| +|-----------------------------------------------------------|-------------------------------|:----------------:| | `cuTexRefGetAddress` | | | `cuTexRefGetAddressMode` | | | `cuTexRefGetArray` | | -| `cuTexRefGetBorderColor` | | +| `cuTexRefGetBorderColor` | | 8.0 | | `cuTexRefGetFilterMode` | | | `cuTexRefGetFlags` | | | `cuTexRefGetFormat` | | @@ -1069,7 +1069,7 @@ | `cuTexRefSetAddress2D` | `hipTexRefSetAddress2D` | | `cuTexRefSetAddressMode` | `hipTexRefSetAddressMode` | | `cuTexRefSetArray` | `hipTexRefSetArray` | -| `cuTexRefSetBorderColor` | | +| `cuTexRefSetBorderColor` | | 8.0 | | `cuTexRefSetFilterMode` | `hipTexRefSetFilterMode` | | `cuTexRefSetFlags` | `hipTexRefSetFlags` | | `cuTexRefSetFormat` | `hipTexRefSetFormat` | @@ -1081,22 +1081,22 @@ ## **22. Texture Reference Management [DEPRECATED]** -| **CUDA** | **HIP** | -|-----------------------------------------------------------|-------------------------------| +| **CUDA** | **HIP** |**CUDA version\***| +|-----------------------------------------------------------|-------------------------------|------------------| | `cuTexRefCreate` | | | `cuTexRefDestroy` | | ## **23. Surface Reference Management** -| **CUDA** | **HIP** | -|-----------------------------------------------------------|-------------------------------| +| **CUDA** | **HIP** |**CUDA version\***| +|-----------------------------------------------------------|-------------------------------|------------------| | `cuSurfRefGetArray` | | | `cuSurfRefSetArray` | | ## **24. Texture Object Management** -| **CUDA** | **HIP** | -|-----------------------------------------------------------|-------------------------------| +| **CUDA** | **HIP** |**CUDA version\***| +|-----------------------------------------------------------|-------------------------------|------------------| | `cuTexObjectCreate` | | | `cuTexObjectDestroy` | | | `cuTexObjectGetResourceDesc` | | @@ -1105,25 +1105,25 @@ ## **25. Surface Object Management** -| **CUDA** | **HIP** | -|-----------------------------------------------------------|-------------------------------| +| **CUDA** | **HIP** |**CUDA version\***| +|-----------------------------------------------------------|-------------------------------|------------------| | `cuSurfObjectCreate` | | | `cuSurfObjectDestroy` | | | `cuSurfObjectGetResourceDesc` | | ## **26. Peer Context Memory Access** -| **CUDA** | **HIP** | -|-----------------------------------------------------------|-------------------------------| +| **CUDA** | **HIP** |**CUDA version\***| +|-----------------------------------------------------------|-------------------------------|:----------------:| | `cuCtxEnablePeerAccess` | `hipCtxEnablePeerAccess` | | `cuCtxDisablePeerAccess` | `hipCtxDisablePeerAccess` | | `cuDeviceCanAccessPeer` | `hipDeviceCanAccessPeer` | -| `cuDeviceGetP2PAttribute` | | +| `cuDeviceGetP2PAttribute` | | 8.0 | ## **27. Graphics Interoperability** -| **CUDA** | **HIP** | -|-----------------------------------------------------------|-------------------------------| +| **CUDA** | **HIP** |**CUDA version\***| +|-----------------------------------------------------------|-------------------------------|------------------| | `cuGraphicsMapResources` | | | `cuGraphicsResourceGetMappedMipmappedArray` | | | `cuGraphicsResourceGetMappedPointer` | | @@ -1134,24 +1134,24 @@ ## **28. Profiler Control** -| **CUDA** | **HIP** | -|-----------------------------------------------------------|-------------------------------| +| **CUDA** | **HIP** |**CUDA version\***| +|-----------------------------------------------------------|-------------------------------|------------------| | `cuProfilerInitialize` | | | `cuProfilerStart` | `hipProfilerStart` | | `cuProfilerStop` | `hipProfilerStop` | ## **29. OpenGL Interoperability** -| **CUDA** | **HIP** | -|-----------------------------------------------------------|-------------------------------| +| **CUDA** | **HIP** |**CUDA version\***| +|-----------------------------------------------------------|-------------------------------|------------------| | `cuGLGetDevices` | | | `cuGraphicsGLRegisterBuffer` | | | `cuGraphicsGLRegisterImage` | | | `cuWGLGetDevice` | | ## **29.1. OpenGL Interoperability [DEPRECATED]** -| **CUDA** | **HIP** | -|-----------------------------------------------------------|-------------------------------| +| **CUDA** | **HIP** |**CUDA version\***| +|-----------------------------------------------------------|-------------------------------|------------------| | `cuGLCtxCreate` | | | `cuGLInit` | | | `cuGLMapBufferObject` | | @@ -1164,8 +1164,8 @@ ## **30. Direct3D 9 Interoperability** -| **CUDA** | **HIP** | -|-----------------------------------------------------------|-------------------------------| +| **CUDA** | **HIP** |**CUDA version\***| +|-----------------------------------------------------------|-------------------------------|------------------| | `cuD3D9CtxCreate` | | | `cuD3D9CtxCreateOnDevice` | | | `cuD3D9GetDevice` | | @@ -1174,8 +1174,8 @@ | `cuGraphicsD3D9RegisterResource` | | ## **30.1. Direct3D 9 Interoperability [DEPRECATED]** -| **CUDA** | **HIP** | -|-----------------------------------------------------------|-------------------------------| +| **CUDA** | **HIP** |**CUDA version\***| +|-----------------------------------------------------------|-------------------------------|------------------| | `cuD3D9MapResources` | | | `cuD3D9RegisterResource` | | | `cuD3D9ResourceGetMappedArray` | | @@ -1189,15 +1189,15 @@ ## **31. Direct3D 10 Interoperability** -| **CUDA** | **HIP** | -|-----------------------------------------------------------|-------------------------------| +| **CUDA** | **HIP** |**CUDA version\***| +|-----------------------------------------------------------|-------------------------------|------------------| | `cuD3D10GetDevice` | | | `cuD3D10GetDevices` | | | `cuGraphicsD3D10RegisterResource` | | ## **31.1. Direct3D 10 Interoperability [DEPRECATED]** -| **CUDA** | **HIP** | -|-----------------------------------------------------------|-------------------------------| +| **CUDA** | **HIP** |**CUDA version\***| +|-----------------------------------------------------------|-------------------------------|------------------| | `cuD3D10CtxCreate` | | | `cuD3D10CtxCreateOnDevice` | | | `cuD3D10GetDirect3DDevice` | | @@ -1214,23 +1214,23 @@ ## **32. Direct3D 11 Interoperability** -| **CUDA** | **HIP** | -|-----------------------------------------------------------|-------------------------------| +| **CUDA** | **HIP** |**CUDA version\***| +|-----------------------------------------------------------|-------------------------------|------------------| | `cuD3D11GetDevice` | | | `cuD3D11GetDevices` | | | `cuGraphicsD3D11RegisterResource` | | ## **32.1. Direct3D 11 Interoperability [DEPRECATED]** -| **CUDA** | **HIP** | -|-----------------------------------------------------------|-------------------------------| +| **CUDA** | **HIP** |**CUDA version\***| +|-----------------------------------------------------------|-------------------------------|------------------| | `cuD3D11CtxCreate` | | | `cuD3D11CtxCreateOnDevice` | | | `cuD3D11GetDirect3DDevice` | | ## **33. VDPAU Interoperability** -| **CUDA** | **HIP** | -|-----------------------------------------------------------|-------------------------------| +| **CUDA** | **HIP** |**CUDA version\***| +|-----------------------------------------------------------|-------------------------------|------------------| | `cuGraphicsVDPAURegisterOutputSurface` | | | `cuGraphicsVDPAURegisterVideoSurface` | | | `cuVDPAUCtxCreate` | | @@ -1238,17 +1238,19 @@ ## **34. EGL Interoperability** -| **CUDA** | **HIP** | -|-----------------------------------------------------------|-------------------------------| -| `cuEGLStreamConsumerAcquireFrame` | | -| `cuEGLStreamConsumerConnect` | | -| `cuEGLStreamConsumerConnectWithFlags` | | -| `cuEGLStreamConsumerDisconnect` | | -| `cuEGLStreamConsumerReleaseFrame` | | -| `cuEGLStreamProducerConnect` | | -| `cuEGLStreamProducerDisconnect` | | -| `cuEGLStreamProducerPresentFrame` | | -| `cuEGLStreamProducerReturnFrame` | | -| `cuGraphicsEGLRegisterImage` | | -| `cuGraphicsResourceGetMappedEglFrame` | | -| `cuEventCreateFromEGLSync` | | +| **CUDA** | **HIP** |**CUDA version\***| +|-----------------------------------------------------------|-------------------------------|:----------------:| +| `cuEGLStreamConsumerAcquireFrame` | | 8.0 | +| `cuEGLStreamConsumerConnect` | | 8.0 | +| `cuEGLStreamConsumerConnectWithFlags` | | 9.1 | +| `cuEGLStreamConsumerDisconnect` | | 9.1 | +| `cuEGLStreamConsumerReleaseFrame` | | 9.1 | +| `cuEGLStreamProducerConnect` | | 9.1 | +| `cuEGLStreamProducerDisconnect` | | 9.1 | +| `cuEGLStreamProducerPresentFrame` | | 9.1 | +| `cuEGLStreamProducerReturnFrame` | | 9.1 | +| `cuGraphicsEGLRegisterImage` | | 9.1 | +| `cuGraphicsResourceGetMappedEglFrame` | | 9.1 | +| `cuEventCreateFromEGLSync` | | 9.0 | + +\* CUDA version, in which API has appeared and (optional) last version before abandoning it; no value in case of earlier versions < 7.5. diff --git a/docs/markdown/CUFFT_API_supported_by_HIP.md b/docs/markdown/CUFFT_API_supported_by_HIP.md index 57a9d414b7..4dac167525 100644 --- a/docs/markdown/CUFFT_API_supported_by_HIP.md +++ b/docs/markdown/CUFFT_API_supported_by_HIP.md @@ -2,51 +2,51 @@ ## **1. CUFFT Data types** -| **type** | **CUDA** | **HIP** |**HIP value** (if differs) | -|-------------:|---------------------------------------------------------------|------------------------------------------------------------|---------------------------| -| enum |***`cufftResult_t`*** |***`hipfftResult_t`*** | -| enum |***`cufftResult`*** |***`hipfftResult`*** | -| 0x0 |*`CUFFT_SUCCESS`* |*`HIPFFT_SUCCESS`* | 0 | -| 0x1 |*`CUFFT_INVALID_PLAN`* |*`HIPFFT_INVALID_PLAN`* | 1 | -| 0x2 |*`CUFFT_ALLOC_FAILED`* |*`HIPFFT_ALLOC_FAILED`* | 2 | -| 0x3 |*`CUFFT_INVALID_TYPE`* |*`HIPFFT_INVALID_TYPE`* | 3 | -| 0x4 |*`CUFFT_INVALID_VALUE`* |*`HIPFFT_INVALID_VALUE`* | 4 | -| 0x5 |*`CUFFT_INTERNAL_ERROR`* |*`HIPFFT_INTERNAL_ERROR`* | 5 | -| 0x6 |*`CUFFT_EXEC_FAILED`* |*`HIPFFT_EXEC_FAILED`* | 6 | -| 0x7 |*`CUFFT_SETUP_FAILED`* |*`HIPFFT_SETUP_FAILED`* | 7 | -| 0x8 |*`CUFFT_I;NVALID_SIZE`* |*`HIPFFT_INVALID_SIZE`* | 8 | -| 0x9 |*`CUFFT_UNALIGNED_DATA`* |*`HIPFFT_UNALIGNED_DATA`* | 9 | -| 0xA |*`CUFFT_INCOMPLETE_PARAMETER_LIST`* |*`HIPFFT_INCOMPLETE_PARAMETER_LIST`* | 10 | -| 0xB |*`CUFFT_INVALID_DEVICE`* |*`HIPFFT_INVALID_DEVICE`* | 11 | -| 0xC |*`CUFFT_PARSE_ERROR`* |*`HIPFFT_PARSE_ERROR`* | 12 | -| 0xD |*`CUFFT_NO_WORKSPACE`* |*`HIPFFT_NO_WORKSPACE`* | 13 | -| 0xE |*`CUFFT_NOT_IMPLEMENTED`* |*`HIPFFT_NOT_IMPLEMENTED`* | 14 | -| 0xF |*`CUFFT_LICENSE_ERROR`* | | -| 0x10 |*`CUFFT_NOT_SUPPORTED`* |*`HIPFFT_NOT_SUPPORTED`* | 16 | -| float |***`cufftReal`*** |***`hipfftReal`*** | -| double |***`cufftDoubleReal`*** |***`hipfftDoubleReal`*** | -| float2 |***`cufftComplex`*** |***`hipfftComplex`*** | -| double2 |***`cufftDoubleComplex`*** |***`hipfftDoubleComplex`*** | -| define |`CUFFT_FORWARD` |`HIPFFT_FORWARD` | -| define |`CUFFT_INVERSE` |`HIPFFT_BACKWARD` | -| enum |***`cufftType_t`*** |***`hipfftType_t`*** | -| enum |***`cufftType`*** |***`hipfftType`*** | -| 0x2a |*`CUFFT_R2C`* |*`HIPFFT_R2C`* | -| 0x2c |*`CUFFT_C2R`* |*`HIPFFT_C2R`* | -| 0x29 |*`CUFFT_C2C`* |*`HIPFFT_C2C`* | -| 0x6a |*`CUFFT_D2Z`* |*`HIPFFT_D2Z`* | -| 0x6c |*`CUFFT_Z2D`* |*`HIPFFT_Z2D`* | -| 0x69 |*`CUFFT_Z2Z`* |*`HIPFFT_Z2Z`* | -| enum |***`cufftCompatibility_t`*** | | -| enum |***`cufftCompatibility`*** | | -| 0x01 |*`CUFFT_COMPATIBILITY_FFTW_PADDING`* | | -| define |`CUFFT_COMPATIBILITY_DEFAULT` | | -| int |***`cufftHandle`*** |***`hipfftHandle`*** | +| **type** | **CUDA** |**CUDA version\***| **HIP** |**HIP value** (if differs) | +|-------------:|---------------------------------------------------------------|:----------------:|------------------------------------------------------------|---------------------------| +| enum |***`cufftResult_t`*** | |***`hipfftResult_t`*** | +| enum |***`cufftResult`*** | |***`hipfftResult`*** | +| 0x0 |*`CUFFT_SUCCESS`* | |*`HIPFFT_SUCCESS`* | 0 | +| 0x1 |*`CUFFT_INVALID_PLAN`* | |*`HIPFFT_INVALID_PLAN`* | 1 | +| 0x2 |*`CUFFT_ALLOC_FAILED`* | |*`HIPFFT_ALLOC_FAILED`* | 2 | +| 0x3 |*`CUFFT_INVALID_TYPE`* | |*`HIPFFT_INVALID_TYPE`* | 3 | +| 0x4 |*`CUFFT_INVALID_VALUE`* | |*`HIPFFT_INVALID_VALUE`* | 4 | +| 0x5 |*`CUFFT_INTERNAL_ERROR`* | |*`HIPFFT_INTERNAL_ERROR`* | 5 | +| 0x6 |*`CUFFT_EXEC_FAILED`* | |*`HIPFFT_EXEC_FAILED`* | 6 | +| 0x7 |*`CUFFT_SETUP_FAILED`* | |*`HIPFFT_SETUP_FAILED`* | 7 | +| 0x8 |*`CUFFT_INVALID_SIZE`* | |*`HIPFFT_INVALID_SIZE`* | 8 | +| 0x9 |*`CUFFT_UNALIGNED_DATA`* | |*`HIPFFT_UNALIGNED_DATA`* | 9 | +| 0xA |*`CUFFT_INCOMPLETE_PARAMETER_LIST`* | |*`HIPFFT_INCOMPLETE_PARAMETER_LIST`* | 10 | +| 0xB |*`CUFFT_INVALID_DEVICE`* | |*`HIPFFT_INVALID_DEVICE`* | 11 | +| 0xC |*`CUFFT_PARSE_ERROR`* | |*`HIPFFT_PARSE_ERROR`* | 12 | +| 0xD |*`CUFFT_NO_WORKSPACE`* | |*`HIPFFT_NO_WORKSPACE`* | 13 | +| 0xE |*`CUFFT_NOT_IMPLEMENTED`* | |*`HIPFFT_NOT_IMPLEMENTED`* | 14 | +| 0xF |*`CUFFT_LICENSE_ERROR`* | | | +| 0x10 |*`CUFFT_NOT_SUPPORTED`* | 8.0 |*`HIPFFT_NOT_SUPPORTED`* | 16 | +| float |***`cufftReal`*** | |***`hipfftReal`*** | +| double |***`cufftDoubleReal`*** | |***`hipfftDoubleReal`*** | +| float2 |***`cufftComplex`*** | |***`hipfftComplex`*** | +| double2 |***`cufftDoubleComplex`*** | |***`hipfftDoubleComplex`*** | +| define |`CUFFT_FORWARD` | |`HIPFFT_FORWARD` | +| define |`CUFFT_INVERSE` | |`HIPFFT_BACKWARD` | +| enum |***`cufftType_t`*** | |***`hipfftType_t`*** | +| enum |***`cufftType`*** | |***`hipfftType`*** | +| 0x2a |*`CUFFT_R2C`* | |*`HIPFFT_R2C`* | +| 0x2c |*`CUFFT_C2R`* | |*`HIPFFT_C2R`* | +| 0x29 |*`CUFFT_C2C`* | |*`HIPFFT_C2C`* | +| 0x6a |*`CUFFT_D2Z`* | |*`HIPFFT_D2Z`* | +| 0x6c |*`CUFFT_Z2D`* | |*`HIPFFT_Z2D`* | +| 0x69 |*`CUFFT_Z2Z`* | |*`HIPFFT_Z2Z`* | +| enum |***`cufftCompatibility_t`*** | | | +| enum |***`cufftCompatibility`*** | | | +| 0x01 |*`CUFFT_COMPATIBILITY_FFTW_PADDING`* | | | +| define |`CUFFT_COMPATIBILITY_DEFAULT` | | | +| int |***`cufftHandle`*** | |***`hipfftHandle`*** | ## **2. CUFFT API functions** -| **CUDA** | **HIP** | -|-----------------------------------------------------------|-------------------------------------------------| +| **CUDA** | **HIP** |**CUDA version\***| +|-----------------------------------------------------------|-------------------------------------------------|:----------------:| |`cufftPlan1d` |`hipfftPlan1d` | |`cufftPlan2d` |`hipfftPlan2d` | |`cufftPlan3d` |`hipfftPlan3d` | @@ -55,8 +55,8 @@ |`cufftMakePlan2d` |`hipfftMakePlan2d` | |`cufftMakePlan3d` |`hipfftMakePlan3d` | |`cufftMakePlanMany` |`hipfftMakePlanMany` | -|`cufftMakePlanMany64` |`hipfftMakePlanMany64` | -|`cufftGetSizeMany64` |`hipfftGetSizeMany64` | +|`cufftMakePlanMany64` |`hipfftMakePlanMany64` | 7.5 | +|`cufftGetSizeMany64` |`hipfftGetSizeMany64` | 7.5 | |`cufftEstimate1d` |`hipfftEstimate1d` | |`cufftEstimate2d` |`hipfftEstimate2d` | |`cufftEstimate3d` |`hipfftEstimate3d` | @@ -78,4 +78,4 @@ |`cufftSetStream` |`hipfftSetStream` | |`cufftDestroy` |`hipfftDestroy` | |`cufftGetVersion` |`hipfftGetVersion` | -|`cufftGetProperty` | | +|`cufftGetProperty` | | 8.0 | diff --git a/hipify-clang/README.md b/hipify-clang/README.md index 37cbd8e069..470e5db257 100644 --- a/hipify-clang/README.md +++ b/hipify-clang/README.md @@ -32,11 +32,11 @@ ## Dependencies `hipify-clang` requires: -1. [**LLVM+CLANG**](http://releases.llvm.org) of at least version [3.8.0](http://releases.llvm.org/download.html#3.8.0); the latest stable and recommended release: [**6.0.1**](http://releases.llvm.org/download.html#6.0.1) on **Windows**, and [**8.0.0**](http://releases.llvm.org/download.html#8.0.0) on **Linux**. +1. [**LLVM+CLANG**](http://releases.llvm.org) of at least version [3.8.0](http://releases.llvm.org/download.html#3.8.0); the latest stable and recommended release: [**6.0.1**](http://releases.llvm.org/download.html#6.0.1) on **Windows**, and [**8.0.1**](http://releases.llvm.org/download.html#8.0.1) on **Linux**. 2. **CUDA** at least version [7.0](https://developer.nvidia.com/cuda-toolkit-70), the latest supported version is [**9.0**](https://developer.nvidia.com/cuda-90-download-archive) on **Windows**, and [**10.0**](https://developer.nvidia.com/cuda-10.0-download-archive) on **Linux**. -If the target CUDA is [9.1](https://developer.nvidia.com/cuda-91-download-archive), [9.2](https://developer.nvidia.com/cuda-92-download-archive) or [10.0](https://developer.nvidia.com/cuda-10.0-download-archive), to work on Windows you may apply patches*: [for LLVM 7.0.0](patches/patch_for_clang_7.0.0_bug_38811.zip), [for LLVM 7.0.1](patches/patch_for_clang_7.0.1_bug_38811.zip), [for LLVM 8.0.0](patches/patch_for_clang_8.0.0_bug_38811.zip). +If the target CUDA is [9.1](https://developer.nvidia.com/cuda-91-download-archive), [9.2](https://developer.nvidia.com/cuda-92-download-archive) or [10.0](https://developer.nvidia.com/cuda-10.0-download-archive), to work on Windows you may apply patches* for LLVM: [7.0.0](patches/patch_for_clang_7.0.0_bug_38811.zip), [7.0.1](patches/patch_for_clang_7.0.1_bug_38811.zip), [7.1.0](patches/patch_for_clang_7.1.0_bug_38811.zip), [8.0.0](patches/patch_for_clang_8.0.0_bug_38811.zip), [8.0.1](patches/patch_for_clang_8.0.1_bug_38811.zip). | **LLVM release version** | **CUDA latest supported version** | **Windows** | **Linux** | |:----------------------------------------------------------:|:-------------------------------------------------------------------:|:------------:|:---------:| @@ -54,8 +54,9 @@ If the target CUDA is [9.1](https://developer.nvidia.com/cuda-91-download-archiv | [7.0.0](http://releases.llvm.org/download.html#7.0.0) | [9.2](https://developer.nvidia.com/cuda-92-download-archive) | -
not working due to
the clang's bug [38811](https://bugs.llvm.org/show_bug.cgi?id=38811)
+
[patch](patches/patch_for_clang_7.0.0_bug_38811.zip)*
| -
not working due to
the clang's bug [36384](https://bugs.llvm.org/show_bug.cgi?id=36384) | | [7.0.1](http://releases.llvm.org/download.html#7.0.1) | [9.2](https://developer.nvidia.com/cuda-92-download-archive) | -
not working due to
the clang's bug [38811](https://bugs.llvm.org/show_bug.cgi?id=38811)
+
[patch](patches/patch_for_clang_7.0.1_bug_38811.zip)*
| -
not working due to
the clang's bug [36384](https://bugs.llvm.org/show_bug.cgi?id=36384) | | [7.1.0](http://releases.llvm.org/download.html#7.1.0) | [9.2](https://developer.nvidia.com/cuda-92-download-archive) | -
not working due to
the clang's bug [38811](https://bugs.llvm.org/show_bug.cgi?id=38811)
+
[patch](patches/patch_for_clang_7.1.0_bug_38811.zip)*
| -
not working due to
the clang's bug [36384](https://bugs.llvm.org/show_bug.cgi?id=36384) | -| [**8.0.0**](http://releases.llvm.org/download.html#8.0.0) | [**10.0**](https://developer.nvidia.com/cuda-10.0-download-archive) | -
not working due to
the clang's bug [38811](https://bugs.llvm.org/show_bug.cgi?id=38811)
+
[patch](patches/patch_for_clang_8.0.0_bug_38811.zip)*
| +
**LATEST STABLE RELEASE** | -| 8.0.1 | 10.2 | -
LLVM 8.0.1
is not yet released | -
LLVM 8.0.1
is not yet released | +| [8.0.0](http://releases.llvm.org/download.html#8.0.0) | [10.0](https://developer.nvidia.com/cuda-10.0-download-archive) | -
not working due to
the clang's bug [38811](https://bugs.llvm.org/show_bug.cgi?id=38811)
+
[patch](patches/patch_for_clang_8.0.0_bug_38811.zip)*
| + | +| [**8.0.1**](http://releases.llvm.org/download.html#8.0.1) | [**10.0**](https://developer.nvidia.com/cuda-10.0-download-archive) | -
not working due to
the clang's bug [38811](https://bugs.llvm.org/show_bug.cgi?id=38811)
+
[patch](patches/patch_for_clang_8.0.1_bug_38811.zip)*
| +
**LATEST STABLE RELEASE** | +| 9.0.0 | 10.1 |
LLVM 9.0.0
is not yet released |
LLVM 9.0.0
is not yet released | `*` Download the patch and unpack it into your LLVM distributive directory; a few header files will be overwritten; rebuilding of LLVM is not needed. @@ -152,13 +153,13 @@ To run it: * Install `lit` into `python`: - - Linux: `python /srv/git/LLVM/8.0.0/llvm/utils/lit/setup.py install` + - Linux: `python /srv/git/LLVM/8.0.1/llvm/utils/lit/setup.py install` - Windows: `python f:/LLVM/6.0.1/llvm/utils/lit/setup.py install` * Starting with LLVM 6.0.1 path to `llvm-lit` python script should be specified by the `LLVM_EXTERNAL_LIT` option: - - Linux: `-DLLVM_EXTERNAL_LIT=/srv/git/LLVM/8.0.0/build/bin/llvm-lit` + - Linux: `-DLLVM_EXTERNAL_LIT=/srv/git/LLVM/8.0.1/build/bin/llvm-lit` - Windows: `-DLLVM_EXTERNAL_LIT=f:/LLVM/6.0.1/build/Release/bin/llvm-lit.py` @@ -180,7 +181,7 @@ On Linux the following configurations are tested: Ubuntu 14: LLVM 5.0.0 - 6.0.1, CUDA 7.0 - 9.0, cudnn-5.0.5 - cudnn-7.6.1.34 -Ubuntu 16-18: LLVM 8.0.0, CUDA 8.0 - 10.0, cudnn-5.1.10 - cudnn-7.6.1.34 +Ubuntu 16-18: LLVM 8.0.0 - 8.0.1, CUDA 8.0 - 10.0, cudnn-5.1.10 - cudnn-7.6.1.34 Build system for the above configurations: @@ -193,10 +194,10 @@ cmake -DHIPIFY_CLANG_TESTS=1 \ -DCMAKE_BUILD_TYPE=Release \ -DCMAKE_INSTALL_PREFIX=../dist \ - -DCMAKE_PREFIX_PATH=/srv/git/LLVM/8.0.0/dist \ + -DCMAKE_PREFIX_PATH=/srv/git/LLVM/8.0.1/dist \ -DCUDA_TOOLKIT_ROOT_DIR=/usr/local/cuda-10.0 \ -DCUDA_DNN_ROOT_DIR=/srv/CUDNN/cudnn-10.0-v7.6.1.34 \ - -DLLVM_EXTERNAL_LIT=/srv/git/LLVM/8.0.0/build/bin/llvm-lit \ + -DLLVM_EXTERNAL_LIT=/srv/git/LLVM/8.0.1/build/bin/llvm-lit \ .. ``` *A corresponding successful output:* @@ -215,14 +216,14 @@ cmake -- Detecting CXX compiler ABI info - done -- Detecting CXX compile features -- Detecting CXX compile features - done --- Found LLVM 8.0.0: --- - CMake module path: /srv/git/LLVM/8.0.0/dist/lib/cmake/llvm --- - Include path : /srv/git/LLVM/8.0.0/dist/include --- - Binary path : /srv/git/LLVM/8.0.0/dist/bin +-- Found LLVM 8.0.1: +-- - CMake module path: /srv/git/LLVM/8.0.1/dist/lib/cmake/llvm +-- - Include path : /srv/git/LLVM/8.0.1/dist/include +-- - Binary path : /srv/git/LLVM/8.0.1/dist/bin -- Linker detection: GNU ld -- Found PythonInterp: /usr/bin/python2.7 (found suitable version "2.7.12", minimum required is "2.7") -- Found lit: /usr/local/bin/lit --- Found FileCheck: /srv/git/LLVM/8.0.0/dist/bin/FileCheck +-- Found FileCheck: /srv/git/LLVM/8.0.1/dist/bin/FileCheck -- Looking for pthread.h -- Looking for pthread.h - found -- Looking for pthread_create @@ -245,64 +246,67 @@ make test-hipify Running HIPify regression tests ======================================== CUDA 10.0 - will be used for testing -LLVM 8.0.0 - will be used for testing +LLVM 8.0.1 - will be used for testing x86_64 - Platform architecture Linux 4.13.0-32-generic - Platform OS 64 - hipify-clang binary bitness 64 - python 2.7.12 binary bitness ======================================== --- Testing: 49 tests, 12 threads -- -PASS: hipify :: unit_tests/headers/headers_test_01.cu (1 of 49) -PASS: hipify :: unit_tests/headers/headers_test_03.cu (2 of 49) -PASS: hipify :: unit_tests/headers/headers_test_02.cu (3 of 49) -PASS: hipify :: unit_tests/headers/headers_test_05.cu (4 of 49) -PASS: hipify :: unit_tests/headers/headers_test_06.cu (5 of 49) -PASS: hipify :: unit_tests/libraries/cuBLAS/cublas_0_based_indexing.cu (6 of 49) -PASS: hipify :: unit_tests/headers/headers_test_07.cu (7 of 49) -PASS: hipify :: unit_tests/libraries/CAFFE2/caffe2_02.cu (8 of 49) -PASS: hipify :: unit_tests/headers/headers_test_04.cu (9 of 49) -PASS: hipify :: unit_tests/headers/headers_test_08.cu (10 of 49) -PASS: hipify :: unit_tests/libraries/cuBLAS/cublas_1_based_indexing.cu (11 of 49) -PASS: hipify :: unit_tests/libraries/cuBLAS/rocBLAS/cublas_1_based_indexing_rocblas.cu (12 of 49) -PASS: hipify :: unit_tests/libraries/cuBLAS/cublas_sgemm_matrix_multiplication.cu (13 of 49) -PASS: hipify :: unit_tests/libraries/cuBLAS/rocBLAS/cublas_0_based_indexing_rocblas.cu (14 of 49) -PASS: hipify :: unit_tests/libraries/cuComplex/cuComplex_Julia.cu (15 of 49) -PASS: hipify :: unit_tests/libraries/cuDNN/cudnn_softmax.cu (16 of 49) -PASS: hipify :: unit_tests/libraries/cuFFT/simple_cufft.cu (17 of 49) -PASS: hipify :: unit_tests/libraries/cuBLAS/rocBLAS/cublas_sgemm_matrix_multiplication_rocblas.cu (18 of 49) -PASS: hipify :: unit_tests/libraries/CAFFE2/caffe2_01.cu (19 of 49) -PASS: hipify :: unit_tests/libraries/cuRAND/poisson_api_example.cu (20 of 49) -PASS: hipify :: unit_tests/libraries/cuDNN/cudnn_convolution_forward.cu (21 of 49) -PASS: hipify :: unit_tests/libraries/cuSPARSE/cuSPARSE_01.cu (22 of 49) -PASS: hipify :: unit_tests/libraries/cuSPARSE/cuSPARSE_02.cu (23 of 49) -PASS: hipify :: unit_tests/libraries/cuSPARSE/cuSPARSE_04.cu (24 of 49) -PASS: hipify :: unit_tests/libraries/cuSPARSE/cuSPARSE_03.cu (25 of 49) -PASS: hipify :: unit_tests/libraries/cuSPARSE/cuSPARSE_06.cu (26 of 49) -PASS: hipify :: unit_tests/libraries/cuSPARSE/cuSPARSE_05.cu (27 of 49) -PASS: hipify :: unit_tests/libraries/cuSPARSE/cuSPARSE_07.cu (28 of 49) -PASS: hipify :: unit_tests/libraries/cuSPARSE/cuSPARSE_08.cu (29 of 49) -PASS: hipify :: unit_tests/libraries/cuSPARSE/cuSPARSE_11.cu (30 of 49) -PASS: hipify :: unit_tests/headers/headers_test_09.cu (31 of 49) -PASS: hipify :: unit_tests/libraries/cuSPARSE/cuSPARSE_10.cu (32 of 49) -PASS: hipify :: unit_tests/libraries/cuSPARSE/cuSPARSE_09.cu (33 of 49) -PASS: hipify :: unit_tests/samples/2_Cookbook/0_MatrixTranspose/MatrixTranspose.cpp (34 of 49) -PASS: hipify :: unit_tests/samples/2_Cookbook/2_Profiler/Profiler.cpp (35 of 49) -PASS: hipify :: unit_tests/samples/2_Cookbook/1_hipEvent/hipEvent.cpp (36 of 49) -PASS: hipify :: unit_tests/samples/allocators.cu (37 of 49) -PASS: hipify :: unit_tests/samples/coalescing.cu (38 of 49) -PASS: hipify :: unit_tests/samples/dynamic_shared_memory.cu (39 of 49) -PASS: hipify :: unit_tests/samples/intro.cu (40 of 49) -PASS: hipify :: unit_tests/libraries/cuRAND/benchmark_curand_generate.cpp (41 of 49) -PASS: hipify :: unit_tests/samples/2_Cookbook/7_streams/stream.cpp (42 of 49) -PASS: hipify :: unit_tests/samples/square.cu (43 of 49) -PASS: hipify :: unit_tests/samples/static_shared_memory.cu (44 of 49) -PASS: hipify :: unit_tests/samples/axpy.cu (45 of 49) -PASS: hipify :: unit_tests/samples/vec_add.cu (46 of 49) -PASS: hipify :: unit_tests/samples/cudaRegister.cu (47 of 49) -PASS: hipify :: unit_tests/libraries/cuSPARSE/cuSPARSE_12.cu (48 of 49) -PASS: hipify :: unit_tests/libraries/cuRAND/benchmark_curand_kernel.cpp (49 of 49) -Testing Time: 2.82s - Expected Passes : 49 +-- Testing: 52 tests, 12 threads -- +PASS: hipify :: unit_tests/headers/headers_test_03.cu (1 of 52) +PASS: hipify :: unit_tests/headers/headers_test_02.cu (2 of 52) +PASS: hipify :: unit_tests/headers/headers_test_01.cu (3 of 52) +PASS: hipify :: unit_tests/headers/headers_test_05.cu (4 of 52) +PASS: hipify :: unit_tests/libraries/CAFFE2/caffe2_02.cu (5 of 52) +PASS: hipify :: unit_tests/headers/headers_test_07.cu (6 of 52) +PASS: hipify :: unit_tests/libraries/cuBLAS/cublas_0_based_indexing.cu (7 of 52) +PASS: hipify :: unit_tests/headers/headers_test_06.cu (8 of 52) +PASS: hipify :: unit_tests/headers/headers_test_04.cu (9 of 52) +PASS: hipify :: unit_tests/headers/headers_test_08.cu (10 of 52) +PASS: hipify :: unit_tests/libraries/cuBLAS/cublas_sgemm_matrix_multiplication.cu (11 of 52) +PASS: hipify :: unit_tests/libraries/cuBLAS/rocBLAS/cublas_0_based_indexing_rocblas.cu (12 of 52) +PASS: hipify :: unit_tests/libraries/cuComplex/cuComplex_Julia.cu (13 of 52) +PASS: hipify :: unit_tests/libraries/cuBLAS/cublas_1_based_indexing.cu (14 of 52) +PASS: hipify :: unit_tests/libraries/cuBLAS/rocBLAS/cublas_1_based_indexing_rocblas.cu (15 of 52) +PASS: hipify :: unit_tests/libraries/cuDNN/cudnn_softmax.cu (16 of 52) +PASS: hipify :: unit_tests/libraries/cuBLAS/rocBLAS/cublas_sgemm_matrix_multiplication_rocblas.cu (17 of 52) +PASS: hipify :: unit_tests/libraries/cuFFT/simple_cufft.cu (18 of 52) +PASS: hipify :: unit_tests/libraries/CAFFE2/caffe2_01.cu (19 of 52) +PASS: hipify :: unit_tests/libraries/cuDNN/cudnn_convolution_forward.cu (20 of 52) +PASS: hipify :: unit_tests/libraries/cuSPARSE/cuSPARSE_03.cu (21 of 52) +PASS: hipify :: unit_tests/libraries/cuSPARSE/cuSPARSE_02.cu (22 of 52) +PASS: hipify :: unit_tests/libraries/cuSPARSE/cuSPARSE_01.cu (23 of 52) +PASS: hipify :: unit_tests/libraries/cuRAND/poisson_api_example.cu (24 of 52) +PASS: hipify :: unit_tests/libraries/cuSPARSE/cuSPARSE_04.cu (25 of 52) +PASS: hipify :: unit_tests/libraries/cuSPARSE/cuSPARSE_05.cu (26 of 52) +PASS: hipify :: unit_tests/libraries/cuSPARSE/cuSPARSE_06.cu (27 of 52) +PASS: hipify :: unit_tests/libraries/cuSPARSE/cuSPARSE_07.cu (28 of 52) +PASS: hipify :: unit_tests/samples/2_Cookbook/11_texture_driver/tex2dKernel.cpp (29 of 52) +PASS: hipify :: unit_tests/libraries/cuSPARSE/cuSPARSE_08.cu (30 of 52) +PASS: hipify :: unit_tests/libraries/cuSPARSE/cuSPARSE_09.cu (31 of 52) +PASS: hipify :: unit_tests/libraries/cuSPARSE/cuSPARSE_11.cu (32 of 52) +PASS: hipify :: unit_tests/headers/headers_test_09.cu (33 of 52) +PASS: hipify :: unit_tests/libraries/cuSPARSE/cuSPARSE_10.cu (34 of 52) +PASS: hipify :: unit_tests/samples/2_Cookbook/0_MatrixTranspose/MatrixTranspose.cpp (35 of 52) +PASS: hipify :: unit_tests/samples/allocators.cu (36 of 52) +PASS: hipify :: unit_tests/samples/2_Cookbook/11_texture_driver/texture2dDrv.cpp (37 of 52) +PASS: hipify :: unit_tests/samples/coalescing.cu (38 of 52) +PASS: hipify :: unit_tests/samples/2_Cookbook/1_hipEvent/hipEvent.cpp (39 of 52) +PASS: hipify :: unit_tests/samples/2_Cookbook/2_Profiler/Profiler.cpp (40 of 52) +PASS: hipify :: unit_tests/samples/2_Cookbook/7_streams/stream.cpp (41 of 52) +PASS: hipify :: unit_tests/libraries/cuRAND/benchmark_curand_generate.cpp (42 of 52) +PASS: hipify :: unit_tests/samples/axpy.cu (43 of 52) +PASS: hipify :: unit_tests/samples/2_Cookbook/8_peer2peer/peer2peer.cpp (44 of 52) +PASS: hipify :: unit_tests/samples/dynamic_shared_memory.cu (45 of 52) +PASS: hipify :: unit_tests/samples/intro.cu (46 of 52) +PASS: hipify :: unit_tests/samples/square.cu (47 of 52) +PASS: hipify :: unit_tests/samples/cudaRegister.cu (48 of 52) +PASS: hipify :: unit_tests/samples/vec_add.cu (49 of 52) +PASS: hipify :: unit_tests/libraries/cuSPARSE/cuSPARSE_12.cu (50 of 52) +PASS: hipify :: unit_tests/samples/static_shared_memory.cu (51 of 52) +PASS: hipify :: unit_tests/libraries/cuRAND/benchmark_curand_kernel.cpp (52 of 52) +Testing Time: 3.05s + Expected Passes : 52 [100%] Built target test-hipify ``` ### Windows @@ -313,11 +317,11 @@ LLVM 5.0.0 - 5.0.2, CUDA 8.0, cudnn-5.1.10 - cudnn-7.1.4.18 LLVM 6.0.0 - 6.0.1, CUDA 9.0, cudnn-7.0.5.15 - cudnn-7.6.1.34 -LLVM 7.0.0 - 8.0.0 (with patch*), CUDA 7.5 - 10.0, cudnn-7.0.5.15 - cudnn-7.6.1.34 +LLVM 7.0.0 - 8.0.1 (with patch*), CUDA 7.5 - 10.0, cudnn-7.0.5.15 - cudnn-7.6.1.34 Build system for the above configurations: -Python 3.6 (min), cmake 3.12.3 (min), Visual Studio 15.5.2 2017 - 16.0.4 2019. +Python 3.6 (min), cmake 3.12.3 (min), Visual Studio 15.5.2 2017 - 16.1.6 2019. Here is an example of building `hipify-clang` with testing support on `Windows 10` by `Visual Studio 15 2017`: diff --git a/hipify-clang/patches/patch_for_clang_8.0.1_bug_38811.zip b/hipify-clang/patches/patch_for_clang_8.0.1_bug_38811.zip new file mode 100644 index 0000000000..16d66a2062 Binary files /dev/null and b/hipify-clang/patches/patch_for_clang_8.0.1_bug_38811.zip differ diff --git a/lpl_ca/ca.hpp b/lpl_ca/ca.hpp index 0ef8458c20..db63f02498 100644 --- a/lpl_ca/ca.hpp +++ b/lpl_ca/ca.hpp @@ -23,7 +23,7 @@ inline clara::Parser cmdline_parser(bool& help, std::vector& inputs "https://reviews.llvm.org/D13909; " "the code object format is documented at: " "https://www.llvm.org/docs/AMDGPUUsage.html#code-object.") | - clara::Opt{targets, "gfx803,gfx900,gfx906 etc."}["-t"]["--targets"]( + clara::Opt{targets, "gfx803,gfx900,gfx906,gfx908 etc."}["-t"]["--targets"]( "targets for which code objects are to be extracted from " "the fat binary; must be included in the set of processors " "with ROCm support from " diff --git a/lpl_ca/common.hpp b/lpl_ca/common.hpp index 7652f08c46..2622a8f76b 100644 --- a/lpl_ca/common.hpp +++ b/lpl_ca/common.hpp @@ -12,7 +12,7 @@ namespace hip_impl { inline const std::unordered_set& amdgpu_targets() { // The evolving list lives at: // https://www.llvm.org/docs/AMDGPUUsage.html#processors. static const std::unordered_set r{"gfx701", "gfx801", "gfx802", "gfx803", - "gfx900", "gfx906"}; + "gfx900", "gfx906", "gfx908"}; return r; } diff --git a/lpl_ca/lpl.hpp b/lpl_ca/lpl.hpp index 3eeb88bd22..941f30123a 100644 --- a/lpl_ca/lpl.hpp +++ b/lpl_ca/lpl.hpp @@ -132,7 +132,7 @@ inline clara::Parser cmdline_parser(bool& help, std::vector& source "file is documented at: https://reviews.llvm.org/D13909.") | clara::Arg{sources, "a.cpp b.cpp etc."}("inputs for compilation; must contain valid C++ code.") | - clara::Opt{targets, "gfx803,gfx900,gfx906 etc."}["-t"]["--targets"]( + clara::Opt{targets, "gfx803,gfx900,gfx906,gfx908 etc."}["-t"]["--targets"]( "targets for AMDGPU lowering; must be included in the set " "of processors with ROCm support from " "https://www.llvm.org/docs/AMDGPUUsage.html#processors."); diff --git a/tests/src/deviceLib/hipMathFunctions.cpp b/tests/src/deviceLib/hipMathFunctions.cpp index 6553094603..dc064da189 100644 --- a/tests/src/deviceLib/hipMathFunctions.cpp +++ b/tests/src/deviceLib/hipMathFunctions.cpp @@ -29,7 +29,7 @@ THE SOFTWARE. #include "hip/hip_runtime.h" #include "test_common.h" -#if __HIP_ARCH_GFX803__ || __HIP_ARCH_GFX900__ || __HIP_ARCH_GFX906__ +#if __HIP_ARCH_GFX803__ || __HIP_ARCH_GFX900__ || __HIP_ARCH_GFX906__ || __HIP_ARCH_GFX908__ __global__ void kernel_abs_int64(long long *input, long long *output) { int tx = threadIdx.x; diff --git a/tests/src/deviceLib/hipTestHalf.cpp b/tests/src/deviceLib/hipTestHalf.cpp index 96447960c1..d48ce9b4f6 100644 --- a/tests/src/deviceLib/hipTestHalf.cpp +++ b/tests/src/deviceLib/hipTestHalf.cpp @@ -28,7 +28,7 @@ THE SOFTWARE. #include "test_common.h" -#if __HIP_ARCH_GFX803__ || __HIP_ARCH_GFX900__ || __HIP_ARCH_GFX906__ +#if __HIP_ARCH_GFX803__ || __HIP_ARCH_GFX900__ || __HIP_ARCH_GFX906__ || __HIP_ARCH_GFX908__ __global__ void __halfMath(bool* result, __half a) { diff --git a/tests/src/deviceLib/hipTestNativeHalf.cpp b/tests/src/deviceLib/hipTestNativeHalf.cpp index 17aa54a4cf..55213d446d 100644 --- a/tests/src/deviceLib/hipTestNativeHalf.cpp +++ b/tests/src/deviceLib/hipTestNativeHalf.cpp @@ -32,7 +32,7 @@ THE SOFTWARE. using namespace std; -#if __HIP_ARCH_GFX803__ || __HIP_ARCH_GFX900__ || __HIP_ARCH_GFX906__ +#if __HIP_ARCH_GFX803__ || __HIP_ARCH_GFX900__ || __HIP_ARCH_GFX906__ || __HIP_ARCH_GFX908__ __global__ void __halfTest(bool* result, __half a) { diff --git a/tests/src/dynamicLoading/complex_loading_behavior.cpp b/tests/src/dynamicLoading/complex_loading_behavior.cpp index ebf532a5c4..6ee21a9cad 100644 --- a/tests/src/dynamicLoading/complex_loading_behavior.cpp +++ b/tests/src/dynamicLoading/complex_loading_behavior.cpp @@ -21,7 +21,8 @@ THE SOFTWARE. */ /* HIT_START - * BUILD_CMD: libfoo %hc %S/%s -o libfoo.so -fPIC -lpthread -shared -DTEST_SHARED_LIBRARY + * BUILD_CMD: libfoo_amd %hc %S/%s -o libfoo.so -fPIC -lpthread -shared -DTEST_SHARED_LIBRARY EXCLUDE_HIP_PLATFORM nvcc + * BUILD_CMD: libfoo_nvidia %hc %S/%s -o libfoo.so -Xcompiler -fPIC -lpthread -shared -DTEST_SHARED_LIBRARY EXCLUDE_HIP_PLATFORM hcc * BUILD_CMD: %t %hc %S/%s -o %T/%t -ldl * TEST: %t * HIT_END diff --git a/tests/src/runtimeApi/memory/hipMemcpy.cpp b/tests/src/runtimeApi/memory/hipMemcpy.cpp index c8ee170336..208f263ab5 100644 --- a/tests/src/runtimeApi/memory/hipMemcpy.cpp +++ b/tests/src/runtimeApi/memory/hipMemcpy.cpp @@ -34,6 +34,13 @@ THE SOFTWARE. #include "hip/hip_runtime.h" #include "test_common.h" +#ifdef _WIN32 +#define WIN32_LEAN_AND_MEAN +#include +#else +#include "sys/types.h" +#include "sys/sysinfo.h" +#endif void printSep() { printf( @@ -280,6 +287,26 @@ void memcpytest2_for_type(size_t numElements) { } } +#ifdef _WIN32 +void memcpytest2_get_host_memory(size_t& free, size_t& total) { + MEMORYSTATUSEX status; + status.dwLength = sizeof(status); + GlobalMemoryStatusEx(&status); + free = status.ullAvailPhys; + total = status.ullTotalPhys; +} +#else +struct sysinfo memInfo; +void memcpytest2_get_host_memory(size_t& free, size_t& total) { + sysinfo(&memInfo); + long long freePhysMem=memInfo.freeram; + freePhysMem *= memInfo.mem_unit; + free = freePhysMem; + long long totalPhysMem=memInfo.totalram; + totalPhysMem *= memInfo.mem_unit; + total = totalPhysMem; +} +#endif //--- // Try many different sizes to memory copy. @@ -291,12 +318,20 @@ void memcpytest2_sizes(size_t maxElem = 0) { int deviceId; HIPCHECK(hipGetDevice(&deviceId)); - size_t free, total; + size_t free, total, freeCPU, totalCPU; HIPCHECK(hipMemGetInfo(&free, &total)); + memcpytest2_get_host_memory(freeCPU, totalCPU); if (maxElem == 0) { - maxElem = free / sizeof(T) / 8; + // Use lesser maxElem if not enough host memory available + size_t maxElemGPU = free / sizeof(T) / 8; + size_t maxElemCPU = freeCPU / sizeof(T) / 8; + maxElem = maxElemGPU < maxElemCPU ? maxElemGPU : maxElemCPU; } + printf( + " Host: free=%zu (%4.2fMB) total=%zu (%4.2fMB)\n", + freeCPU, (float)(freeCPU / 1024.0 / 1024.0), + totalCPU, (float)(totalCPU / 1024.0 / 1024.0)); printf( " device#%d: hipMemGetInfo: free=%zu (%4.2fMB) total=%zu (%4.2fMB) maxSize=%6.1fMB\n", diff --git a/tests/src/runtimeApi/module/hipLaunchMultiKernelMultiDevice.cpp b/tests/src/runtimeApi/module/hipLaunchMultiKernelMultiDevice.cpp new file mode 100644 index 0000000000..1c8da2e385 --- /dev/null +++ b/tests/src/runtimeApi/module/hipLaunchMultiKernelMultiDevice.cpp @@ -0,0 +1,140 @@ +/* +Copyright (c) 2019 - present Advanced Micro Devices, Inc. All rights reserved. + +Permission is hereby granted, free of charge, to any person obtaining a copy +of this software and associated documentation files (the "Software"), to deal +in the Software without restriction, including without limitation the rights +to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +copies of the Software, and to permit persons to whom the Software is +furnished to do so, subject to the following conditions: + +The above copyright notice and this permission notice shall be included in +all copies or substantial portions of the Software. + +THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN +THE SOFTWARE. +*/ +// Simple test for hipExtLaunchMultiKernelMultiDevice API. It can be tested on +// single GPU or multi GPUs. + +/* HIT_START + * BUILD: %t %s ../../test_common.cpp EXCLUDE_HIP_PLATFORM nvcc + * TEST: %t + * HIT_END + */ + +#include "hip/hip_runtime.h" +#include "test_common.h" +#include + +#define MAX_GPUS 8 +/* + * Square each element in the array A and write to array C. + */ +#define NUM_KERNEL_ARGS 3 +__global__ void +vector_square(float *C_d, float *A_d, size_t N) +{ + size_t offset = (blockIdx.x * blockDim.x + threadIdx.x); + size_t stride = blockDim.x * gridDim.x ; + + for (size_t i = offset; i < N; i += stride) { + C_d[i] = A_d[i] * A_d[i]; + } +} + +int main(int argc, char *argv[]) +{ + float *A_d[MAX_GPUS], *C_d[MAX_GPUS]; + float *A_h, *C_h; + size_t N = 1000000; + size_t Nbytes = N * sizeof(float); + + int nGpu = 0; + HIPCHECK(hipGetDeviceCount(&nGpu)); + if (nGpu < 1) { + printf ("info: didn't find any GPU!\n"); + return 0; + } + if (nGpu > MAX_GPUS) { + nGpu = MAX_GPUS; + } + + printf ("info: allocate host mem (%6.2f MB)\n", 2*Nbytes/1024.0/1024.0); + A_h = (float*)malloc(Nbytes); + HIPCHECK(A_h == 0 ? hipErrorMemoryAllocation : hipSuccess ); + C_h = (float*)malloc(Nbytes); + HIPCHECK(C_h == 0 ? hipErrorMemoryAllocation : hipSuccess ); + // Fill with Phi + i + for (size_t i = 0; i < N; i++) + { + A_h[i] = 1.618f + i; + } + + const unsigned blocks = 512; + const unsigned threadsPerBlock = 256; + + hipStream_t stream[MAX_GPUS]; + for (int i = 0; i < nGpu; i++) { + HIPCHECK(hipSetDevice(i)); + HIPCHECK(hipStreamCreateWithFlags(&stream[i], hipStreamNonBlocking)); + + hipDeviceProp_t props; + HIPCHECK(hipGetDeviceProperties(&props, i/*deviceID*/)); + printf ("info: running on bus 0x%2x %s\n", props.pciBusID, props.name); + + printf ("info: allocate device mem (%6.2f MB)\n", 2*Nbytes/1024.0/1024.0); + HIPCHECK(hipMalloc(&A_d[i], Nbytes)); + HIPCHECK(hipMalloc(&C_d[i], Nbytes)); + + + printf ("info: copy Host2Device\n"); + HIPCHECK ( hipMemcpy(A_d[i], A_h, Nbytes, hipMemcpyHostToDevice)); + } + + hipLaunchParams *launchParamsList = reinterpret_cast( + malloc(sizeof(hipLaunchParams)*nGpu)); + + void *args[MAX_GPUS * NUM_KERNEL_ARGS]; + + for (int i = 0; i < nGpu; i++) { + args[i * NUM_KERNEL_ARGS] = &C_d[i]; + args[i * NUM_KERNEL_ARGS + 1] = &A_d[i]; + args[i * NUM_KERNEL_ARGS + 2] = &N; + launchParamsList[i].func = + reinterpret_cast(vector_square); + launchParamsList[i].gridDim = dim3(blocks); + launchParamsList[i].blockDim = dim3(threadsPerBlock); + launchParamsList[i].sharedMem = 0; + launchParamsList[i].stream = stream[i]; + launchParamsList[i].args = args + i * NUM_KERNEL_ARGS; + } + + printf ("info: launch vector_square kernel with hipExtLaunchMultiKernelMultiDevice API\n"); + hipExtLaunchMultiKernelMultiDevice(launchParamsList, nGpu, 0); + + for (int j = 0; j < nGpu; j++) { + hipStreamSynchronize(stream[j]); + + hipDeviceProp_t props; + HIPCHECK(hipGetDeviceProperties(&props, j/*deviceID*/)); + printf ("info: checking result on bus 0x%2x %s\n", props.pciBusID, props.name); + + printf ("info: copy Device2Host\n"); + HIPCHECK( hipMemcpy(C_h, C_d[j], Nbytes, hipMemcpyDeviceToHost)); + + printf ("info: check result\n"); + for (size_t i = 0; i < N; i++) { + if (C_h[i] != A_h[i] * A_h[i]) { + HIPCHECK(hipErrorUnknown); + } + } + } + + printf ("PASSED!\n"); +}