{"id":18711183,"url":"https://github.com/rocm/rocsolver","last_synced_at":"2026-04-02T11:46:27.090Z","repository":{"id":37256479,"uuid":"134483268","full_name":"ROCm/rocSOLVER","owner":"ROCm","description":"[DEPRECATED] Moved to ROCm/rocm-libraries repo","archived":false,"fork":false,"pushed_at":"2026-03-24T03:33:49.000Z","size":11202,"stargazers_count":115,"open_issues_count":3,"forks_count":68,"subscribers_count":24,"default_branch":"develop_deprecated","last_synced_at":"2026-03-24T18:35:03.626Z","etag":null,"topics":["lapack","linear-algebra","rocm"],"latest_commit_sha":null,"homepage":"https://github.com/ROCm/rocm-libraries","language":"C++","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"other","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/ROCm.png","metadata":{"files":{"readme":"README.md","changelog":"CHANGELOG.md","contributing":"CONTRIBUTING.md","funding":null,"license":"LICENSE.md","code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":".github/CODEOWNERS","security":null,"support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null,"zenodo":null,"notice":null,"maintainers":null,"copyright":null,"agents":null,"dco":null,"cla":null}},"created_at":"2018-05-22T22:37:56.000Z","updated_at":"2026-03-03T06:34:21.000Z","dependencies_parsed_at":"2023-12-25T15:08:44.432Z","dependency_job_id":"a39301fc-0a97-48c1-b6f9-f7bfbb975493","html_url":"https://github.com/ROCm/rocSOLVER","commit_stats":{"total_commits":479,"total_committers":31,"mean_commits":"15.451612903225806","dds":0.7515657620041754,"last_synced_commit":"e8e71d5616a50cb49fc5949d1050f99544deac0b"},"previous_names":["rocm/rocsolver","rocmsoftwareplatform/rocsolver"],"tags_count":73,"template":false,"template_full_name":null,"purl":"pkg:github/ROCm/rocSOLVER","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/ROCm%2FrocSOLVER","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/ROCm%2FrocSOLVER/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/ROCm%2FrocSOLVER/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/ROCm%2FrocSOLVER/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/ROCm","download_url":"https://codeload.github.com/ROCm/rocSOLVER/tar.gz/refs/heads/develop_deprecated","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/ROCm%2FrocSOLVER/sbom","scorecard":null,"host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":286080680,"owners_count":31305809,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2026-04-02T09:48:21.550Z","status":"ssl_error","status_checked_at":"2026-04-02T09:48:19.196Z","response_time":89,"last_error":"SSL_read: unexpected eof while reading","robots_txt_status":"success","robots_txt_updated_at":"2025-07-24T06:49:26.215Z","robots_txt_url":"https://github.com/robots.txt","online":false,"can_crawl_api":true,"host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":["lapack","linear-algebra","rocm"],"created_at":"2024-11-07T12:37:40.029Z","updated_at":"2026-04-02T11:46:27.084Z","avatar_url":"https://github.com/ROCm.png","language":"C++","funding_links":[],"categories":[],"sub_categories":[],"readme":"# rocSOLVER\n\n\u003e [!CAUTION]\n\u003e The rocSOLVER repository is retired, please use the [ROCm/rocm-libraries](https://github.com/ROCm/rocm-libraries) repository\n\nrocSOLVER is a work-in-progress implementation of a subset of [LAPACK][1]\nfunctionality on the [ROCm platform][2].\n\n## Documentation\n\n\u003e [!NOTE]\n\u003e The published rocSOLVER documentation is available at [rocSOLVER](https://rocm.docs.amd.com/projects/rocSOLVER/en/latest/index.html) in an organized, easy-to-read format, with search and a table of contents. The documentation source files reside in the rocSOLVER/docs folder of this repository. As with all ROCm projects, the documentation is open source. For more information, see [Contribute to ROCm documentation](https://rocm.docs.amd.com/en/latest/contribute/contributing.html).\n\n### How to build documentation\n\nPlease follow the instructions below to build the documentation.\n\n```\ncd docs\n\npip3 install -r sphinx/requirements.txt\n\npython3 -m sphinx -T -E -b html -d _build/doctrees -D language=en . _build/html\n```\n\n## Building rocSOLVER\n\nTo download the rocSOLVER source code, clone this repository with the command:\n\n    git clone https://github.com/ROCmSoftwarePlatform/rocSOLVER.git\n\nrocSOLVER requires rocBLAS as a companion GPU BLAS implementation. For\nmore information about rocBLAS and how to install it, see the\n[rocBLAS documentation][4].\n\nAfter a standard installation of rocBLAS, the following commands will build\nrocSOLVER and install to `/opt/rocm`:\n\n    cd rocSOLVER\n    ./install.sh -i\n\nOnce installed, rocSOLVER can be used just like any other library with a C API.\nThe header file will need to be included in the user code, and both the rocBLAS\nand rocSOLVER shared libraries will become link-time and run-time dependencies\nfor the user application.\n\nIf you are a developer contributing to rocSOLVER, you may wish to run\n`./scripts/install-hooks` to install the git hooks for autoformatting.\nYou may also want to take a look at the [contributing guidelines][7]\n\n## Using rocSOLVER\n\nThe following code snippet shows how to compute the QR factorization of a\ngeneral m-by-n real matrix in double precision using rocSOLVER. A longer\nversion of this example is provided by `example_basic.cpp` in the\n[samples directory][5]. For a description of the `rocsolver_dgeqrf`\nfunction, see the [rocSOLVER API documentation][6].\n\n```cpp\n/////////////////////////////\n// example.cpp source code //\n/////////////////////////////\n\n#include \u003calgorithm\u003e // for std::min\n#include \u003cstddef.h\u003e  // for size_t\n#include \u003cvector\u003e\n#include \u003chip/hip_runtime_api.h\u003e // for hip functions\n#include \u003crocsolver/rocsolver.h\u003e // for all the rocsolver C interfaces and type declarations\n\nint main() {\n  rocblas_int M;\n  rocblas_int N;\n  rocblas_int lda;\n\n  // here is where you would initialize M, N and lda with desired values\n\n  rocblas_handle handle;\n  rocblas_create_handle(\u0026handle);\n\n  size_t size_A = size_t(lda) * N;          // the size of the array for the matrix\n  size_t size_piv = size_t(std::min(M, N)); // the size of array for the Householder scalars\n\n  std::vector\u003cdouble\u003e hA(size_A);      // creates array for matrix in CPU\n  std::vector\u003cdouble\u003e hIpiv(size_piv); // creates array for householder scalars in CPU\n\n  double *dA, *dIpiv;\n  hipMalloc(\u0026dA, sizeof(double)*size_A);      // allocates memory for matrix in GPU\n  hipMalloc(\u0026dIpiv, sizeof(double)*size_piv); // allocates memory for scalars in GPU\n\n  // here is where you would initialize matrix A (array hA) with input data\n  // note: matrices must be stored in column major format,\n  //       i.e. entry (i,j) should be accessed by hA[i + j*lda]\n\n  // copy data to GPU\n  hipMemcpy(dA, hA.data(), sizeof(double)*size_A, hipMemcpyHostToDevice);\n  // compute the QR factorization on the GPU\n  rocsolver_dgeqrf(handle, M, N, dA, lda, dIpiv);\n  // copy the results back to CPU\n  hipMemcpy(hA.data(), dA, sizeof(double)*size_A, hipMemcpyDeviceToHost);\n  hipMemcpy(hIpiv.data(), dIpiv, sizeof(double)*size_piv, hipMemcpyDeviceToHost);\n\n  // the results are now in hA and hIpiv, so you can use them here\n\n  hipFree(dA);                        // de-allocate GPU memory\n  hipFree(dIpiv);\n  rocblas_destroy_handle(handle);     // destroy handle\n}\n```\n\nThe exact command used to compile the example above may vary depending on the\nsystem environment, but here is a typical example:\n\n    /opt/rocm/bin/hipcc -I/opt/rocm/include -c example.cpp\n    /opt/rocm/bin/hipcc -o example -L/opt/rocm/lib -lrocsolver -lrocblas example.o\n\n\n[1]: https://www.netlib.org/lapack/\n[2]: https://rocm.docs.amd.com/\n[3]: https://rocm.docs.amd.com/projects/rocSOLVER/\n[4]: https://rocm.docs.amd.com/projects/rocBLAS/\n[5]: clients/samples/\n[6]: https://rocm.docs.amd.com/projects/rocSOLVER/en/latest/api/lapack.html#rocsolver-type-geqrf\n[7]: CONTRIBUTING.md\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Frocm%2Frocsolver","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Frocm%2Frocsolver","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Frocm%2Frocsolver/lists"}