diff --git a/CMakeLists.txt b/CMakeLists.txt index 7b7742fe..6c8fc9df 100755 --- a/CMakeLists.txt +++ b/CMakeLists.txt @@ -61,8 +61,8 @@ if (NOT HIPIFY_CLANG_TESTS_ONLY) include_directories(${LLVM_INCLUDE_DIRS}) add_definitions(${LLVM_DEFINITIONS}) - file(GLOB_RECURSE HIPIFY_SOURCES src/*.cpp) - file(GLOB_RECURSE HIPIFY_HEADERS src/*.h) + file(GLOB_RECURSE HIPIFY_SOURCES CONFIGURE_DEPENDS src/*.cpp) + file(GLOB_RECURSE HIPIFY_HEADERS CONFIGURE_DEPENDS src/*.h) # In order to be compatible with an LLVM that uses LLVM_LINK_LLVM_DYLIB=ON, # hipify-clang must link core LLVM libraries via LLVM_LINK_COMPONENTS vs directly adding diff --git a/bin/hipify-perl b/bin/hipify-perl index f12517cc..01233f61 100644 --- a/bin/hipify-perl +++ b/bin/hipify-perl @@ -11062,10 +11062,18 @@ my %map_core = ( 'CUSOLVER_STATUS_NOT_SUPPORTED' => ['HIPSOLVER_STATUS_NOT_SUPPORTED', 'numeric_literal'], 'CUSOLVER_STATUS_SUCCESS' => ['HIPSOLVER_STATUS_SUCCESS', 'numeric_literal'], 'CUSOLVER_STATUS_ZERO_PIVOT' => ['HIPSOLVER_STATUS_ZERO_PIVOT', 'numeric_literal'], + 'CUSPARSELT_MATMUL_ACTIVATION_GELU' => ['HIPSPARSELT_MATMUL_ACTIVATION_GELU', 'numeric_literal'], + 'CUSPARSELT_MATMUL_ACTIVATION_RELU' => ['HIPSPARSELT_MATMUL_ACTIVATION_RELU', 'numeric_literal'], + 'CUSPARSELT_MATMUL_ACTIVATION_RELU_THRESHOLD' => ['HIPSPARSELT_MATMUL_ACTIVATION_RELU_THRESHOLD', 'numeric_literal'], + 'CUSPARSELT_MATMUL_ACTIVATION_RELU_UPPERBOUND' => ['HIPSPARSELT_MATMUL_ACTIVATION_RELU_UPPERBOUND', 'numeric_literal'], 'CUSPARSELT_MATMUL_ALG_CONFIG_ID' => ['HIPSPARSELT_MATMUL_ALG_CONFIG_ID', 'numeric_literal'], 'CUSPARSELT_MATMUL_ALG_CONFIG_MAX_ID' => ['HIPSPARSELT_MATMUL_ALG_CONFIG_MAX_ID', 'numeric_literal'], 'CUSPARSELT_MATMUL_ALG_DEFAULT' => ['HIPSPARSELT_MATMUL_ALG_DEFAULT', 'numeric_literal'], + 'CUSPARSELT_MATMUL_BIAS_POINTER' => ['HIPSPARSELT_MATMUL_BIAS_POINTER', 'numeric_literal'], + 'CUSPARSELT_MATMUL_BIAS_STRIDE' => ['HIPSPARSELT_MATMUL_BIAS_STRIDE', 'numeric_literal'], 'CUSPARSELT_MATMUL_SEARCH_ITERATIONS' => ['HIPSPARSELT_MATMUL_SEARCH_ITERATIONS', 'numeric_literal'], + 'CUSPARSELT_MAT_BATCH_STRIDE' => ['HIPSPARSELT_MAT_BATCH_STRIDE', 'numeric_literal'], + 'CUSPARSELT_MAT_NUM_BATCHES' => ['HIPSPARSELT_MAT_NUM_BATCHES', 'numeric_literal'], 'CUSPARSELT_PRUNE_SPMMA_STRIP' => ['HIPSPARSELT_PRUNE_SPMMA_STRIP', 'numeric_literal'], 'CUSPARSELT_PRUNE_SPMMA_TILE' => ['HIPSPARSELT_PRUNE_SPMMA_TILE', 'numeric_literal'], 'CUSPARSELT_SPARSITY_50_PERCENT' => ['HIPSPARSELT_SPARSITY_50_PERCENT', 'numeric_literal'], @@ -15639,6 +15647,7 @@ my %map_core = ( 'cusparseLtDestroy' => ['hipsparseLtDestroy', 'library'], 'cusparseLtHandle_t' => ['hipsparseLtHandle_t', 'type'], 'cusparseLtInit' => ['hipsparseLtInit', 'library'], + 'cusparseLtMatDescAttribute_t' => ['hipsparseLtMatDescAttribute_t', 'type'], 'cusparseLtMatDescriptorDestroy' => ['hipsparseLtMatDescriptorDestroy', 'library'], 'cusparseLtMatDescriptor_t' => ['hipsparseLtMatDescriptor_t', 'type'], 'cusparseLtMatmul' => ['hipsparseLtMatmul', 'library'], @@ -15648,6 +15657,7 @@ my %map_core = ( 'cusparseLtMatmulAlgSelection_t' => ['hipsparseLtMatmulAlgSelection_t', 'type'], 'cusparseLtMatmulAlgSetAttribute' => ['hipsparseLtMatmulAlgSetAttribute', 'library'], 'cusparseLtMatmulAlg_t' => ['hipsparseLtMatmulAlg_t', 'type'], + 'cusparseLtMatmulDescAttribute_t' => ['hipsparseLtMatmulDescAttribute_t', 'type'], 'cusparseLtMatmulDescriptorInit' => ['hipsparseLtMatmulDescriptorInit', 'library'], 'cusparseLtMatmulDescriptor_t' => ['hipsparseLtMatmulDescriptor_t', 'type'], 'cusparseLtMatmulGetWorkspace' => ['hipsparseLtMatmulGetWorkspace', 'library'], diff --git a/docs/reference/tables/CUSPARSELT_API_supported_by_HIP.md b/docs/reference/tables/CUSPARSELT_API_supported_by_HIP.md index cc9d1095..3c0f773c 100644 --- a/docs/reference/tables/CUSPARSELT_API_supported_by_HIP.md +++ b/docs/reference/tables/CUSPARSELT_API_supported_by_HIP.md @@ -14,10 +14,18 @@ |**CUDA**|**A**|**D**|**C**|**R**|**HIP**|**A**|**D**|**C**|**R**|**U**|**E**| |:--|:-:|:-:|:-:|:-:|:--|:-:|:-:|:-:|:-:|:-:|:-:| +|`CUSPARSELT_MATMUL_ACTIVATION_GELU`|0.2.0| | | |`HIPSPARSELT_MATMUL_ACTIVATION_GELU`|7.10.0| | | | | | +|`CUSPARSELT_MATMUL_ACTIVATION_RELU`|0.2.0| | | |`HIPSPARSELT_MATMUL_ACTIVATION_RELU`|7.10.0| | | | | | +|`CUSPARSELT_MATMUL_ACTIVATION_RELU_THRESHOLD`|0.2.0| | | |`HIPSPARSELT_MATMUL_ACTIVATION_RELU_THRESHOLD`|7.10.0| | | | | | +|`CUSPARSELT_MATMUL_ACTIVATION_RELU_UPPERBOUND`|0.2.0| | | |`HIPSPARSELT_MATMUL_ACTIVATION_RELU_UPPERBOUND`|7.10.0| | | | | | |`CUSPARSELT_MATMUL_ALG_CONFIG_ID`|0.0.1| | | |`HIPSPARSELT_MATMUL_ALG_CONFIG_ID`|7.10.0| | | | | | |`CUSPARSELT_MATMUL_ALG_CONFIG_MAX_ID`|0.0.1| | | |`HIPSPARSELT_MATMUL_ALG_CONFIG_MAX_ID`|7.10.0| | | | | | |`CUSPARSELT_MATMUL_ALG_DEFAULT`|0.0.1| | | |`HIPSPARSELT_MATMUL_ALG_DEFAULT`|7.10.0| | | | | | +|`CUSPARSELT_MATMUL_BIAS_POINTER`|0.2.0| | | |`HIPSPARSELT_MATMUL_BIAS_POINTER`|7.10.0| | | | | | +|`CUSPARSELT_MATMUL_BIAS_STRIDE`|0.2.0| | | |`HIPSPARSELT_MATMUL_BIAS_STRIDE`|7.10.0| | | | | | |`CUSPARSELT_MATMUL_SEARCH_ITERATIONS`|0.0.1| | | |`HIPSPARSELT_MATMUL_SEARCH_ITERATIONS`|7.10.0| | | | | | +|`CUSPARSELT_MAT_BATCH_STRIDE`|0.2.0| | | |`HIPSPARSELT_MAT_BATCH_STRIDE`|7.10.0| | | | | | +|`CUSPARSELT_MAT_NUM_BATCHES`|0.2.0| | | |`HIPSPARSELT_MAT_NUM_BATCHES`|7.10.0| | | | | | |`CUSPARSELT_PRUNE_SPMMA_STRIP`|0.0.1| | | |`HIPSPARSELT_PRUNE_SPMMA_STRIP`|7.10.0| | | | | | |`CUSPARSELT_PRUNE_SPMMA_TILE`|0.0.1| | | |`HIPSPARSELT_PRUNE_SPMMA_TILE`|7.10.0| | | | | | |`CUSPARSELT_SPARSITY_50_PERCENT`|0.0.1| | | |`HIPSPARSELT_SPARSITY_50_PERCENT`|7.10.0| | | | | | @@ -26,13 +34,15 @@ |`CUSPARSE_COMPUTE_TF32`|0.1.0| | | |`HIPSPARSELT_COMPUTE_TF32`|7.10.0| | | | | | |`CUSPARSE_COMPUTE_TF32_FAST`|0.1.0| | | |`HIPSPARSELT_COMPUTE_TF32_FAST`|7.10.0| | | | | | |`cusparseComputeType`|0.0.1| | | |`hipsparseLtComputetype_t`|7.10.0| | | | | | -|`cusparseLtHandle_t`|0.0.1| | | |`hipsparseLtHandle_t`|7.10.0| | | | | | -|`cusparseLtMatDescriptor_t`|0.0.1| | | |`hipsparseLtMatDescriptor_t`|7.10.0| | | | | | +|`cusparseLtHandle_t`|0.0.1| |0.2.0| |`hipsparseLtHandle_t`|7.10.0| | | | | | +|`cusparseLtMatDescAttribute_t`|0.2.0| | | |`hipsparseLtMatDescAttribute_t`|7.10.0| | | | | | +|`cusparseLtMatDescriptor_t`|0.0.1| |0.2.0| |`hipsparseLtMatDescriptor_t`|7.10.0| | | | | | |`cusparseLtMatmulAlgAttribute_t`|0.0.1| | | |`hipsparseLtMatmulAlgAttribute_t`|7.10.0| | | | | | -|`cusparseLtMatmulAlgSelection_t`|0.0.1| | | |`hipsparseLtMatmulAlgSelection_t`|7.10.0| | | | | | +|`cusparseLtMatmulAlgSelection_t`|0.0.1| |0.2.0| |`hipsparseLtMatmulAlgSelection_t`|7.10.0| | | | | | |`cusparseLtMatmulAlg_t`|0.0.1| | | |`hipsparseLtMatmulAlg_t`|7.10.0| | | | | | -|`cusparseLtMatmulDescriptor_t`|0.0.1| | | |`hipsparseLtMatmulDescriptor_t`|7.10.0| | | | | | -|`cusparseLtMatmulPlan_t`|0.0.1| | | |`hipsparseLtMatmulPlan_t`|7.10.0| | | | | | +|`cusparseLtMatmulDescAttribute_t`|0.2.0| | | |`hipsparseLtMatmulDescAttribute_t`|7.10.0| | | | | | +|`cusparseLtMatmulDescriptor_t`|0.0.1| |0.2.0| |`hipsparseLtMatmulDescriptor_t`|7.10.0| | | | | | +|`cusparseLtMatmulPlan_t`|0.0.1| |0.2.0| |`hipsparseLtMatmulPlan_t`|7.10.0| | | | | | |`cusparseLtPruneAlg_t`|0.0.1| | | |`hipsparseLtPruneAlg_t`|7.10.0| | | | | | |`cusparseLtSparsity_t`|0.0.1| | | |`hipsparseLtSparsity_t`|7.10.0| | | | | | @@ -43,11 +53,15 @@ |`cusparseLtDenseDescriptorInit`|0.0.1| | | |`hipsparseLtDenseDescriptorInit`|7.10.0| | | | | | |`cusparseLtDestroy`|0.0.1| | | |`hipsparseLtDestroy`|7.10.0| | | | | | |`cusparseLtInit`|0.0.1| | | |`hipsparseLtInit`|7.10.0| | | | | | +|`cusparseLtMatDescGetAttribute`|0.2.0| | | |`hipsparseLtMatDescGetAttribute`|7.10.0| | | | | | +|`cusparseLtMatDescSetAttribute`|0.2.0| | | |`hipsparseLtMatDescSetAttribute`|7.10.0| | | | | | |`cusparseLtMatDescriptorDestroy`|0.1.0| | | |`hipsparseLtMatDescriptorDestroy`|7.10.0| | | | | | |`cusparseLtMatmul`|0.0.1| | | |`hipsparseLtMatmul`|7.10.0| | | | | | |`cusparseLtMatmulAlgGetAttribute`|0.0.1| | | |`hipsparseLtMatmulAlgGetAttribute`|7.10.0| | | | | | |`cusparseLtMatmulAlgSelectionInit`|0.0.1| | | |`hipsparseLtMatmulAlgSelectionInit`|7.10.0| | | | | | |`cusparseLtMatmulAlgSetAttribute`|0.0.1| | | |`hipsparseLtMatmulAlgSetAttribute`|7.10.0| | | | | | +|`cusparseLtMatmulDescGetAttribute`|0.2.0| | | |`hipsparseLtMatmulDescGetAttribute`|7.10.0| | | | | | +|`cusparseLtMatmulDescSetAttribute`|0.2.0| | | |`hipsparseLtMatmulDescSetAttribute`|7.10.0| | | | | | |`cusparseLtMatmulDescriptorInit`|0.0.1| | | |`hipsparseLtMatmulDescriptorInit`|7.10.0| | | | | | |`cusparseLtMatmulGetWorkspace`|0.0.1| | | |`hipsparseLtMatmulGetWorkspace`|7.10.0| | | | | | |`cusparseLtMatmulPlanDestroy`|0.0.1| | | |`hipsparseLtMatmulPlanDestroy`|7.10.0| | | | | | diff --git a/src/CUDA2HIP.h b/src/CUDA2HIP.h index d3b4fc8d..d03981b6 100644 --- a/src/CUDA2HIP.h +++ b/src/CUDA2HIP.h @@ -184,6 +184,7 @@ extern const std::map CUDA_TENSOR_FUNCT extern const std::map CUDA_TENSOR_TYPE_CHANGED_VER_MAP; extern const std::map HIP_FILE_TYPE_NAME_VER_MAP; extern const std::map HIP_FILE_FUNCTION_VER_MAP; +extern const std::map CUDA_SPARSELT_TYPE_CHANGED_VER_MAP; // The union of all the above maps. const std::map &HIP_VERSIONS_MAP(); diff --git a/src/CUDA2HIP_Doc.cpp b/src/CUDA2HIP_Doc.cpp index cd76dde7..fc38c7a5 100644 --- a/src/CUDA2HIP_Doc.cpp +++ b/src/CUDA2HIP_Doc.cpp @@ -878,6 +878,7 @@ namespace doc { const string& getAdditionalMetaKeywords() const override { return sMetaKeywords; } const sectionMap &getSections() const override { return CUDA_SPARSELT_API_SECTION_MAP; } const functionMap &getFunctions() const override { return CUDA_SPARSELT_FUNCTION_MAP; } + const cudaChangedVersionMap &getCudaChangedTypeVersions() const override { return CUDA_SPARSELT_TYPE_CHANGED_VER_MAP; } const typeMap &getTypes() const override { return CUDA_SPARSELT_TYPE_NAME_MAP; } const versionMap &getFunctionVersions() const override { return CUDA_SPARSELT_FUNCTION_VER_MAP; } const hipVersionMap &getHipFunctionVersions() const override { return HIP_SPARSELT_FUNCTION_VER_MAP; } diff --git a/src/CUDA2HIP_SPARSELT_API_functions.cpp b/src/CUDA2HIP_SPARSELT_API_functions.cpp index 48c3cb61..bfd8fa2f 100644 --- a/src/CUDA2HIP_SPARSELT_API_functions.cpp +++ b/src/CUDA2HIP_SPARSELT_API_functions.cpp @@ -48,6 +48,10 @@ const std::map CUDA_SPARSELT_FUNCTION_MAP = [] { m["cusparseLtSpMMAPruneCheck2"] = {"hipsparseLtSpMMAPruneCheck2", "", CONV_LIB_FUNC, API_SPARSELT, 2}; m["cusparseLtSpMMACompressedSize2"] = {"hipsparseLtSpMMACompressedSize2", "", CONV_LIB_FUNC, API_SPARSELT, 2}; m["cusparseLtSpMMACompress2"] = {"hipsparseLtSpMMACompress2", "", CONV_LIB_FUNC, API_SPARSELT, 2}; + m["cusparseLtMatDescSetAttribute"] = {"hipsparseLtMatDescSetAttribute", "", CONV_LIB_FUNC, API_SPARSELT, 2}; + m["cusparseLtMatDescGetAttribute"] = {"hipsparseLtMatDescGetAttribute", "", CONV_LIB_FUNC, API_SPARSELT, 2}; + m["cusparseLtMatmulDescSetAttribute"] = {"hipsparseLtMatmulDescSetAttribute", "", CONV_LIB_FUNC, API_SPARSELT, 2}; + m["cusparseLtMatmulDescGetAttribute"] = {"hipsparseLtMatmulDescGetAttribute", "", CONV_LIB_FUNC, API_SPARSELT, 2}; return m; }(); @@ -77,6 +81,10 @@ const std::map CUDA_SPARSELT_FUNCTION_VER_MAP m["cusparseLtSpMMAPruneCheck2"] = {CUSPARSELT_010, CUDA_0 , CUDA_0 }; m["cusparseLtSpMMACompressedSize2"] = {CUSPARSELT_010, CUDA_0 , CUDA_0 }; m["cusparseLtSpMMACompress2"] = {CUSPARSELT_010, CUDA_0 , CUDA_0 }; + m["cusparseLtMatDescSetAttribute"] = {CUSPARSELT_020, CUDA_0 , CUDA_0 }; + m["cusparseLtMatDescGetAttribute"] = {CUSPARSELT_020, CUDA_0 , CUDA_0 }; + m["cusparseLtMatmulDescSetAttribute"] = {CUSPARSELT_020, CUDA_0 , CUDA_0 }; + m["cusparseLtMatmulDescGetAttribute"] = {CUSPARSELT_020, CUDA_0 , CUDA_0 }; return m; }(); @@ -106,6 +114,10 @@ const std::map HIP_SPARSELT_FUNCTION_VER_MAP = m["hipsparseLtSpMMAPruneCheck2"] = {HIP_7100, HIP_0, HIP_0 }; m["hipsparseLtSpMMACompressedSize2"] = {HIP_7100, HIP_0, HIP_0 }; m["hipsparseLtSpMMACompress2"] = {HIP_7100, HIP_0, HIP_0 }; + m["hipsparseLtMatDescSetAttribute"] = {HIP_7100, HIP_0, HIP_0 }; + m["hipsparseLtMatDescGetAttribute"] = {HIP_7100, HIP_0, HIP_0 }; + m["hipsparseLtMatmulDescSetAttribute"] = {HIP_7100, HIP_0, HIP_0 }; + m["hipsparseLtMatmulDescGetAttribute"] = {HIP_7100, HIP_0, HIP_0 }; return m; }(); diff --git a/src/CUDA2HIP_SPARSELT_API_types.cpp b/src/CUDA2HIP_SPARSELT_API_types.cpp index 8ee08bca..9ad5b7fb 100644 --- a/src/CUDA2HIP_SPARSELT_API_types.cpp +++ b/src/CUDA2HIP_SPARSELT_API_types.cpp @@ -48,6 +48,16 @@ const std::map CUDA_SPARSELT_TYPE_NAME_MAP = [] { m["cusparseLtPruneAlg_t"] = {"hipsparseLtPruneAlg_t", "", CONV_TYPE, API_SPARSELT, 1}; m["CUSPARSELT_PRUNE_SPMMA_TILE"] = {"HIPSPARSELT_PRUNE_SPMMA_TILE", "", CONV_NUMERIC_LITERAL, API_SPARSELT, 1}; m["CUSPARSELT_PRUNE_SPMMA_STRIP"] = {"HIPSPARSELT_PRUNE_SPMMA_STRIP", "", CONV_NUMERIC_LITERAL, API_SPARSELT, 1}; + m["cusparseLtMatmulDescAttribute_t"] = {"hipsparseLtMatmulDescAttribute_t", "", CONV_TYPE, API_SPARSELT, 1}; + m["CUSPARSELT_MATMUL_ACTIVATION_RELU"] = {"HIPSPARSELT_MATMUL_ACTIVATION_RELU", "", CONV_NUMERIC_LITERAL, API_SPARSELT, 1}; + m["CUSPARSELT_MATMUL_ACTIVATION_RELU_UPPERBOUND"] = {"HIPSPARSELT_MATMUL_ACTIVATION_RELU_UPPERBOUND", "", CONV_NUMERIC_LITERAL, API_SPARSELT, 1}; + m["CUSPARSELT_MATMUL_ACTIVATION_RELU_THRESHOLD"] = {"HIPSPARSELT_MATMUL_ACTIVATION_RELU_THRESHOLD", "", CONV_NUMERIC_LITERAL, API_SPARSELT, 1}; + m["CUSPARSELT_MATMUL_ACTIVATION_GELU"] = {"HIPSPARSELT_MATMUL_ACTIVATION_GELU", "", CONV_NUMERIC_LITERAL, API_SPARSELT, 1}; + m["CUSPARSELT_MATMUL_BIAS_STRIDE"] = {"HIPSPARSELT_MATMUL_BIAS_STRIDE", "", CONV_NUMERIC_LITERAL, API_SPARSELT, 1}; + m["CUSPARSELT_MATMUL_BIAS_POINTER"] = {"HIPSPARSELT_MATMUL_BIAS_POINTER", "", CONV_NUMERIC_LITERAL, API_SPARSELT, 1}; + m["cusparseLtMatDescAttribute_t"] = {"hipsparseLtMatDescAttribute_t", "", CONV_TYPE, API_SPARSELT, 1}; + m["CUSPARSELT_MAT_NUM_BATCHES"] = {"HIPSPARSELT_MAT_NUM_BATCHES", "", CONV_NUMERIC_LITERAL, API_SPARSELT, 1}; + m["CUSPARSELT_MAT_BATCH_STRIDE"] = {"HIPSPARSELT_MAT_BATCH_STRIDE", "", CONV_NUMERIC_LITERAL, API_SPARSELT, 1}; return m; }(); @@ -76,6 +86,16 @@ const std::map CUDA_SPARSELT_TYPE_NAME_VER_MAP m["cusparseLtPruneAlg_t"] = {CUSPARSELT_001, CUDA_0 , CUDA_0 }; m["CUSPARSELT_PRUNE_SPMMA_TILE"] = {CUSPARSELT_001, CUDA_0 , CUDA_0 }; m["CUSPARSELT_PRUNE_SPMMA_STRIP"] = {CUSPARSELT_001, CUDA_0 , CUDA_0 }; + m["cusparseLtMatmulDescAttribute_t"] = {CUSPARSELT_020, CUDA_0 , CUDA_0 }; + m["CUSPARSELT_MATMUL_ACTIVATION_RELU"] = {CUSPARSELT_020, CUDA_0 , CUDA_0 }; + m["CUSPARSELT_MATMUL_ACTIVATION_RELU_UPPERBOUND"] = {CUSPARSELT_020, CUDA_0 , CUDA_0 }; + m["CUSPARSELT_MATMUL_ACTIVATION_RELU_THRESHOLD"] = {CUSPARSELT_020, CUDA_0 , CUDA_0 }; + m["CUSPARSELT_MATMUL_ACTIVATION_GELU"] = {CUSPARSELT_020, CUDA_0 , CUDA_0 }; + m["CUSPARSELT_MATMUL_BIAS_STRIDE"] = {CUSPARSELT_020, CUDA_0 , CUDA_0 }; + m["CUSPARSELT_MATMUL_BIAS_POINTER"] = {CUSPARSELT_020, CUDA_0 , CUDA_0 }; + m["cusparseLtMatDescAttribute_t"] = {CUSPARSELT_020, CUDA_0 , CUDA_0 }; + m["CUSPARSELT_MAT_NUM_BATCHES"] = {CUSPARSELT_020, CUDA_0 , CUDA_0 }; + m["CUSPARSELT_MAT_BATCH_STRIDE"] = {CUSPARSELT_020, CUDA_0 , CUDA_0 }; return m; }(); @@ -104,6 +124,28 @@ const std::map HIP_SPARSELT_TYPE_NAME_VER_MAP = m["HIPSPARSELT_PRUNE_SPMMA_STRIP"] = {HIP_7100, HIP_0, HIP_0 }; m["HIPSPARSELT_COMPUTE_TF32"] = {HIP_7100, HIP_0, HIP_0 }; m["HIPSPARSELT_COMPUTE_TF32_FAST"] = {HIP_7100, HIP_0, HIP_0 }; + m["hipsparseLtMatmulDescAttribute_t"] = {HIP_7100, HIP_0, HIP_0 }; + m["HIPSPARSELT_MATMUL_ACTIVATION_RELU"] = {HIP_7100, HIP_0, HIP_0 }; + m["HIPSPARSELT_MATMUL_ACTIVATION_RELU_UPPERBOUND"] = {HIP_7100, HIP_0, HIP_0 }; + m["HIPSPARSELT_MATMUL_ACTIVATION_RELU_THRESHOLD"] = {HIP_7100, HIP_0, HIP_0 }; + m["HIPSPARSELT_MATMUL_ACTIVATION_GELU"] = {HIP_7100, HIP_0, HIP_0 }; + m["HIPSPARSELT_MATMUL_BIAS_STRIDE"] = {HIP_7100, HIP_0, HIP_0 }; + m["HIPSPARSELT_MATMUL_BIAS_POINTER"] = {HIP_7100, HIP_0, HIP_0 }; + m["hipsparseLtMatDescAttribute_t"] = {HIP_7100, HIP_0, HIP_0 }; + m["HIPSPARSELT_MAT_NUM_BATCHES"] = {HIP_7100, HIP_0, HIP_0 }; + m["HIPSPARSELT_MAT_BATCH_STRIDE"] = {HIP_7100, HIP_0, HIP_0 }; return m; }(); + +const std::map CUDA_SPARSELT_TYPE_CHANGED_VER_MAP = [] { + std::map m; + + m["cusparseLtHandle_t"] = { CUSPARSELT_020 }; + m["cusparseLtMatDescriptor_t"] = { CUSPARSELT_020 }; + m["cusparseLtMatmulDescriptor_t"] = { CUSPARSELT_020 }; + m["cusparseLtMatmulAlgSelection_t"] = { CUSPARSELT_020 }; + m["cusparseLtMatmulPlan_t"] = { CUSPARSELT_020 }; + + return m; + }(); diff --git a/tests/unit_tests/synthetic/libraries/cusparselt2hipsparselt.cu b/tests/unit_tests/synthetic/libraries/cusparselt2hipsparselt.cu index 6f77b6e7..274f2406 100644 --- a/tests/unit_tests/synthetic/libraries/cusparselt2hipsparselt.cu +++ b/tests/unit_tests/synthetic/libraries/cusparselt2hipsparselt.cu @@ -217,5 +217,49 @@ int main() { // CHECK: status = hipsparseLtSpMMACompress2(&handle, &matA, isSparseA, op, d_dense, d_compressed, d_compressBuffer, stream); status = cusparseLtSpMMACompress2(&handle, &matA, isSparseA, op, d_dense, d_compressed, d_compressBuffer, stream); +#if CUSPARSELT_VERSION >= 200 + // CHECK: hipsparseLtMatmulDescAttribute_t sparseLtMatmulDescAttribute_t; + // CHECK-NEXT: hipsparseLtMatmulDescAttribute_t SPARSELT_MATMUL_ACTIVATION_RELU = HIPSPARSELT_MATMUL_ACTIVATION_RELU; + // CHECK-NEXT: hipsparseLtMatmulDescAttribute_t SPARSELT_MATMUL_ACTIVATION_RELU_UPPERBOUND = HIPSPARSELT_MATMUL_ACTIVATION_RELU_UPPERBOUND; + // CHECK-NEXT: hipsparseLtMatmulDescAttribute_t SPARSELT_MATMUL_ACTIVATION_RELU_THRESHOLD = HIPSPARSELT_MATMUL_ACTIVATION_RELU_THRESHOLD; + // CHECK-NEXT: hipsparseLtMatmulDescAttribute_t SPARSELT_MATMUL_ACTIVATION_GELU = HIPSPARSELT_MATMUL_ACTIVATION_GELU; + // CHECK-NEXT: hipsparseLtMatmulDescAttribute_t SPARSELT_MATMUL_BIAS_STRIDE = HIPSPARSELT_MATMUL_BIAS_STRIDE; + // CHECK-NEXT: hipsparseLtMatmulDescAttribute_t SPARSELT_MATMUL_BIAS_POINTER = HIPSPARSELT_MATMUL_BIAS_POINTER; + cusparseLtMatmulDescAttribute_t sparseLtMatmulDescAttribute_t; + cusparseLtMatmulDescAttribute_t SPARSELT_MATMUL_ACTIVATION_RELU = CUSPARSELT_MATMUL_ACTIVATION_RELU; + cusparseLtMatmulDescAttribute_t SPARSELT_MATMUL_ACTIVATION_RELU_UPPERBOUND = CUSPARSELT_MATMUL_ACTIVATION_RELU_UPPERBOUND; + cusparseLtMatmulDescAttribute_t SPARSELT_MATMUL_ACTIVATION_RELU_THRESHOLD = CUSPARSELT_MATMUL_ACTIVATION_RELU_THRESHOLD; + cusparseLtMatmulDescAttribute_t SPARSELT_MATMUL_ACTIVATION_GELU = CUSPARSELT_MATMUL_ACTIVATION_GELU; + cusparseLtMatmulDescAttribute_t SPARSELT_MATMUL_BIAS_STRIDE = CUSPARSELT_MATMUL_BIAS_STRIDE; + cusparseLtMatmulDescAttribute_t SPARSELT_MATMUL_BIAS_POINTER = CUSPARSELT_MATMUL_BIAS_POINTER; + + // CHECK: hipsparseLtMatDescAttribute_t sparseLtMatDescAttribute_t; + // CHECK-NEXT: hipsparseLtMatDescAttribute_t SPARSELT_MAT_NUM_BATCHES = HIPSPARSELT_MAT_NUM_BATCHES; + // CHECK-NEXT: hipsparseLtMatDescAttribute_t SPARSELT_MAT_BATCH_STRIDE = HIPSPARSELT_MAT_BATCH_STRIDE; + cusparseLtMatDescAttribute_t sparseLtMatDescAttribute_t; + cusparseLtMatDescAttribute_t SPARSELT_MAT_NUM_BATCHES = CUSPARSELT_MAT_NUM_BATCHES; + cusparseLtMatDescAttribute_t SPARSELT_MAT_BATCH_STRIDE = CUSPARSELT_MAT_BATCH_STRIDE; + + // CUDA: cusparseStatus_t CUSPARSELT_API cusparseLtMatDescSetAttribute(const cusparseLtHandle_t* handle, cusparseLtMatDescriptor_t* matmulDescr, cusparseLtMatDescAttribute_t matAttribute, const void* data, size_t dataSize); + // HIP: HIPSPARSELT_EXPORT hipsparseStatus_t hipsparseLtMatDescSetAttribute(const hipsparseLtHandle_t* handle, hipsparseLtMatDescriptor_t* matDescr, hipsparseLtMatDescAttribute_t matAttribute, const void* data, size_t dataSize); + // CHECK: status = hipsparseLtMatDescSetAttribute(&handle, &matA, sparseLtMatDescAttribute_t, data, dataSize); + status = cusparseLtMatDescSetAttribute(&handle, &matA, sparseLtMatDescAttribute_t, data, dataSize); + + // CUDA: cusparseStatus_t CUSPARSELT_API cusparseLtMatDescGetAttribute(const cusparseLtHandle_t* handle, const cusparseLtMatDescriptor_t* matmulDescr, cusparseLtMatDescAttribute_t matAttribute, void* data, size_t dataSize); + // HIP: HIPSPARSELT_EXPORT hipsparseStatus_t hipsparseLtMatDescGetAttribute(const hipsparseLtHandle_t* handle, const hipsparseLtMatDescriptor_t* matDescr, hipsparseLtMatDescAttribute_t matAttribute, void* data, size_t dataSize); + // CHECK: status = hipsparseLtMatDescGetAttribute(&handle, &matA, sparseLtMatDescAttribute_t, data, dataSize); + status = cusparseLtMatDescGetAttribute(&handle, &matA, sparseLtMatDescAttribute_t, data, dataSize); + + // CUDA: cusparseStatus_t CUSPARSELT_API cusparseLtMatmulDescSetAttribute(const cusparseLtHandle_t* handle, cusparseLtMatmulDescriptor_t* matmulDescr, cusparseLtMatmulDescAttribute_t matmulAttribute, const void* data, size_t dataSize); + // HIP: HIPSPARSELT_EXPORT hipsparseStatus_t hipsparseLtMatmulDescSetAttribute(const hipsparseLtHandle_t* handle, hipsparseLtMatmulDescriptor_t* matmulDescr, hipsparseLtMatmulDescAttribute_t matmulAttribute, const void* data, size_t dataSize); + // CHECK: status = hipsparseLtMatmulDescSetAttribute(&handle, &matmulDescr, sparseLtMatmulDescAttribute_t, data, dataSize); + status = cusparseLtMatmulDescSetAttribute(&handle, &matmulDescr, sparseLtMatmulDescAttribute_t, data, dataSize); + + // CUDA: cusparseStatus_t CUSPARSELT_API cusparseLtMatmulDescGetAttribute(const cusparseLtHandle_t* handle, const cusparseLtMatmulDescriptor_t* matmulDescr, cusparseLtMatmulDescAttribute_t matmulAttribute, void* data, size_t dataSize); + // HIP: HIPSPARSELT_EXPORT hipsparseStatus_t hipsparseLtMatmulDescGetAttribute(const hipsparseLtHandle_t* handle, const hipsparseLtMatmulDescriptor_t* matmulDescr, hipsparseLtMatmulDescAttribute_t matmulAttribute, void* data, size_t dataSize); + // CHECK: status = hipsparseLtMatmulDescGetAttribute(&handle, &matmulDescr, sparseLtMatmulDescAttribute_t, data, dataSize); + status = cusparseLtMatmulDescGetAttribute(&handle, &matmulDescr, sparseLtMatmulDescAttribute_t, data, dataSize); +#endif + return 0; }