From 9f430ef3b982258d0a26078f350aeebd54f3a5c9 Mon Sep 17 00:00:00 2001 From: Evgeny Mankov Date: Fri, 3 Apr 2026 15:53:37 +0200 Subject: [PATCH 1/3] [HIPIFY][Perl][#1776][fix] Stop hipifying in `C/C++ comments` and `lit test directives` (#2486) MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit [Synopsis] + The removal of redundant `// CHECK:` lookbehinds from AST transformation regexes exposed LLVM `lit` test directives and standard C/C++ comments (`//`, `/* */`) to unintended hipification. + Aggressive global regexes erroneously hipify any multi-line or inline C/C++ comment containing `CUDA` keywords. [Solution] + [Slurp & Regex Tokenization] Leveraged the existing file-slurping architecture (`undef $/;`) to perform global lexical masking across the entire file buffer. + [Lexical Masking] Introduced a `maskComments` subroutine to parse string literals `”..”'` and `'...'` and leave them untouched, while extracting C/C++ comments and replacing them with placeholders `__HIPIFY_COMMENT_X__` before any AST transformations. + [Global Restoration] Implemented `unmaskComments` to accurately restore the original comments and `lit` directives immediately prior to file output. [Impact] + Guarantees 100% preservation of: LLVM `lit` test validation strings (`RUN`, `CHECK, `CHECK-NEXT`, etc., and any other custom directives) and `C/C++ comments`. + Decouples comment preservation from `AST` regex logic, keeping the transformation expressions clean and focused on syntax. [Testing] + `perl -c hipify-perl` + Validated against all `hipify-clang` unit tests, ensuring no validation strings or comment blocks are mutated during the hipification process. --- bin/hipify-perl | 24 ++++++++++++++++++++++++ src/CUDA2HIP_Perl.cpp | 28 +++++++++++++++++++++++++++- 2 files changed, 51 insertions(+), 1 deletion(-) diff --git a/bin/hipify-perl b/bin/hipify-perl index 768c742a..9e65d3a5 100755 --- a/bin/hipify-perl +++ b/bin/hipify-perl @@ -18126,6 +18126,27 @@ my %hash_HipDNNOnlyUnsupportedFunctions = ( ); +# Global Comment Masking to protect lit tests and documentation +my @masked_comments; +sub maskComments { + my ($text_ref) = @_; + undef @masked_comments; + $$text_ref =~ s{("([^"\\]|\\.)*"|'([^'\\]|\\.)*')|(\/\/[^\n]*|\/\*[\s\S]*?\*\/)}{ + if (defined $4) { + push @masked_comments, $4; + "__HIPIFY_COMMENT_" . $#masked_comments . "__"; + } else { + $1; + } + }ge; +} + +sub unmaskComments { + my ($text_ref) = @_; + $$text_ref =~ s/__HIPIFY_COMMENT_(\d+)__/$masked_comments[$1]/ge; +} + + # Count of transforms in all files my %tt; clearStats(\%tt, \@statNames); @@ -18200,6 +18221,7 @@ while (@ARGV) { undef $/; # Read whole file at once, so we can match newlines while () { + maskComments(\$_); $countKeywords += m/__global__/; $countKeywords += m/__shared__/; unless ($quiet_warnings) { @@ -18324,6 +18346,8 @@ while (@ARGV) { } transformHostFunctions(); + unmaskComments(\$_); + # TODO: would like to move this code outside loop but it uses $_ which contains the whole file unless ($no_output) { my $apiCalls = $ft{'error'} + $ft{'init'} + $ft{'version'} + $ft{'device'} + $ft{'context'} + $ft{'module'} + $ft{'library'} + $ft{'memory'} + $ft{'virtual_memory'} + $ft{'ordered_memory'} + $ft{'multicast'} + $ft{'unified'} + $ft{'stream'} + $ft{'event'} + $ft{'external_resource'} + $ft{'stream_memory'} + $ft{'execution'} + $ft{'graph'} + $ft{'occupancy'} + $ft{'texture'} + $ft{'surface'} + $ft{'tensor'} + $ft{'peer'} + $ft{'graphics'} + $ft{'driver_entry_point'} + $ft{'cpp'} + $ft{'coredump'} + $ft{'green_context'} + $ft{'error_log'} + $ft{'driver_interact'} + $ft{'profiler'} + $ft{'openGL'} + $ft{'D3D9'} + $ft{'D3D10'} + $ft{'D3D11'} + $ft{'VDPAU'} + $ft{'EGL'} + $ft{'thread'} + $ft{'complex'} + $ft{'library'} + $ft{'device_library'} + $ft{'device_type'} + $ft{'include'} + $ft{'include_cuda_main_header'} + $ft{'include_cuda_main_header_v2'} + $ft{'type'} + $ft{'literal'} + $ft{'numeric_literal'} + $ft{'define'}; diff --git a/src/CUDA2HIP_Perl.cpp b/src/CUDA2HIP_Perl.cpp index 9aa6a149..eaf43061 100644 --- a/src/CUDA2HIP_Perl.cpp +++ b/src/CUDA2HIP_Perl.cpp @@ -605,7 +605,28 @@ namespace perl { if (Statistics::isUnsupported(ma->second)) out << tab << "'" << ma->first.str() << "' => 1," << endl; } out << ");" << endl_2; -} + } + + void generateCommentMasking(ostream& out) { + out << endl << "# Global Comment Masking to protect lit tests and documentation" << endl; + out << "my @masked_comments;" << endl; + out << sub << "maskComments {" << endl; + out << tab << "my ($text_ref) = @_;" << endl; + out << tab << "undef @masked_comments;" << endl; + out << tab << "$$text_ref =~ s{(\"([^\"\\\\]|\\\\.)*\"|'([^'\\\\]|\\\\.)*')|(\\/\\/[^\\n]*|\\/\\*[\\s\\S]*?\\*\\/)}{" << endl; + out << tab_2 << "if (defined $4) {" << endl; + out << tab_3 << "push @masked_comments, $4;" << endl; + out << tab_3 << "\"__HIPIFY_COMMENT_\" . $#masked_comments . \"__\";" << endl; + out << tab_2 << "} else {" << endl; + out << tab_3 << "$1;" << endl; + out << tab_2 << "}" << endl; + out << tab << "}ge;" << endl; + out << "}" << endl_2; + out << sub << "unmaskComments {" << endl; + out << tab << "my ($text_ref) = @_;" << endl; + out << tab << "$$text_ref =~ s/__HIPIFY_COMMENT_(\\d+)__/$masked_comments[$1]/ge;" << endl; + out << "}" << endl_2; + } bool generate(bool Generate) { if (!Generate) return true; @@ -645,6 +666,7 @@ namespace perl { generateHostFunctions(out); generateDeviceFunctions(out); generateDeprecatedAndUnsupportedFunctions(out); + generateCommentMasking(out); out << endl << "# Count of transforms in all files" << endl; out << my << "%tt;" << endl; out << "clearStats(\\%tt, \\@statNames);" << endl; @@ -720,6 +742,8 @@ namespace perl { out << tab_2 << "undef $/;" << endl; out << tab_2 << "# Read whole file at once, so we can match newlines" << endl; out << tab_2 << while_ << "() {" << endl; + // Mask all C/C++ comments immediately after reading the file into $_ + out << tab_3 << "maskComments(\\$_);" << endl; out << tab_3 << "$countKeywords += m/__global__/;" << endl; out << tab_3 << "$countKeywords += m/__shared__/;" << endl; out << tab_3 << unless_ << "($quiet_warnings) {" << endl; @@ -851,6 +875,8 @@ namespace perl { out << tab_7 << print << "\" warning: $fileName:#$line_num : $_\\n\";" << endl_tab_6 << "}" << endl_tab_5 << "}" << endl; out << tab_4 << "}" << endl_tab_3 << "}" << endl; out << tab_3 << "transformHostFunctions();" << endl_2; + // Restore all C/C++ comments before writing the output + out << tab_3 << "unmaskComments(\\$_);" << endl_2; out << tab_3 << "# TODO: would like to move this code outside loop but it uses $_ which contains the whole file" << endl; out << tab_3 << unless_ << "($no_output) {" << endl; out << tab_4 << sConv << endl; From 96cece12f20f7e3e76cb69f42418c2ea7b3b0f4c Mon Sep 17 00:00:00 2001 From: Evgeny Mankov Date: Fri, 3 Apr 2026 16:20:15 +0200 Subject: [PATCH 2/3] [HIPIFY][CUDA 13.1][FFT] `CUDA 13.1.0` support - Step 4 - `cuFFT Device` - Part 2 - `Functions` - final (#2487) + Updated the regenerated `hipify-perl` and `FFT` `CUDA2HIP` docs accordingly --- bin/hipify-perl | 15 +++++++++ .../tables/CUFFT_API_supported_by_HIP.md | 15 +++++++++ src/CUDA2HIP_FFT_API_functions.cpp | 31 +++++++++++++++++++ 3 files changed, 61 insertions(+) diff --git a/bin/hipify-perl b/bin/hipify-perl index 9e65d3a5..edddde60 100755 --- a/bin/hipify-perl +++ b/bin/hipify-perl @@ -14183,21 +14183,36 @@ my %hash_HipOnlyUnsupportedFunctions = ( 'cufftBox3d_t' => 1, 'cufftCompatibility' => 1, 'cufftCompatibility_t' => 1, + 'cufftDescriptionCreate' => 1, 'cufftDescriptionDirection' => 1, 'cufftDescriptionDirection_t' => 1, + 'cufftDescriptionGetTraitInt64' => 1, 'cufftDescriptionHandle' => 1, 'cufftDescriptionPrecision' => 1, 'cufftDescriptionPrecision_t' => 1, + 'cufftDescriptionSetTraitInt64' => 1, 'cufftDescriptionTrait' => 1, 'cufftDescriptionTrait_t' => 1, 'cufftDescriptionType' => 1, 'cufftDescriptionType_t' => 1, 'cufftDeviceCodeContainer' => 1, 'cufftDeviceCodeContainer_t' => 1, + 'cufftDeviceCreate' => 1, + 'cufftDeviceDestroy' => 1, 'cufftDeviceFunctionHandle' => 1, 'cufftDeviceFunctionTrait' => 1, 'cufftDeviceFunctionTrait_t' => 1, + 'cufftDeviceGetDatabaseStr' => 1, + 'cufftDeviceGetDatabaseStrSize' => 1, + 'cufftDeviceGetDeviceFunctionTraitInt64' => 1, + 'cufftDeviceGetDeviceFunctions' => 1, + 'cufftDeviceGetLTOIRSizes' => 1, + 'cufftDeviceGetLTOIRs' => 1, + 'cufftDeviceGetNumDeviceFunctions' => 1, + 'cufftDeviceGetNumLTOIRs' => 1, + 'cufftDeviceGetVersion' => 1, 'cufftDeviceHandle' => 1, + 'cufftDeviceIsSupported' => 1, 'cufftGetPlanPropertyInt64' => 1, 'cufftProperty' => 1, 'cufftProperty_t' => 1, diff --git a/docs/reference/tables/CUFFT_API_supported_by_HIP.md b/docs/reference/tables/CUFFT_API_supported_by_HIP.md index 8249bc44..c6a92d81 100644 --- a/docs/reference/tables/CUFFT_API_supported_by_HIP.md +++ b/docs/reference/tables/CUFFT_API_supported_by_HIP.md @@ -173,7 +173,22 @@ |`cufftCallbackStoreR`| | | | |`hipfftCallbackStoreR`|4.3.0| | | | | | |`cufftCallbackStoreZ`| | | | |`hipfftCallbackStoreZ`|4.3.0| | | | | | |`cufftCreate`| | | | |`hipfftCreate`|1.7.0| | | | | | +|`cufftDescriptionCreate`|13.1| | | | | | | | | | | +|`cufftDescriptionGetTraitInt64`|13.1| | | | | | | | | | | +|`cufftDescriptionSetTraitInt64`|13.1| | | | | | | | | | | |`cufftDestroy`| | | | |`hipfftDestroy`|1.7.0| | | | | | +|`cufftDeviceCreate`|13.1| | | | | | | | | | | +|`cufftDeviceDestroy`|13.1| | | | | | | | | | | +|`cufftDeviceGetDatabaseStr`|13.1| | | | | | | | | | | +|`cufftDeviceGetDatabaseStrSize`|13.1| | | | | | | | | | | +|`cufftDeviceGetDeviceFunctionTraitInt64`|13.1| | | | | | | | | | | +|`cufftDeviceGetDeviceFunctions`|13.1| | | | | | | | | | | +|`cufftDeviceGetLTOIRSizes`|13.1| | | | | | | | | | | +|`cufftDeviceGetLTOIRs`|13.1| | | | | | | | | | | +|`cufftDeviceGetNumDeviceFunctions`|13.1| | | | | | | | | | | +|`cufftDeviceGetNumLTOIRs`|13.1| | | | | | | | | | | +|`cufftDeviceGetVersion`|13.1| | | | | | | | | | | +|`cufftDeviceIsSupported`|13.1| | | | | | | | | | | |`cufftEstimate1d`| | | | |`hipfftEstimate1d`|1.7.0| | | | | | |`cufftEstimate2d`| | | | |`hipfftEstimate2d`|1.7.0| | | | | | |`cufftEstimate3d`| | | | |`hipfftEstimate3d`|1.7.0| | | | | | diff --git a/src/CUDA2HIP_FFT_API_functions.cpp b/src/CUDA2HIP_FFT_API_functions.cpp index 95638d73..9b65e070 100644 --- a/src/CUDA2HIP_FFT_API_functions.cpp +++ b/src/CUDA2HIP_FFT_API_functions.cpp @@ -157,6 +157,22 @@ const std::map CUDA_FFT_FUNCTION_MAP = [] { m["fftw_import_wisdom_from_file"] = {"fftw_import_wisdom_from_file", "", CONV_LIB_FUNC, API_FFT, 2, UNSUPPORTED}; m["fftwf_import_wisdom_from_file"] = {"fftwf_import_wisdom_from_file", "", CONV_LIB_FUNC, API_FFT, 2, UNSUPPORTED}; + m["cufftDeviceGetVersion"] = {"hipfftDeviceGetVersion", "", CONV_LIB_FUNC, API_FFT, 2, UNSUPPORTED}; + m["cufftDescriptionCreate"] = {"hipfftDescriptionCreate", "", CONV_LIB_FUNC, API_FFT, 2, UNSUPPORTED}; + m["cufftDescriptionSetTraitInt64"] = {"hipfftDescriptionSetTraitInt64", "", CONV_LIB_FUNC, API_FFT, 2, UNSUPPORTED}; + m["cufftDescriptionGetTraitInt64"] = {"hipfftDescriptionGetTraitInt64", "", CONV_LIB_FUNC, API_FFT, 2, UNSUPPORTED}; + m["cufftDeviceCreate"] = {"hipfftDeviceCreate", "", CONV_LIB_FUNC, API_FFT, 2, UNSUPPORTED}; + m["cufftDeviceIsSupported"] = {"hipfftDeviceIsSupported", "", CONV_LIB_FUNC, API_FFT, 2, UNSUPPORTED}; + m["cufftDeviceGetNumDeviceFunctions"] = {"hipfftDeviceGetNumDeviceFunctions", "", CONV_LIB_FUNC, API_FFT, 2, UNSUPPORTED}; + m["cufftDeviceGetDeviceFunctions"] = {"hipfftDeviceGetDeviceFunctions", "", CONV_LIB_FUNC, API_FFT, 2, UNSUPPORTED}; + m["cufftDeviceGetDeviceFunctionTraitInt64"] = {"hipfftDeviceGetDeviceFunctionTraitInt64", "", CONV_LIB_FUNC, API_FFT, 2, UNSUPPORTED}; + m["cufftDeviceGetDatabaseStrSize"] = {"hipfftDeviceGetDatabaseStrSize", "", CONV_LIB_FUNC, API_FFT, 2, UNSUPPORTED}; + m["cufftDeviceGetDatabaseStr"] = {"hipfftDeviceGetDatabaseStr", "", CONV_LIB_FUNC, API_FFT, 2, UNSUPPORTED}; + m["cufftDeviceGetNumLTOIRs"] = {"hipfftDeviceGetNumLTOIRs", "", CONV_LIB_FUNC, API_FFT, 2, UNSUPPORTED}; + m["cufftDeviceGetLTOIRSizes"] = {"hipfftDeviceGetLTOIRSizes", "", CONV_LIB_FUNC, API_FFT, 2, UNSUPPORTED}; + m["cufftDeviceGetLTOIRs"] = {"hipfftDeviceGetLTOIRs", "", CONV_LIB_FUNC, API_FFT, 2, UNSUPPORTED}; + m["cufftDeviceDestroy"] = {"hipfftDeviceDestroy", "", CONV_LIB_FUNC, API_FFT, 2, UNSUPPORTED}; + return m; }(); @@ -181,6 +197,21 @@ const std::map CUDA_FFT_FUNCTION_VER_MAP = [] m["fftwf_plan_guru64_dft"] = {CUDA_100, CUDA_0, CUDA_0 }; m["fftwf_plan_guru64_dft_r2c"] = {CUDA_100, CUDA_0, CUDA_0 }; m["fftwf_plan_guru64_dft_c2r"] = {CUDA_100, CUDA_0, CUDA_0 }; + m["cufftDeviceGetVersion"] = {CUDA_131, CUDA_0, CUDA_0 }; + m["cufftDescriptionCreate"] = {CUDA_131, CUDA_0, CUDA_0 }; + m["cufftDescriptionSetTraitInt64"] = {CUDA_131, CUDA_0, CUDA_0 }; + m["cufftDescriptionGetTraitInt64"] = {CUDA_131, CUDA_0, CUDA_0 }; + m["cufftDeviceCreate"] = {CUDA_131, CUDA_0, CUDA_0 }; + m["cufftDeviceIsSupported"] = {CUDA_131, CUDA_0, CUDA_0 }; + m["cufftDeviceGetNumDeviceFunctions"] = {CUDA_131, CUDA_0, CUDA_0 }; + m["cufftDeviceGetDeviceFunctions"] = {CUDA_131, CUDA_0, CUDA_0 }; + m["cufftDeviceGetDeviceFunctionTraitInt64"] = {CUDA_131, CUDA_0, CUDA_0 }; + m["cufftDeviceGetDatabaseStrSize"] = {CUDA_131, CUDA_0, CUDA_0 }; + m["cufftDeviceGetDatabaseStr"] = {CUDA_131, CUDA_0, CUDA_0 }; + m["cufftDeviceGetNumLTOIRs"] = {CUDA_131, CUDA_0, CUDA_0 }; + m["cufftDeviceGetLTOIRSizes"] = {CUDA_131, CUDA_0, CUDA_0 }; + m["cufftDeviceGetLTOIRs"] = {CUDA_131, CUDA_0, CUDA_0 }; + m["cufftDeviceDestroy"] = {CUDA_131, CUDA_0, CUDA_0 }; return m; }(); From 21aaed42c9d7f7ed95797d947277fb76d72977a4 Mon Sep 17 00:00:00 2001 From: Evgeny Mankov Date: Sat, 4 Apr 2026 02:23:34 +0200 Subject: [PATCH 3/3] [HIPIFY][CUDA 13.1][SPARSE] `CUDA 13.1.0` support - Step 5 - `cuSPARSE` (#2489) + Updated the regenerated `hipify-perl` and `SPARSE` `CUDA2HIP` docs accordingly --- bin/hipify-perl | 26 +++++++++++++++++++ .../tables/CUSPARSE_API_supported_by_HIP.md | 19 +++++++++++--- .../CUSPARSE_API_supported_by_HIP_and_ROC.md | 19 +++++++++++--- .../tables/CUSPARSE_API_supported_by_ROC.md | 19 +++++++++++--- src/CUDA2HIP_SPARSE_API_functions.cpp | 24 ++++++++++++++--- src/CUDA2HIP_SPARSE_API_types.cpp | 12 +++++++++ 6 files changed, 103 insertions(+), 16 deletions(-) diff --git a/bin/hipify-perl b/bin/hipify-perl index edddde60..ca3a000e 100755 --- a/bin/hipify-perl +++ b/bin/hipify-perl @@ -178,6 +178,7 @@ my %deprecated_funcs = ( "cusparseZbsrsm2_bufferSizeExt" => "12.2", "cusparseZbsrsm2_bufferSize" => "12.2", "cusparseZbsrsm2_analysis" => "12.2", + "cusparseZbsrmv" => "13.1", "cusparseZbsrmm" => "12.8", "cusparseZbsrilu02_numericBoost" => "12.2", "cusparseZbsrilu02_bufferSizeExt" => "12.2", @@ -296,6 +297,7 @@ my %deprecated_funcs = ( "cusparseSbsrsm2_bufferSizeExt" => "12.2", "cusparseSbsrsm2_bufferSize" => "12.2", "cusparseSbsrsm2_analysis" => "12.2", + "cusparseSbsrmv" => "13.1", "cusparseSbsrmm" => "12.8", "cusparseSbsrilu02_numericBoost" => "12.2", "cusparseSbsrilu02_bufferSizeExt" => "12.2", @@ -425,6 +427,7 @@ my %deprecated_funcs = ( "cusparseDbsrsm2_bufferSizeExt" => "12.2", "cusparseDbsrsm2_bufferSize" => "12.2", "cusparseDbsrsm2_analysis" => "12.2", + "cusparseDbsrmv" => "13.1", "cusparseDbsrmm" => "12.8", "cusparseDbsrilu02_numericBoost" => "12.2", "cusparseDbsrilu02_bufferSizeExt" => "12.2", @@ -540,6 +543,7 @@ my %deprecated_funcs = ( "cusparseCbsrsm2_bufferSizeExt" => "12.2", "cusparseCbsrsm2_bufferSize" => "12.2", "cusparseCbsrsm2_analysis" => "12.2", + "cusparseCbsrmv" => "13.1", "cusparseCbsrmm" => "12.8", "cusparseCbsrilu02_numericBoost" => "12.2", "cusparseCbsrilu02_bufferSizeExt" => "12.2", @@ -12351,6 +12355,7 @@ my %hash_HipOnlyUnsupportedFunctions = ( 'CUSPARSE_ALG_NAIVE' => 1, 'CUSPARSE_COLOR_ALG0' => 1, 'CUSPARSE_COLOR_ALG1' => 1, + 'CUSPARSE_ENABLE_EXPERIMENTAL_API' => 1, 'CUSPARSE_FORMAT_BSR' => 1, 'CUSPARSE_FORMAT_SLICED_ELLPACK' => 1, 'CUSPARSE_SIDE_LEFT' => 1, @@ -14710,6 +14715,16 @@ my %hash_HipOnlyUnsupportedFunctions = ( 'cusparseSpMMOpPlan_t' => 1, 'cusparseSpMMOp_createPlan' => 1, 'cusparseSpMMOp_destroyPlan' => 1, + 'cusparseSpMVOp' => 1, + 'cusparseSpMVOpDescr' => 1, + 'cusparseSpMVOpDescr_t' => 1, + 'cusparseSpMVOpPlan' => 1, + 'cusparseSpMVOpPlan_t' => 1, + 'cusparseSpMVOp_createDescr' => 1, + 'cusparseSpMVOp_createPlan' => 1, + 'cusparseSpMVOp_destroyDescr' => 1, + 'cusparseSpMVOp_destroyPlan' => 1, + 'cusparseSpMVOp_setGlobalUserData' => 1, 'cusparseSpMatDescr' => 1, 'cusparseSpMatGetNumBatches' => 1, 'cusparseSpMatSetNumBatches' => 1, @@ -15865,6 +15880,7 @@ my %hash_RocOnlyUnsupportedFunctions = ( 'CUSPARSE_CSRMM_ALG1' => 1, 'CUSPARSE_CSRMV_ALG1' => 1, 'CUSPARSE_CSRMV_ALG2' => 1, + 'CUSPARSE_ENABLE_EXPERIMENTAL_API' => 1, 'CUSPARSE_MM_ALG_DEFAULT' => 1, 'CUSPARSE_MV_ALG_DEFAULT' => 1, 'CUSPARSE_SIDE_LEFT' => 1, @@ -16300,6 +16316,16 @@ my %hash_RocOnlyUnsupportedFunctions = ( 'cusparseSpMMOpPlan_t' => 1, 'cusparseSpMMOp_createPlan' => 1, 'cusparseSpMMOp_destroyPlan' => 1, + 'cusparseSpMVOp' => 1, + 'cusparseSpMVOpDescr' => 1, + 'cusparseSpMVOpDescr_t' => 1, + 'cusparseSpMVOpPlan' => 1, + 'cusparseSpMVOpPlan_t' => 1, + 'cusparseSpMVOp_createDescr' => 1, + 'cusparseSpMVOp_createPlan' => 1, + 'cusparseSpMVOp_destroyDescr' => 1, + 'cusparseSpMVOp_destroyPlan' => 1, + 'cusparseSpMVOp_setGlobalUserData' => 1, 'cusparseSpMV_preprocess' => 1, 'cusparseSpMatGetNumBatches' => 1, 'cusparseSpMatSetNumBatches' => 1, diff --git a/docs/reference/tables/CUSPARSE_API_supported_by_HIP.md b/docs/reference/tables/CUSPARSE_API_supported_by_HIP.md index cf42403a..bba76b55 100644 --- a/docs/reference/tables/CUSPARSE_API_supported_by_HIP.md +++ b/docs/reference/tables/CUSPARSE_API_supported_by_HIP.md @@ -37,6 +37,7 @@ |`CUSPARSE_DIAG_TYPE_UNIT`| | | | |`HIPSPARSE_DIAG_TYPE_UNIT`|1.9.2| | | | | | |`CUSPARSE_DIRECTION_COLUMN`| | | | |`HIPSPARSE_DIRECTION_COLUMN`|3.2.0| | | | | | |`CUSPARSE_DIRECTION_ROW`| | | | |`HIPSPARSE_DIRECTION_ROW`|3.2.0| | | | | | +|`CUSPARSE_ENABLE_EXPERIMENTAL_API`|13.1| | | | | | | | | | | |`CUSPARSE_FILL_MODE_LOWER`| | | | |`HIPSPARSE_FILL_MODE_LOWER`|1.9.2| | | | | | |`CUSPARSE_FILL_MODE_UPPER`| | | | |`HIPSPARSE_FILL_MODE_UPPER`|1.9.2| | | | | | |`CUSPARSE_FORMAT_BLOCKED_ELL`|11.2| | | |`HIPSPARSE_FORMAT_BLOCKED_ELL`|4.5.0| | | | | | @@ -188,6 +189,10 @@ |`cusparseSpMMOpPlan`|11.5| | | | | | | | | | | |`cusparseSpMMOpPlan_t`|11.5| | | | | | | | | | | |`cusparseSpMVAlg_t`|10.2| | | |`hipsparseSpMVAlg_t`|4.1.0| | | | | | +|`cusparseSpMVOpDescr`|13.1| | | | | | | | | | | +|`cusparseSpMVOpDescr_t`|13.1| | | | | | | | | | | +|`cusparseSpMVOpPlan`|13.1| | | | | | | | | | | +|`cusparseSpMVOpPlan_t`|13.1| | | | | | | | | | | |`cusparseSpMatAttribute_t`|11.3| | | |`hipsparseSpMatAttribute_t`|4.5.0| | | | | | |`cusparseSpMatDescr`|10.1| | | | | | | | | | | |`cusparseSpMatDescr_t`|10.1| | | |`hipsparseSpMatDescr_t`|4.1.0| | | | | | @@ -307,7 +312,7 @@ |**CUDA**|**A**|**D**|**C**|**R**|**HIP**|**A**|**D**|**C**|**R**|**U**|**E**| |:--|:-:|:-:|:-:|:-:|:--|:-:|:-:|:-:|:-:|:-:|:-:| -|`cusparseCbsrmv`| | | | |`hipsparseCbsrmv`|3.5.0| | | | | | +|`cusparseCbsrmv`| |13.1| | |`hipsparseCbsrmv`|3.5.0| | | | | | |`cusparseCbsrsv2_analysis`| |12.2| | |`hipsparseCbsrsv2_analysis`|3.6.0|6.2.0| | | | | |`cusparseCbsrsv2_bufferSize`| |12.2| | |`hipsparseCbsrsv2_bufferSize`|3.6.0|6.2.0| | | | | |`cusparseCbsrsv2_bufferSizeExt`| |12.2| | |`hipsparseCbsrsv2_bufferSizeExt`|3.6.0| | | | | | @@ -330,7 +335,7 @@ |`cusparseCsrmvEx_bufferSize`|8.0|11.2| |12.0| | | | | | | | |`cusparseCsrsv_analysisEx`|8.0|10.2| |11.0| | | | | | | | |`cusparseCsrsv_solveEx`|8.0|10.2| |11.0| | | | | | | | -|`cusparseDbsrmv`| | | | |`hipsparseDbsrmv`|3.5.0| | | | | | +|`cusparseDbsrmv`| |13.1| | |`hipsparseDbsrmv`|3.5.0| | | | | | |`cusparseDbsrsv2_analysis`| |12.2| | |`hipsparseDbsrsv2_analysis`|3.6.0|6.2.0| | | | | |`cusparseDbsrsv2_bufferSize`| |12.2| | |`hipsparseDbsrsv2_bufferSize`|3.6.0|6.2.0| | | | | |`cusparseDbsrsv2_bufferSizeExt`| |12.2| | |`hipsparseDbsrsv2_bufferSizeExt`|3.6.0| | | | | | @@ -349,7 +354,7 @@ |`cusparseDhybmv`| |10.2| |11.0|`hipsparseDhybmv`|1.9.2|3.9.0| | | | | |`cusparseDhybsv_analysis`| |10.2| |11.0| | | | | | | | |`cusparseDhybsv_solve`| |10.2| |11.0| | | | | | | | -|`cusparseSbsrmv`| | | | |`hipsparseSbsrmv`|3.5.0| | | | | | +|`cusparseSbsrmv`| |13.1| | |`hipsparseSbsrmv`|3.5.0| | | | | | |`cusparseSbsrsv2_analysis`| |12.2| | |`hipsparseSbsrsv2_analysis`|3.6.0|6.2.0| | | | | |`cusparseSbsrsv2_bufferSize`| |12.2| | |`hipsparseSbsrsv2_bufferSize`|3.6.0|6.2.0| | | | | |`cusparseSbsrsv2_bufferSizeExt`| |12.2| | |`hipsparseSbsrsv2_bufferSizeExt`|3.6.0| | | | | | @@ -370,7 +375,7 @@ |`cusparseShybsv_solve`| |10.2| |11.0| | | | | | | | |`cusparseXbsrsv2_zeroPivot`| |12.2| | |`hipsparseXbsrsv2_zeroPivot`|3.6.0|6.2.0| | | | | |`cusparseXcsrsv2_zeroPivot`| |11.3| |12.0|`hipsparseXcsrsv2_zeroPivot`|1.9.2|5.6.0| | | | | -|`cusparseZbsrmv`| | | | |`hipsparseZbsrmv`|3.5.0| | | | | | +|`cusparseZbsrmv`| |13.1| | |`hipsparseZbsrmv`|3.5.0| | | | | | |`cusparseZbsrsv2_analysis`| |12.2| | |`hipsparseZbsrsv2_analysis`|3.6.0|6.2.0| | | | | |`cusparseZbsrsv2_bufferSize`| |12.2| | |`hipsparseZbsrsv2_bufferSize`|3.6.0|6.2.0| | | | | |`cusparseZbsrsv2_bufferSizeExt`| |12.2| | |`hipsparseZbsrsv2_bufferSizeExt`|3.6.0| | | | | | @@ -896,6 +901,12 @@ |`cusparseSpMM_bufferSize`|10.1| |12.0| |`hipsparseSpMM_bufferSize`|4.2.0| |6.0.0| | | | |`cusparseSpMM_preprocess`|11.2| |12.0| |`hipsparseSpMM_preprocess`|4.5.0| |6.0.0| | | | |`cusparseSpMV`|10.1| |12.0| |`hipsparseSpMV`|4.1.0| |6.0.0| | | | +|`cusparseSpMVOp`|13.1| | | | | | | | | | | +|`cusparseSpMVOp_createDescr`|13.1| | | | | | | | | | | +|`cusparseSpMVOp_createPlan`|13.1| | | | | | | | | | | +|`cusparseSpMVOp_destroyDescr`|13.1| | | | | | | | | | | +|`cusparseSpMVOp_destroyPlan`|13.1| | | | | | | | | | | +|`cusparseSpMVOp_setGlobalUserData`|13.1| | | | | | | | | | | |`cusparseSpMV_bufferSize`|10.1| |12.0| |`hipsparseSpMV_bufferSize`|4.1.0| |6.0.0| | | | |`cusparseSpMV_preprocess`|12.4| | | |`hipsparseSpMV_preprocess`|5.2.0| |6.0.0| | | | |`cusparseSpMatGetAttribute`|11.3| |12.0| |`hipsparseSpMatGetAttribute`|4.5.0| |6.0.0| | | | diff --git a/docs/reference/tables/CUSPARSE_API_supported_by_HIP_and_ROC.md b/docs/reference/tables/CUSPARSE_API_supported_by_HIP_and_ROC.md index ead82c3f..c1a114c7 100644 --- a/docs/reference/tables/CUSPARSE_API_supported_by_HIP_and_ROC.md +++ b/docs/reference/tables/CUSPARSE_API_supported_by_HIP_and_ROC.md @@ -37,6 +37,7 @@ |`CUSPARSE_DIAG_TYPE_UNIT`| | | | |`HIPSPARSE_DIAG_TYPE_UNIT`|1.9.2| | | | | |`rocsparse_diag_type_unit`|1.9.0| | | | | |`CUSPARSE_DIRECTION_COLUMN`| | | | |`HIPSPARSE_DIRECTION_COLUMN`|3.2.0| | | | | |`rocsparse_direction_column`|3.1.0| | | | | |`CUSPARSE_DIRECTION_ROW`| | | | |`HIPSPARSE_DIRECTION_ROW`|3.2.0| | | | | |`rocsparse_direction_row`|3.1.0| | | | | +|`CUSPARSE_ENABLE_EXPERIMENTAL_API`|13.1| | | | | | | | | | | | | | | | | |`CUSPARSE_FILL_MODE_LOWER`| | | | |`HIPSPARSE_FILL_MODE_LOWER`|1.9.2| | | | | |`rocsparse_fill_mode_lower`|1.9.0| | | | | |`CUSPARSE_FILL_MODE_UPPER`| | | | |`HIPSPARSE_FILL_MODE_UPPER`|1.9.2| | | | | |`rocsparse_fill_mode_upper`|1.9.0| | | | | |`CUSPARSE_FORMAT_BLOCKED_ELL`|11.2| | | |`HIPSPARSE_FORMAT_BLOCKED_ELL`|4.5.0| | | | | |`rocsparse_format_bell`|4.5.0| | | | | @@ -188,6 +189,10 @@ |`cusparseSpMMOpPlan`|11.5| | | | | | | | | | | | | | | | | |`cusparseSpMMOpPlan_t`|11.5| | | | | | | | | | | | | | | | | |`cusparseSpMVAlg_t`|10.2| | | |`hipsparseSpMVAlg_t`|4.1.0| | | | | |`rocsparse_spmv_alg`|4.1.0| | | | | +|`cusparseSpMVOpDescr`|13.1| | | | | | | | | | | | | | | | | +|`cusparseSpMVOpDescr_t`|13.1| | | | | | | | | | | | | | | | | +|`cusparseSpMVOpPlan`|13.1| | | | | | | | | | | | | | | | | +|`cusparseSpMVOpPlan_t`|13.1| | | | | | | | | | | | | | | | | |`cusparseSpMatAttribute_t`|11.3| | | |`hipsparseSpMatAttribute_t`|4.5.0| | | | | |`rocsparse_spmat_attribute`|4.5.0| | | | | |`cusparseSpMatDescr`|10.1| | | | | | | | | | |`_rocsparse_spmat_descr`|4.1.0| | | | | |`cusparseSpMatDescr_t`|10.1| | | |`hipsparseSpMatDescr_t`|4.1.0| | | | | |`rocsparse_spmat_descr`|4.1.0| | | | | @@ -307,7 +312,7 @@ |**CUDA**|**A**|**D**|**C**|**R**|**HIP**|**A**|**D**|**C**|**R**|**U**|**E**|**ROC**|**A**|**D**|**C**|**R**|**E**| |:--|:-:|:-:|:-:|:-:|:--|:-:|:-:|:-:|:-:|:-:|:-:|:--|:-:|:-:|:-:|:-:|:-:| -|`cusparseCbsrmv`| | | | |`hipsparseCbsrmv`|3.5.0| | | | | |`rocsparse_cbsrmv`|3.5.0|5.4.0| | | | +|`cusparseCbsrmv`| |13.1| | |`hipsparseCbsrmv`|3.5.0| | | | | |`rocsparse_cbsrmv`|3.5.0|5.4.0| | | | |`cusparseCbsrsv2_analysis`| |12.2| | |`hipsparseCbsrsv2_analysis`|3.6.0|6.2.0| | | | |`rocsparse_cbsrsv_analysis`|3.6.0| | | | | |`cusparseCbsrsv2_bufferSize`| |12.2| | |`hipsparseCbsrsv2_bufferSize`|3.6.0|6.2.0| | | | |`rocsparse_cbsrsv_buffer_size`|3.6.0| | | | | |`cusparseCbsrsv2_bufferSizeExt`| |12.2| | |`hipsparseCbsrsv2_bufferSizeExt`|3.6.0| | | | | |`rocsparse_cbsrsv_buffer_size`|3.6.0| | | | | @@ -330,7 +335,7 @@ |`cusparseCsrmvEx_bufferSize`|8.0|11.2| |12.0| | | | | | | | | | | | | | |`cusparseCsrsv_analysisEx`|8.0|10.2| |11.0| | | | | | | | | | | | | | |`cusparseCsrsv_solveEx`|8.0|10.2| |11.0| | | | | | | | | | | | | | -|`cusparseDbsrmv`| | | | |`hipsparseDbsrmv`|3.5.0| | | | | |`rocsparse_dbsrmv`|3.5.0|5.4.0| | | | +|`cusparseDbsrmv`| |13.1| | |`hipsparseDbsrmv`|3.5.0| | | | | |`rocsparse_dbsrmv`|3.5.0|5.4.0| | | | |`cusparseDbsrsv2_analysis`| |12.2| | |`hipsparseDbsrsv2_analysis`|3.6.0|6.2.0| | | | |`rocsparse_dbsrsv_analysis`|3.6.0| | | | | |`cusparseDbsrsv2_bufferSize`| |12.2| | |`hipsparseDbsrsv2_bufferSize`|3.6.0|6.2.0| | | | |`rocsparse_dbsrsv_buffer_size`|3.6.0| | | | | |`cusparseDbsrsv2_bufferSizeExt`| |12.2| | |`hipsparseDbsrsv2_bufferSizeExt`|3.6.0| | | | | |`rocsparse_dbsrsv_buffer_size`|3.6.0| | | | | @@ -349,7 +354,7 @@ |`cusparseDhybmv`| |10.2| |11.0|`hipsparseDhybmv`|1.9.2|3.9.0| | | | |`rocsparse_dhybmv`|1.9.0| | | | | |`cusparseDhybsv_analysis`| |10.2| |11.0| | | | | | | | | | | | | | |`cusparseDhybsv_solve`| |10.2| |11.0| | | | | | | | | | | | | | -|`cusparseSbsrmv`| | | | |`hipsparseSbsrmv`|3.5.0| | | | | |`rocsparse_sbsrmv`|3.5.0|5.4.0| | | | +|`cusparseSbsrmv`| |13.1| | |`hipsparseSbsrmv`|3.5.0| | | | | |`rocsparse_sbsrmv`|3.5.0|5.4.0| | | | |`cusparseSbsrsv2_analysis`| |12.2| | |`hipsparseSbsrsv2_analysis`|3.6.0|6.2.0| | | | |`rocsparse_sbsrsv_analysis`|3.6.0| | | | | |`cusparseSbsrsv2_bufferSize`| |12.2| | |`hipsparseSbsrsv2_bufferSize`|3.6.0|6.2.0| | | | |`rocsparse_sbsrsv_buffer_size`|3.6.0| | | | | |`cusparseSbsrsv2_bufferSizeExt`| |12.2| | |`hipsparseSbsrsv2_bufferSizeExt`|3.6.0| | | | | |`rocsparse_sbsrsv_buffer_size`|3.6.0| | | | | @@ -370,7 +375,7 @@ |`cusparseShybsv_solve`| |10.2| |11.0| | | | | | | | | | | | | | |`cusparseXbsrsv2_zeroPivot`| |12.2| | |`hipsparseXbsrsv2_zeroPivot`|3.6.0|6.2.0| | | | |`rocsparse_bsrsv_zero_pivot`|3.6.0| | | | | |`cusparseXcsrsv2_zeroPivot`| |11.3| |12.0|`hipsparseXcsrsv2_zeroPivot`|1.9.2|5.6.0| | | | |`rocsparse_csrsv_zero_pivot`|1.9.0| | | | | -|`cusparseZbsrmv`| | | | |`hipsparseZbsrmv`|3.5.0| | | | | |`rocsparse_zbsrmv`|3.5.0|5.4.0| | | | +|`cusparseZbsrmv`| |13.1| | |`hipsparseZbsrmv`|3.5.0| | | | | |`rocsparse_zbsrmv`|3.5.0|5.4.0| | | | |`cusparseZbsrsv2_analysis`| |12.2| | |`hipsparseZbsrsv2_analysis`|3.6.0|6.2.0| | | | |`rocsparse_zbsrsv_analysis`|3.6.0| | | | | |`cusparseZbsrsv2_bufferSize`| |12.2| | |`hipsparseZbsrsv2_bufferSize`|3.6.0|6.2.0| | | | |`rocsparse_zbsrsv_buffer_size`|3.6.0| | | | | |`cusparseZbsrsv2_bufferSizeExt`| |12.2| | |`hipsparseZbsrsv2_bufferSizeExt`|3.6.0| | | | | |`rocsparse_zbsrsv_buffer_size`|3.6.0| | | | | @@ -896,6 +901,12 @@ |`cusparseSpMM_bufferSize`|10.1| |12.0| |`hipsparseSpMM_bufferSize`|4.2.0| |6.0.0| | | |`rocsparse_spmm`|4.2.0| |6.0.0| | | |`cusparseSpMM_preprocess`|11.2| |12.0| |`hipsparseSpMM_preprocess`|4.5.0| |6.0.0| | | |`rocsparse_spmm`|4.2.0| |6.0.0| | | |`cusparseSpMV`|10.1| |12.0| |`hipsparseSpMV`|4.1.0| |6.0.0| | | |`rocsparse_spmv`|4.1.0| |6.0.0| | | +|`cusparseSpMVOp`|13.1| | | | | | | | | | | | | | | | | +|`cusparseSpMVOp_createDescr`|13.1| | | | | | | | | | | | | | | | | +|`cusparseSpMVOp_createPlan`|13.1| | | | | | | | | | | | | | | | | +|`cusparseSpMVOp_destroyDescr`|13.1| | | | | | | | | | | | | | | | | +|`cusparseSpMVOp_destroyPlan`|13.1| | | | | | | | | | | | | | | | | +|`cusparseSpMVOp_setGlobalUserData`|13.1| | | | | | | | | | | | | | | | | |`cusparseSpMV_bufferSize`|10.1| |12.0| |`hipsparseSpMV_bufferSize`|4.1.0| |6.0.0| | | |`rocsparse_spmv`|4.1.0| |6.0.0| | | |`cusparseSpMV_preprocess`|12.4| | | |`hipsparseSpMV_preprocess`|5.2.0| |6.0.0| | | | | | | | | | |`cusparseSpMatGetAttribute`|11.3| |12.0| |`hipsparseSpMatGetAttribute`|4.5.0| |6.0.0| | | |`rocsparse_spmat_get_attribute`|4.5.0| |6.0.0| | | diff --git a/docs/reference/tables/CUSPARSE_API_supported_by_ROC.md b/docs/reference/tables/CUSPARSE_API_supported_by_ROC.md index 2e0e6fb3..9aa17fb0 100644 --- a/docs/reference/tables/CUSPARSE_API_supported_by_ROC.md +++ b/docs/reference/tables/CUSPARSE_API_supported_by_ROC.md @@ -37,6 +37,7 @@ |`CUSPARSE_DIAG_TYPE_UNIT`| | | | |`rocsparse_diag_type_unit`|1.9.0| | | | | | |`CUSPARSE_DIRECTION_COLUMN`| | | | |`rocsparse_direction_column`|3.1.0| | | | | | |`CUSPARSE_DIRECTION_ROW`| | | | |`rocsparse_direction_row`|3.1.0| | | | | | +|`CUSPARSE_ENABLE_EXPERIMENTAL_API`|13.1| | | | | | | | | | | |`CUSPARSE_FILL_MODE_LOWER`| | | | |`rocsparse_fill_mode_lower`|1.9.0| | | | | | |`CUSPARSE_FILL_MODE_UPPER`| | | | |`rocsparse_fill_mode_upper`|1.9.0| | | | | | |`CUSPARSE_FORMAT_BLOCKED_ELL`|11.2| | | |`rocsparse_format_bell`|4.5.0| | | | | | @@ -188,6 +189,10 @@ |`cusparseSpMMOpPlan`|11.5| | | | | | | | | | | |`cusparseSpMMOpPlan_t`|11.5| | | | | | | | | | | |`cusparseSpMVAlg_t`|10.2| | | |`rocsparse_spmv_alg`|4.1.0| | | | | | +|`cusparseSpMVOpDescr`|13.1| | | | | | | | | | | +|`cusparseSpMVOpDescr_t`|13.1| | | | | | | | | | | +|`cusparseSpMVOpPlan`|13.1| | | | | | | | | | | +|`cusparseSpMVOpPlan_t`|13.1| | | | | | | | | | | |`cusparseSpMatAttribute_t`|11.3| | | |`rocsparse_spmat_attribute`|4.5.0| | | | | | |`cusparseSpMatDescr`|10.1| | | |`_rocsparse_spmat_descr`|4.1.0| | | | | | |`cusparseSpMatDescr_t`|10.1| | | |`rocsparse_spmat_descr`|4.1.0| | | | | | @@ -307,7 +312,7 @@ |**CUDA**|**A**|**D**|**C**|**R**|**ROC**|**A**|**D**|**C**|**R**|**U**|**E**| |:--|:-:|:-:|:-:|:-:|:--|:-:|:-:|:-:|:-:|:-:|:-:| -|`cusparseCbsrmv`| | | | |`rocsparse_cbsrmv`|3.5.0|5.4.0| | | | | +|`cusparseCbsrmv`| |13.1| | |`rocsparse_cbsrmv`|3.5.0|5.4.0| | | | | |`cusparseCbsrsv2_analysis`| |12.2| | |`rocsparse_cbsrsv_analysis`|3.6.0| | | | | | |`cusparseCbsrsv2_bufferSize`| |12.2| | |`rocsparse_cbsrsv_buffer_size`|3.6.0| | | | | | |`cusparseCbsrsv2_bufferSizeExt`| |12.2| | |`rocsparse_cbsrsv_buffer_size`|3.6.0| | | | | | @@ -330,7 +335,7 @@ |`cusparseCsrmvEx_bufferSize`|8.0|11.2| |12.0| | | | | | | | |`cusparseCsrsv_analysisEx`|8.0|10.2| |11.0| | | | | | | | |`cusparseCsrsv_solveEx`|8.0|10.2| |11.0| | | | | | | | -|`cusparseDbsrmv`| | | | |`rocsparse_dbsrmv`|3.5.0|5.4.0| | | | | +|`cusparseDbsrmv`| |13.1| | |`rocsparse_dbsrmv`|3.5.0|5.4.0| | | | | |`cusparseDbsrsv2_analysis`| |12.2| | |`rocsparse_dbsrsv_analysis`|3.6.0| | | | | | |`cusparseDbsrsv2_bufferSize`| |12.2| | |`rocsparse_dbsrsv_buffer_size`|3.6.0| | | | | | |`cusparseDbsrsv2_bufferSizeExt`| |12.2| | |`rocsparse_dbsrsv_buffer_size`|3.6.0| | | | | | @@ -349,7 +354,7 @@ |`cusparseDhybmv`| |10.2| |11.0|`rocsparse_dhybmv`|1.9.0| | | | | | |`cusparseDhybsv_analysis`| |10.2| |11.0| | | | | | | | |`cusparseDhybsv_solve`| |10.2| |11.0| | | | | | | | -|`cusparseSbsrmv`| | | | |`rocsparse_sbsrmv`|3.5.0|5.4.0| | | | | +|`cusparseSbsrmv`| |13.1| | |`rocsparse_sbsrmv`|3.5.0|5.4.0| | | | | |`cusparseSbsrsv2_analysis`| |12.2| | |`rocsparse_sbsrsv_analysis`|3.6.0| | | | | | |`cusparseSbsrsv2_bufferSize`| |12.2| | |`rocsparse_sbsrsv_buffer_size`|3.6.0| | | | | | |`cusparseSbsrsv2_bufferSizeExt`| |12.2| | |`rocsparse_sbsrsv_buffer_size`|3.6.0| | | | | | @@ -370,7 +375,7 @@ |`cusparseShybsv_solve`| |10.2| |11.0| | | | | | | | |`cusparseXbsrsv2_zeroPivot`| |12.2| | |`rocsparse_bsrsv_zero_pivot`|3.6.0| | | | | | |`cusparseXcsrsv2_zeroPivot`| |11.3| |12.0|`rocsparse_csrsv_zero_pivot`|1.9.0| | | | | | -|`cusparseZbsrmv`| | | | |`rocsparse_zbsrmv`|3.5.0|5.4.0| | | | | +|`cusparseZbsrmv`| |13.1| | |`rocsparse_zbsrmv`|3.5.0|5.4.0| | | | | |`cusparseZbsrsv2_analysis`| |12.2| | |`rocsparse_zbsrsv_analysis`|3.6.0| | | | | | |`cusparseZbsrsv2_bufferSize`| |12.2| | |`rocsparse_zbsrsv_buffer_size`|3.6.0| | | | | | |`cusparseZbsrsv2_bufferSizeExt`| |12.2| | |`rocsparse_zbsrsv_buffer_size`|3.6.0| | | | | | @@ -896,6 +901,12 @@ |`cusparseSpMM_bufferSize`|10.1| |12.0| |`rocsparse_spmm`|4.2.0| |6.0.0| | | | |`cusparseSpMM_preprocess`|11.2| |12.0| |`rocsparse_spmm`|4.2.0| |6.0.0| | | | |`cusparseSpMV`|10.1| |12.0| |`rocsparse_spmv`|4.1.0| |6.0.0| | | | +|`cusparseSpMVOp`|13.1| | | | | | | | | | | +|`cusparseSpMVOp_createDescr`|13.1| | | | | | | | | | | +|`cusparseSpMVOp_createPlan`|13.1| | | | | | | | | | | +|`cusparseSpMVOp_destroyDescr`|13.1| | | | | | | | | | | +|`cusparseSpMVOp_destroyPlan`|13.1| | | | | | | | | | | +|`cusparseSpMVOp_setGlobalUserData`|13.1| | | | | | | | | | | |`cusparseSpMV_bufferSize`|10.1| |12.0| |`rocsparse_spmv`|4.1.0| |6.0.0| | | | |`cusparseSpMV_preprocess`|12.4| | | | | | | | | | | |`cusparseSpMatGetAttribute`|11.3| |12.0| |`rocsparse_spmat_get_attribute`|4.5.0| |6.0.0| | | | diff --git a/src/CUDA2HIP_SPARSE_API_functions.cpp b/src/CUDA2HIP_SPARSE_API_functions.cpp index 44016980..a554b0a2 100644 --- a/src/CUDA2HIP_SPARSE_API_functions.cpp +++ b/src/CUDA2HIP_SPARSE_API_functions.cpp @@ -120,10 +120,10 @@ const std::map CUDA_SPARSE_FUNCTION_MAP = [] { m["cusparseZsctr"] = {"hipsparseZsctr", "rocsparse_zsctr", CONV_LIB_FUNC, API_SPARSE, 8, CUDA_DEPRECATED | CUDA_REMOVED | HIP_DEPRECATED}; // 9. cuSPARSE Level 2 Function Reference - m["cusparseSbsrmv"] = {"hipsparseSbsrmv", "rocsparse_sbsrmv", CONV_LIB_FUNC, API_SPARSE, 9, ROC_DEPRECATED}; - m["cusparseDbsrmv"] = {"hipsparseDbsrmv", "rocsparse_dbsrmv", CONV_LIB_FUNC, API_SPARSE, 9, ROC_DEPRECATED}; - m["cusparseCbsrmv"] = {"hipsparseCbsrmv", "rocsparse_cbsrmv", CONV_LIB_FUNC, API_SPARSE, 9, ROC_DEPRECATED}; - m["cusparseZbsrmv"] = {"hipsparseZbsrmv", "rocsparse_zbsrmv", CONV_LIB_FUNC, API_SPARSE, 9, ROC_DEPRECATED}; + m["cusparseSbsrmv"] = {"hipsparseSbsrmv", "rocsparse_sbsrmv", CONV_LIB_FUNC, API_SPARSE, 9, CUDA_DEPRECATED | ROC_DEPRECATED}; + m["cusparseDbsrmv"] = {"hipsparseDbsrmv", "rocsparse_dbsrmv", CONV_LIB_FUNC, API_SPARSE, 9, CUDA_DEPRECATED | ROC_DEPRECATED}; + m["cusparseCbsrmv"] = {"hipsparseCbsrmv", "rocsparse_cbsrmv", CONV_LIB_FUNC, API_SPARSE, 9, CUDA_DEPRECATED | ROC_DEPRECATED}; + m["cusparseZbsrmv"] = {"hipsparseZbsrmv", "rocsparse_zbsrmv", CONV_LIB_FUNC, API_SPARSE, 9, CUDA_DEPRECATED | ROC_DEPRECATED}; m["cusparseSbsrxmv"] = {"hipsparseSbsrxmv", "rocsparse_sbsrxmv", CONV_LIB_FUNC, API_SPARSE, 9, CUDA_DEPRECATED | HIP_DEPRECATED}; m["cusparseDbsrxmv"] = {"hipsparseDbsrxmv", "rocsparse_dbsrxmv", CONV_LIB_FUNC, API_SPARSE, 9, CUDA_DEPRECATED | HIP_DEPRECATED}; @@ -867,6 +867,12 @@ const std::map CUDA_SPARSE_FUNCTION_MAP = [] { m["cusparseSpMV"] = {"hipsparseSpMV", "rocsparse_spmv", CONV_LIB_FUNC, API_SPARSE, 15}; m["cusparseSpMV_bufferSize"] = {"hipsparseSpMV_bufferSize", "rocsparse_spmv", CONV_LIB_FUNC, API_SPARSE, 15}; m["cusparseSpMV_preprocess"] = {"hipsparseSpMV_preprocess", "", CONV_LIB_FUNC, API_SPARSE, 15, ROC_UNSUPPORTED}; + m["cusparseSpMVOp_createDescr"] = {"hipsparseSpMVOp_createDescr", "", CONV_LIB_FUNC, API_SPARSE, 15, UNSUPPORTED}; + m["cusparseSpMVOp_destroyDescr"] = {"hipsparseSpMVOp_destroyDescr", "", CONV_LIB_FUNC, API_SPARSE, 15, UNSUPPORTED}; + m["cusparseSpMVOp_createPlan"] = {"hipsparseSpMVOp_createPlan", "", CONV_LIB_FUNC, API_SPARSE, 15, UNSUPPORTED}; + m["cusparseSpMVOp_destroyPlan"] = {"hipsparseSpMVOp_destroyPlan", "", CONV_LIB_FUNC, API_SPARSE, 15, UNSUPPORTED}; + m["cusparseSpMVOp_setGlobalUserData"] = {"hipsparseSpMVOp_setGlobalUserData", "", CONV_LIB_FUNC, API_SPARSE, 15, UNSUPPORTED}; + m["cusparseSpMVOp"] = {"hipsparseSpMVOp", "", CONV_LIB_FUNC, API_SPARSE, 15, UNSUPPORTED}; m["cusparseSparseToDense"] = {"hipsparseSparseToDense", "rocsparse_sparse_to_dense", CONV_LIB_FUNC, API_SPARSE, 15}; m["cusparseSparseToDense_bufferSize"] = {"hipsparseSparseToDense_bufferSize", "rocsparse_sparse_to_dense", CONV_LIB_FUNC, API_SPARSE, 15}; @@ -1497,6 +1503,16 @@ const std::map CUDA_SPARSE_FUNCTION_VER_MAP = m["cusparseDgebsr2gebsr"] = {CUDA_0, CUDA_128, CUDA_0 }; m["cusparseCgebsr2gebsr"] = {CUDA_0, CUDA_128, CUDA_0 }; m["cusparseZgebsr2gebsr"] = {CUDA_0, CUDA_128, CUDA_0 }; + m["cusparseSbsrmv"] = {CUDA_0, CUDA_131, CUDA_0 }; + m["cusparseDbsrmv"] = {CUDA_0, CUDA_131, CUDA_0 }; + m["cusparseCbsrmv"] = {CUDA_0, CUDA_131, CUDA_0 }; + m["cusparseZbsrmv"] = {CUDA_0, CUDA_131, CUDA_0 }; + m["cusparseSpMVOp_createDescr"] = {CUDA_131, CUDA_0, CUDA_0 }; + m["cusparseSpMVOp_destroyDescr"] = {CUDA_131, CUDA_0, CUDA_0 }; + m["cusparseSpMVOp_createPlan"] = {CUDA_131, CUDA_0, CUDA_0 }; + m["cusparseSpMVOp_destroyPlan"] = {CUDA_131, CUDA_0, CUDA_0 }; + m["cusparseSpMVOp_setGlobalUserData"] = {CUDA_131, CUDA_0, CUDA_0 }; + m["cusparseSpMVOp"] = {CUDA_131, CUDA_0, CUDA_0 }; return m; }(); diff --git a/src/CUDA2HIP_SPARSE_API_types.cpp b/src/CUDA2HIP_SPARSE_API_types.cpp index 4a34571e..ed1d58f1 100644 --- a/src/CUDA2HIP_SPARSE_API_types.cpp +++ b/src/CUDA2HIP_SPARSE_API_types.cpp @@ -99,6 +99,12 @@ const std::map CUDA_SPARSE_TYPE_NAME_MAP = [] { m["cusparseSpMMOpPlan"] = {"hipsparseSpMMOpPlan", "", CONV_TYPE, API_SPARSE, 4, UNSUPPORTED}; m["cusparseSpMMOpPlan_t"] = {"hipsparseSpMMOpPlan_t", "", CONV_TYPE, API_SPARSE, 4, UNSUPPORTED}; + m["cusparseSpMVOpDescr"] = {"hipsparseSpMVOpDescr", "", CONV_TYPE, API_SPARSE, 4, UNSUPPORTED}; + m["cusparseSpMVOpDescr_t"] = {"hipsparseSpMVOpDescr_t", "", CONV_TYPE, API_SPARSE, 4, UNSUPPORTED}; + + m["cusparseSpMVOpPlan"] = {"hipsparseSpMVOpPlan", "", CONV_TYPE, API_SPARSE, 4, UNSUPPORTED}; + m["cusparseSpMVOpPlan_t"] = {"hipsparseSpMVOpPlan_t", "", CONV_TYPE, API_SPARSE, 4, UNSUPPORTED}; + // 2. Enums m["cusparseAction_t"] = {"hipsparseAction_t", "rocsparse_action", CONV_TYPE, API_SPARSE, 4}; m["CUSPARSE_ACTION_SYMBOLIC"] = {"HIPSPARSE_ACTION_SYMBOLIC", "rocsparse_action_symbolic", CONV_NUMERIC_LITERAL, API_SPARSE, 4}; @@ -270,6 +276,7 @@ const std::map CUDA_SPARSE_TYPE_NAME_MAP = [] { m["CUSPARSE_COLOR_ALG1"] = {"HIPSPARSE_COLOR_ALG1", "", CONV_NUMERIC_LITERAL, API_SPARSE, 4, UNSUPPORTED | CUDA_DEPRECATED}; // 3. Defines + m["CUSPARSE_ENABLE_EXPERIMENTAL_API"] = {"HIPSPARSE_ENABLE_EXPERIMENTAL_API", "", CONV_DEFINE, API_SPARSE, 4, UNSUPPORTED}; // 4. Typedefs m["cusparseLoggerCallback_t"] = {"hipsparseLoggerCallback_t", "", CONV_TYPE, API_SPARSE, 4, UNSUPPORTED}; @@ -431,6 +438,11 @@ const std::map CUDA_SPARSE_TYPE_NAME_VER_MAP = m["CUSPARSE_SPSM_UPDATE_DIAGONAL"] = {CUDA_124, CUDA_0, CUDA_0 }; m["CUSPARSE_SPMM_BSR_ALG1"] = {CUDA_125, CUDA_0, CUDA_0 }; // CUSPARSE_VERSION 12501 m["CUSPARSE_SPMV_BSR_ALG1"] = {CUDA_130, CUDA_0, CUDA_0 }; // CUSPARSE_VERSION 12603 CUDA 13.0.1 + m["CUSPARSE_ENABLE_EXPERIMENTAL_API"] = {CUDA_131, CUDA_0, CUDA_0 }; + m["cusparseSpMVOpDescr"] = {CUDA_131, CUDA_0, CUDA_0 }; + m["cusparseSpMVOpDescr_t"] = {CUDA_131, CUDA_0, CUDA_0 }; + m["cusparseSpMVOpPlan"] = {CUDA_131, CUDA_0, CUDA_0 }; + m["cusparseSpMVOpPlan_t"] = {CUDA_131, CUDA_0, CUDA_0 }; return m; }();