Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

[HIPIFY][rocSOLVER][feature] Add cuSOLVER -> rocSOLVER hipification support #677

Open
emankov opened this issue Oct 27, 2022 · 0 comments
Open
Assignees
Labels
feature Feature request or implementation SOLVER SOLVER-related sync Syncing update

Comments

@emankov
Copy link
Collaborator

emankov commented Oct 27, 2022

The rocSOLVER lives here: https://github.com/ROCmSoftwarePlatform/rocSOLVER, it is alive and synced with HIP releases.

@emankov emankov added feature Feature request or implementation sync Syncing update SOLVER SOLVER-related labels Oct 27, 2022
@emankov emankov self-assigned this Oct 27, 2022
@emankov emankov changed the title [HIPIFY][rocSOLVER][feature] Add cuSOLVER -> rocSOLVER hipification support [HIPIFY][rocSOLVER][feature] Add cuSOLVER -> rocSOLVER hipification support Jan 9, 2023
emankov added a commit to emankov/HIPIFY that referenced this issue Nov 7, 2023
…port - Step 1

+ [IMP] Everything is experimental
+ Both implementation are taken into account: `hipSOLVER` and `rocSOLVER`
+ Added new synthetic tests `cusolver2hipsolver.cu` and `cusolver2rocsolver.cu`
+ Updated the regenerated hipify-perl
+ [ToDo] `SOLVER` `CUDA2HIP` documentation generation
emankov added a commit that referenced this issue Nov 7, 2023
[HIPIFY][#675][#677][RSERP-704][DCGPUBU-141][SOLVER][feature] cuSOLVER support - Step 1
emankov added a commit to emankov/HIPIFY that referenced this issue Nov 8, 2023
… cuSOLVER support - Step 2 - `cusolverDn(D|S)getrf(_bufferSize)?` and `cusolverDn(D|S)getrs` functions

+ Updated SOLVER synthetic test
+ Updated the regenerated hipify-perl
+ [ToDo] SOLVER CUDA2HIP documentation generation
+ [ToDo][feature][hard][long-term] cusolverXXX -> rocsolver_XXX + harness of other SOLVER and BLAS API calls
emankov added a commit that referenced this issue Nov 8, 2023
[HIPIFY][#675][#677][RSERP-704][DCGPUBU-141][SOLVER][feature] cuSOLVER support - Step 2 - `cusolverDn(D|S)getrf(_bufferSize)?` and `cusolverDn(D|S)getrs` functions
emankov added a commit to emankov/HIPIFY that referenced this issue Nov 9, 2023
… cuSOLVER support - Step 3 - Unsupported ones (from the short list only)

+ Unsupported APIs: `cusolverDnCreateParams`, `cusolverDnSetAdvOptions`, `cusolverDnXgetrf`, `cusolverDnXgetrf_bufferSize`, `cusolverDnXgetrs`
+ Updated the regenerated hipify-perl
+ [ToDo] `SOLVER` `CUDA2HIP` documentation generation
emankov added a commit that referenced this issue Nov 9, 2023
[HIPIFY][#675][#677][RSERP-704][DCGPUBU-141][SOLVER][feature] cuSOLVER support - Step 3 - Unsupported ones (from the short list only)
emankov added a commit to emankov/HIPIFY that referenced this issue Nov 10, 2023
… 4 - Data types

+ `cusolverStatus_t` partial support
+ [fix] `rocblas_status_invalid_pointer` -> `rocblas_status_invalid_value`, `rocblas_status_size_query_mismatch` -> `rocblas_status_arch_mismatch`
+ Updated the regenerated hipify-perl, affected synthetic tests, and CUDA2HIP documentation
+ [ToDo] `SOLVER` `CUDA2HIP` documentation generation
emankov added a commit that referenced this issue Nov 10, 2023
[HIPIFY][#675][#677][SOLVER][feature] cuSOLVER support - Step 4 - Data types
emankov added a commit to emankov/HIPIFY that referenced this issue Nov 11, 2023
… 5 - Data types (common)

+ `cusolverStatus_t` and `cusolverEigType_t` support
+ Updated the synthetic tests and the regenerated hipify-perl
+ [ToDo] `SOLVER` `CUDA2HIP` documentation generation
emankov added a commit that referenced this issue Nov 11, 2023
[HIPIFY][#675][#677][SOLVER][feature] cuSOLVER support - Step 5 - Data types (common)
emankov added a commit to emankov/HIPIFY that referenced this issue Nov 11, 2023
… Step 6 - Documentation

+ Three Solver-related `CUDA2HIP` documents are generated now:
  `CUSOLVER_API_supported_by_HIP.md`
  `CUSOLVER_API_supported_by_ROC.md`
  `CUSOLVER_API_supported_by_HIP_and_ROC.md`
+ All HIP and ROC APIs are `Experimental` for now despite their versions

[ToDo]
+ Populate `README.md` (`supported_apis.md`) with links to `SOLVER CUDA2HIP` documentation
+ Remove `Experimental` mark after finishing with `SOLVER` support in HIPIFY tools
emankov added a commit that referenced this issue Nov 11, 2023
[HIPIFY][#675][#677][SOLVER][feature][doc] cuSOLVER support - Step 6 - Documentation
emankov added a commit to emankov/HIPIFY that referenced this issue Nov 13, 2023
… 7 - Data types (common)

+ `cusolverEigMode_t` and `cusolverEigRange_t` support
+ Updated the synthetic tests and the regenerated hipify-perl
emankov added a commit that referenced this issue Nov 13, 2023
[HIPIFY][#675][#677][SOLVER][feature] cuSOLVER support - Step 7 - Data types (common)
emankov added a commit to emankov/HIPIFY that referenced this issue Nov 14, 2023
…ep 8 - Data types (common)

+ `cusolverNorm_t`, `cusolverIRSRefinement_t`, and `cusolverDirectMode_t` are `UNSUPPORTED`
+ Updated the regenerated hipify-perl and `SOLVER` `CUDA2HIP` documentation
emankov added a commit that referenced this issue Nov 14, 2023
[HIPIFY][#675][#677][SOLVER][feature] `cuSOLVER` support - Step 8 - Data types (common)
emankov added a commit to emankov/HIPIFY that referenced this issue Nov 15, 2023
…ep 9 - Data types (common)

+ `cusolverStorevMode_t`, `cusolverAlgMode_t`, and `cusolverPrecType_t` are `UNSUPPORTED`
+ Updated the regenerated hipify-perl and `SOLVER` `CUDA2HIP` documentation
emankov added a commit that referenced this issue Nov 15, 2023
[HIPIFY][#675][#677][SOLVER][feature] `cuSOLVER` support - Step 9 - Data types (common)
emankov added a commit to emankov/HIPIFY that referenced this issue Nov 17, 2023
…ep 10 - Data types (DN)

+ `cusolverDnContext`, `syevjInfo`, `gesvdjInfo`, `cusolverDnIRSParams(_t)?`, `cusolverDnIRSInfos(_t)?`, `cusolverDnParams(_t)?`, `cusolverDnFunction_t`, and `cusolverDeterministicMode_t` are `UNSUPPORTED`
+ [fix] Revised some of the enum `hipsolverStatus_t` members
+ Updated the synthetic `cusolver2hipsolver.cu` test, the regenerated hipify-perl, and `SOLVER` `CUDA2HIP` documentation
emankov added a commit that referenced this issue Nov 17, 2023
[HIPIFY][#675][#677][SOLVER][feature] `cuSOLVER` support - Step 10 - Data types (DN)
emankov added a commit to emankov/HIPIFY that referenced this issue Nov 18, 2023
…ep 11 - Functions (DN)

+ `cusolverDn(G|S)etStream` are `SUPPORTED`
+ `cusolverDn(G|S)SetDeterministicMode`, `cusolverDnIRSParams(Create|Destroy)`, `cusolverDnIRSParams*` are `UNSUPPORTED`
+ Updated `SOLVER` synthetic tests, the regenerated hipify-perl, and `SOLVER` `CUDA2HIP` documentation
emankov added a commit to emankov/HIPIFY that referenced this issue Nov 19, 2023
…ep 12 - Functions (DN)

+ `cusolverDnIRSInfos*` are `UNSUPPORTED`
+ `cusolver_int_t` -> `int` -> `rocblas_int`
+ `cusolverDnZZgesv` -> `hipsolverDnZZgesv`
+ [NOTE] rocsolver_zgesv has a harness of `rocblas_set_workspace`, `hipsolverZZgesv_bufferSize`, and `rocsolver_zgesv_outofplace`
+ Updated `SOLVER` synthetic tests, the regenerated hipify-perl, and `SOLVER` `CUDA2HIP` documentation
emankov added a commit to emankov/HIPIFY that referenced this issue Nov 21, 2023
…ep 13 - Functions (DN)

+ `hipsolverDn(CC|DD|SS)gesv` are `SUPPORTED`
+ `cusolverDnZ(C|K|E|Y)gesv`, `cusolverDnC(E|K|Y)gesv`, `cusolverDnD(S|H|B|X)gesv`, and `cusolverDnS(H|B|X)gesv` are `UNSUPPORTED`
+ [NOTE] rocsolver_(c|d|s)gesv has a harness of `rocblas_set_workspace`, `hipsolver(CC|DD|SS)gesv_bufferSize`, and `rocsolver_(c|d|s)gesv_outofplace`, thus `UNSUPPORTED`
+ Updated `SOLVER` synthetic tests, the regenerated hipify-perl, and `SOLVER` `CUDA2HIP` documentation
emankov added a commit to emankov/HIPIFY that referenced this issue Nov 22, 2023
…ep 14 - Functions (DN)

+ `hipsolverDn(ZZ|CC|DD|SS)gesv_bufferSize` are `SUPPORTED`
+ `cusolverDnZ(C|K|E|Y)gesv_bufferSize`, `cusolverDnC(E|K|Y)gesv_bufferSize`, `cusolverDnD(S|H|B|X)gesv_bufferSize`, and `cusolverDnS(H|B|X)gesv_bufferSize` are `UNSUPPORTED`
+ [NOTE] rocsolver_(z|c|d|s)gesv has a harness of `rocblas_start_device_memory_size_query`, `rocsolver_(z|c|d|s)gesv_outofplace`, and `rocblas_stop_device_memory_size_query` thus `UNSUPPORTED`
+ Updated `SOLVER` synthetic tests, the regenerated hipify-perl, and `SOLVER` `CUDA2HIP` documentation
emankov added a commit to emankov/HIPIFY that referenced this issue Nov 22, 2023
…ep 15 - Functions (DN)

+ `hipsolverDn(ZZ|CC|DD|SS)gels` are `SUPPORTED`
+ `cusolverDnZ(C|K|E|Y)gels`, `cusolverDnC(E|K|Y)gels`, `cusolverDnD(S|H|B|X)gels`, and `cusolverDnS(H|B|X)gels` are `UNSUPPORTED`
+ [NOTE] `rocsolver_(z|c|d|s)gels` have a harness of `rocblas_set_workspace`, `hipsolverDn(ZZ|CC|DD|SS)gels_bufferSize`, `hipsolverManageWorkspace`, and `rocsolver_(z|c|d|s)gels_outofplace`, thus `UNSUPPORTED`
+ Updated `SOLVER` synthetic tests, the regenerated hipify-perl, and `SOLVER` `CUDA2HIP` documentation
emankov added a commit that referenced this issue Dec 18, 2023
…Functions (DN)

+ `cusolverDn(S|D|C|Z)gesvdjBatched(_bufferSize)?` are `SUPPORTED` by `hipSOLVER` only
+ [NOTE] `rocsolver_(s|d|c|z)gesvdj_notransv_strided_batched` have a harness of other `ROC` and `HIP` API calls, thus `UNSUPPORTED`
+ Updated `SOLVER` synthetic tests, the regenerated `hipify-perl`, and `SOLVER` `CUDA2HIP` documentation
emankov added a commit that referenced this issue Dec 18, 2023
[HIPIFY][#675][#677][SOLVER][feature] `cuSOLVER` support - Step 45 - Functions (DN)
emankov added a commit that referenced this issue Dec 18, 2023
…Functions (DN)

+ `cusolverDn(S|D|C|Z)gesvdj(_bufferSize)?` are `SUPPORTED` by `hipSOLVER` only
+ [NOTE] `rocsolver_(s|d|c|z)gesvdj_notransv` have a harness of other `ROC` and `HIP` API calls, thus `UNSUPPORTED`
+ Updated `SOLVER` synthetic tests, the regenerated `hipify-perl`, and `SOLVER` `CUDA2HIP` documentation
emankov added a commit that referenced this issue Dec 18, 2023
[HIPIFY][#675][#677][SOLVER][feature] `cuSOLVER` support - Step 46 - Functions (DN)
emankov added a commit that referenced this issue Dec 19, 2023
…Functions (DN)

+ `cusolverDn(S|D|C|Z)gesvdaStridedBatched(_bufferSize)?` are `SUPPORTED` by `hipSOLVER` only
+ [NOTE] `rocsolver_(s|d|c|z)gesvdx_strided_batched` have a harness of other `ROC` and `HIP` API calls, thus `UNSUPPORTED`
+ Updated `SOLVER` synthetic tests, the regenerated `hipify-perl`, and `SOLVER` `CUDA2HIP` documentation
emankov added a commit that referenced this issue Dec 19, 2023
[HIPIFY][#675][#677][SOLVER][feature] `cuSOLVER` support - Step 47 - Functions (DN)
emankov added a commit that referenced this issue Dec 19, 2023
…Functions (DN)

+ `cusolverDnPotr(f|s)(_bufferSize)?`, `cusolverDnGe(q|t)r(f|s)(_bufferSize)?`, `cusolverDnSyevd(x)?(_bufferSize)?`, `cusolverDnGesvd(_bufferSize)?`, and `cusolverDnXpotr(f|s)(_bufferSize)?` are `UNSUPPORTED`
+ Updated `SOLVER` synthetic tests, the regenerated `hipify-perl`, and `SOLVER` `CUDA2HIP` documentation
emankov added a commit that referenced this issue Dec 19, 2023
[HIPIFY][#675][#677][SOLVER][feature] `cuSOLVER` support - Step 48 - Functions (DN)
emankov added a commit that referenced this issue Dec 19, 2023
…Functions (DN)

+ Added the rest of `UNSUPPORTED` DN functions
+ Updated `SOLVER` synthetic tests, the regenerated `hipify-perl`, and `SOLVER` `CUDA2HIP` documentation
emankov added a commit that referenced this issue Dec 19, 2023
[HIPIFY][#675][#677][SOLVER][feature] `cuSOLVER` support - Step 49 - Functions (DN)
emankov added a commit that referenced this issue Dec 20, 2023
…Functions (MG)

+ All `MG` functions are yet `UNSUPPORTED`
+ Updated the regenerated `hipify-perl`, and `SOLVER` `CUDA2HIP` documentation
emankov added a commit that referenced this issue Dec 20, 2023
[HIPIFY][#675][#677][SOLVER][feature] `cuSOLVER` support - Step 50 - Functions (MG)
emankov added a commit that referenced this issue Dec 20, 2023
…Data Types (RF)

+ Updated `SOLVER` synthetic tests, the regenerated `hipify-perl`, and `SOLVER` `CUDA2HIP` documentation
emankov added a commit that referenced this issue Dec 20, 2023
[HIPIFY][#675][#677][SOLVER][feature] `cuSOLVER` support - Step 51 - Data Types (RF)
emankov added a commit that referenced this issue Dec 21, 2023
…Functions (RF)

+ Updated `SOLVER` synthetic tests, the regenerated `hipify-perl`, and `SOLVER` `CUDA2HIP` documentation
emankov added a commit that referenced this issue Dec 21, 2023
[HIPIFY][#675][#677][SOLVER][feature] `cuSOLVER` support - Step 52 - Functions (RF)
emankov added a commit that referenced this issue Dec 21, 2023
…Functions (RF)

+ Updated `SOLVER` synthetic tests, the regenerated `hipify-perl`, and `SOLVER` `CUDA2HIP` documentation
emankov added a commit that referenced this issue Dec 21, 2023
[HIPIFY][#675][#677][SOLVER][feature] `cuSOLVER` support - Step 53 - Functions (RF)
emankov added a commit that referenced this issue Dec 22, 2023
…Functions (SP)

+ All `SP` APIs are not supported by both `hipSOLVER` and `rocSOLVER`
+ Updated the regenerated `hipify-perl`, and `SOLVER` `CUDA2HIP` documentation
emankov added a commit that referenced this issue Dec 22, 2023
[HIPIFY][#675][#677][SOLVER][feature] `cuSOLVER` support - Step 54 - Functions (SP)
emankov added a commit that referenced this issue Dec 23, 2023
…Functions (SP)

+ All `SP` APIs are not supported by both `hipSOLVER` and `rocSOLVER`
+ Updated the regenerated `hipify-perl`, and `SOLVER` `CUDA2HIP` documentation
emankov added a commit that referenced this issue Dec 23, 2023
[HIPIFY][#675][#677][SOLVER][feature] `cuSOLVER` support - Step 55 - Functions (SP)
emankov added a commit that referenced this issue Dec 24, 2023
…Functions (SP - Lowlevel Preview)

+ All `SP` APIs are not supported by both `hipSOLVER` and `rocSOLVER`
+ Updated the regenerated `hipify-perl`, and `SOLVER` `CUDA2HIP` documentation
emankov added a commit that referenced this issue Dec 24, 2023
[HIPIFY][#675][#677][SOLVER][feature] `cuSOLVER` support - Step 56 - Functions (SP - Lowlevel Preview)
emankov added a commit that referenced this issue Dec 24, 2023
…Functions (SP - Lowlevel Preview)

+ All `SP` APIs are not supported by both `hipSOLVER` and `rocSOLVER`
+ Updated the regenerated `hipify-perl`, and `SOLVER` `CUDA2HIP` documentation
emankov added a commit that referenced this issue Dec 24, 2023
[HIPIFY][#675][#677][SOLVER][feature] `cuSOLVER` support - Step 57 - Functions (SP - Lowlevel Preview)
emankov added a commit that referenced this issue Dec 25, 2023
…Functions (SP - Lowlevel Preview)

+ All `SP` APIs are not supported by both `hipSOLVER` and `rocSOLVER`
+ Updated the regenerated `hipify-perl`, and `SOLVER` `CUDA2HIP` documentation
emankov added a commit that referenced this issue Dec 25, 2023
[HIPIFY][#675][#677][SOLVER][feature] `cuSOLVER` support - Step 58 - Functions (SP - Lowlevel Preview)
emankov added a commit that referenced this issue Dec 25, 2023
+ Provided links to `SOLVER` `CUDA2HIP` documentation in the `README.md`
emankov added a commit that referenced this issue Dec 25, 2023
[HIPIFY][#675][#677][SOLVER][doc] `cuSOLVER` support - Step 59 - final
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
feature Feature request or implementation SOLVER SOLVER-related sync Syncing update
Projects
None yet
Development

No branches or pull requests

1 participant