CodeQL / Analyze (actions) (push) Canceled after 0s
CodeQL / Analyze (python) (push) Canceled after 0s
pre-commit / pre-commit (push) Canceled after 0s
Multi-Arch CI / setup (push) Canceled after 0s
Publish build_manylinux_x86_64 images / publish_build_manylinux_x86_64 (push) Canceled after 0s
Setup (Multi-Arch) / setup (push) Canceled after 0s
Multi-Arch CI / Linux::${{ fromJSON(needs.setup.outputs.linux_build_config || '{}').build_variant_label || 'skip' }} (push) Canceled after 0s
Publish TheRock Docker image / build-and-push-image (push) Canceled after 0s
Publish no_rocm_image_ubi10 image / publish_no_rocm_image_ubi10 (push) Canceled after 0s
Multi-Arch CI / Windows::${{ fromJSON(needs.setup.outputs.windows_build_config || '{}').build_variant_label || 'skip' }} (push) Canceled after 0s
Publish TheRock Docker image / build-and-push-image (push) Canceled after 0s
Multi-Arch CI / Manifest Diff (push) Canceled after 0s
TheRock Manifest Diff Report / Generate Manifest Diff Report (push) Canceled after 0s
Multi-Arch CI / CI Summary (push) Canceled after 0s
Publish no_rocm_image_ubuntu24_04 images / publish_no_rocm_image_ubuntu24_04 (push) Canceled after 0s
Publish no_rocm_image_ubuntu24_04_ocl_rt images / publish_no_rocm_image_ubuntu24_04_ocl_rt (push) Canceled after 0s
Publish TheRock Docker image / build-and-push-image (push) Canceled after 0s
Publish TheRock Docker image / build-and-push-image (push) Canceled after 0s
Publish no_rocm_image_ubuntu24_04 images / publish_no_rocm_image_ubuntu24_04_rocgdb (push) Canceled after 0s
Publish no_rocm_image_ubuntu24_04_rocgdb images / publish_no_rocm_image_ubuntu24_04_rocgdb (push) Canceled after 0s
Publish no_rocm_image_ubuntu24_04 images / publish_no_rocm_image_ubuntu24_04_ocl_rt (push) Canceled after 0s
Publish TheRock Docker image / build-and-push-image (push) Canceled after 0s
Unit Tests / Unit Tests :: ubuntu-24.04 (push) Canceled after 0s
Unit Tests / Unit Tests :: windows-2022 (push) Canceled after 0s
Publish no_rocm_image_ubuntu24_04 images / publish_no_rocm_image_ubuntu24_04_media (push) Canceled after 0s
Unit Tests / Unit Tests Summary (push) Canceled after 0s
Publish no_rocm_image_ubuntu24_04 images / publish_no_rocm_image_ubuntu24_04_openmpi (push) Canceled after 0s
870 lines
52 KiB
C++
870 lines
52 KiB
C++
/* ************************************************************************
|
|
* Copyright (C) 2020-2025 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.
|
|
*
|
|
* ************************************************************************ */
|
|
|
|
#ifndef _HIPBLAS_FORTRAN_HPP
|
|
#define _HIPBLAS_FORTRAN_HPP
|
|
|
|
/*!\file
|
|
* This file interfaces with our Fortran BLAS interface.
|
|
*/
|
|
|
|
/*
|
|
* ============================================================================
|
|
* Fortran functions
|
|
* ============================================================================
|
|
*/
|
|
|
|
extern "C" {
|
|
|
|
#include "hipblas_fortran.h.in"
|
|
#define HIPBLAS_INTERNAL_ILP64 1
|
|
#include "hipblas_fortran.h.in"
|
|
#undef HIPBLAS_INTERNAL_ILP64
|
|
|
|
/* ==========
|
|
* Aux
|
|
* ========== */
|
|
hipblasStatus_t
|
|
hipblasSetVectorFortran(int n, int elemSize, const void* x, int incx, void* y, int incy);
|
|
|
|
hipblasStatus_t
|
|
hipblasGetVectorFortran(int n, int elemSize, const void* x, int incx, void* y, int incy);
|
|
|
|
hipblasStatus_t hipblasSetMatrixFortran(
|
|
int rows, int cols, int elemSize, const void* A, int lda, void* B, int ldb);
|
|
|
|
hipblasStatus_t hipblasGetMatrixFortran(
|
|
int rows, int cols, int elemSize, const void* A, int lda, void* B, int ldb);
|
|
|
|
hipblasStatus_t hipblasSetVectorAsyncFortran(
|
|
int n, int elemSize, const void* x, int incx, void* y, int incy, hipStream_t stream);
|
|
|
|
hipblasStatus_t hipblasGetVectorAsyncFortran(
|
|
int n, int elemSize, const void* x, int incx, void* y, int incy, hipStream_t stream);
|
|
|
|
hipblasStatus_t hipblasSetMatrixAsyncFortran(
|
|
int rows, int cols, int elemSize, const void* A, int lda, void* B, int ldb, hipStream_t stream);
|
|
|
|
hipblasStatus_t hipblasGetMatrixAsyncFortran(
|
|
int rows, int cols, int elemSize, const void* A, int lda, void* B, int ldb, hipStream_t stream);
|
|
|
|
hipblasStatus_t hipblasSetAtomicsModeFortran(hipblasHandle_t handle,
|
|
hipblasAtomicsMode_t atomics_mode);
|
|
|
|
hipblasStatus_t hipblasGetAtomicsModeFortran(hipblasHandle_t handle,
|
|
hipblasAtomicsMode_t* atomics_mode);
|
|
|
|
hipblasStatus_t hipblasSetBatchAlphaStrideFortran(hipblasHandle_t handle,
|
|
hipblasStride alpha_stride);
|
|
|
|
hipblasStatus_t hipblasGetBatchAlphaStrideFortran(hipblasHandle_t handle,
|
|
hipblasStride* alpha_stride);
|
|
|
|
hipblasStatus_t hipblasSetBatchBetaStrideFortran(hipblasHandle_t handle, hipblasStride beta_stride);
|
|
|
|
hipblasStatus_t hipblasGetBatchBetaStrideFortran(hipblasHandle_t handle,
|
|
hipblasStride* beta_stride);
|
|
|
|
/* ==========
|
|
* L3
|
|
* ========== */
|
|
|
|
// trtri
|
|
hipblasStatus_t hipblasStrtriFortran(hipblasHandle_t handle,
|
|
hipblasFillMode_t uplo,
|
|
hipblasDiagType_t diag,
|
|
int n,
|
|
const float* A,
|
|
int lda,
|
|
float* invA,
|
|
int ldinvA);
|
|
|
|
hipblasStatus_t hipblasDtrtriFortran(hipblasHandle_t handle,
|
|
hipblasFillMode_t uplo,
|
|
hipblasDiagType_t diag,
|
|
int n,
|
|
const double* A,
|
|
int lda,
|
|
double* invA,
|
|
int ldinvA);
|
|
|
|
hipblasStatus_t hipblasCtrtriFortran(hipblasHandle_t handle,
|
|
hipblasFillMode_t uplo,
|
|
hipblasDiagType_t diag,
|
|
int n,
|
|
const hipComplex* A,
|
|
int lda,
|
|
hipComplex* invA,
|
|
int ldinvA);
|
|
|
|
hipblasStatus_t hipblasZtrtriFortran(hipblasHandle_t handle,
|
|
hipblasFillMode_t uplo,
|
|
hipblasDiagType_t diag,
|
|
int n,
|
|
const hipDoubleComplex* A,
|
|
int lda,
|
|
hipDoubleComplex* invA,
|
|
int ldinvA);
|
|
|
|
// trtri_batched
|
|
hipblasStatus_t hipblasStrtriBatchedFortran(hipblasHandle_t handle,
|
|
hipblasFillMode_t uplo,
|
|
hipblasDiagType_t diag,
|
|
int n,
|
|
const float* const A[],
|
|
int lda,
|
|
float* invA[],
|
|
int ldinvA,
|
|
int batch_count);
|
|
|
|
hipblasStatus_t hipblasDtrtriBatchedFortran(hipblasHandle_t handle,
|
|
hipblasFillMode_t uplo,
|
|
hipblasDiagType_t diag,
|
|
int n,
|
|
const double* const A[],
|
|
int lda,
|
|
double* invA[],
|
|
int ldinvA,
|
|
int batch_count);
|
|
|
|
hipblasStatus_t hipblasCtrtriBatchedFortran(hipblasHandle_t handle,
|
|
hipblasFillMode_t uplo,
|
|
hipblasDiagType_t diag,
|
|
int n,
|
|
const hipComplex* const A[],
|
|
int lda,
|
|
hipComplex* invA[],
|
|
int ldinvA,
|
|
int batch_count);
|
|
|
|
hipblasStatus_t hipblasZtrtriBatchedFortran(hipblasHandle_t handle,
|
|
hipblasFillMode_t uplo,
|
|
hipblasDiagType_t diag,
|
|
int n,
|
|
const hipDoubleComplex* const A[],
|
|
int lda,
|
|
hipDoubleComplex* invA[],
|
|
int ldinvA,
|
|
int batch_count);
|
|
|
|
// trtri_strided_batched
|
|
hipblasStatus_t hipblasStrtriStridedBatchedFortran(hipblasHandle_t handle,
|
|
hipblasFillMode_t uplo,
|
|
hipblasDiagType_t diag,
|
|
int n,
|
|
const float* A,
|
|
int lda,
|
|
hipblasStride stride_A,
|
|
float* invA,
|
|
int ldinvA,
|
|
hipblasStride stride_invA,
|
|
int batch_count);
|
|
|
|
hipblasStatus_t hipblasDtrtriStridedBatchedFortran(hipblasHandle_t handle,
|
|
hipblasFillMode_t uplo,
|
|
hipblasDiagType_t diag,
|
|
int n,
|
|
const double* A,
|
|
int lda,
|
|
hipblasStride stride_A,
|
|
double* invA,
|
|
int ldinvA,
|
|
hipblasStride stride_invA,
|
|
int batch_count);
|
|
|
|
hipblasStatus_t hipblasCtrtriStridedBatchedFortran(hipblasHandle_t handle,
|
|
hipblasFillMode_t uplo,
|
|
hipblasDiagType_t diag,
|
|
int n,
|
|
const hipComplex* A,
|
|
int lda,
|
|
hipblasStride stride_A,
|
|
hipComplex* invA,
|
|
int ldinvA,
|
|
hipblasStride stride_invA,
|
|
int batch_count);
|
|
|
|
hipblasStatus_t hipblasZtrtriStridedBatchedFortran(hipblasHandle_t handle,
|
|
hipblasFillMode_t uplo,
|
|
hipblasDiagType_t diag,
|
|
int n,
|
|
const hipDoubleComplex* A,
|
|
int lda,
|
|
hipblasStride stride_A,
|
|
hipDoubleComplex* invA,
|
|
int ldinvA,
|
|
hipblasStride stride_invA,
|
|
int batch_count);
|
|
|
|
// trsm_ex
|
|
hipblasStatus_t hipblasTrsmExFortran(hipblasHandle_t handle,
|
|
hipblasSideMode_t side,
|
|
hipblasFillMode_t uplo,
|
|
hipblasOperation_t transA,
|
|
hipblasDiagType_t diag,
|
|
int m,
|
|
int n,
|
|
const void* alpha,
|
|
void* A,
|
|
int lda,
|
|
void* B,
|
|
int ldb,
|
|
const void* invA,
|
|
int invA_size,
|
|
hipDataType compute_type);
|
|
|
|
hipblasStatus_t hipblasTrsmBatchedExFortran(hipblasHandle_t handle,
|
|
hipblasSideMode_t side,
|
|
hipblasFillMode_t uplo,
|
|
hipblasOperation_t transA,
|
|
hipblasDiagType_t diag,
|
|
int m,
|
|
int n,
|
|
const void* alpha,
|
|
void* A,
|
|
int lda,
|
|
void* B,
|
|
int ldb,
|
|
int batch_count,
|
|
const void* invA,
|
|
int invA_size,
|
|
hipDataType compute_type);
|
|
|
|
hipblasStatus_t hipblasTrsmStridedBatchedExFortran(hipblasHandle_t handle,
|
|
hipblasSideMode_t side,
|
|
hipblasFillMode_t uplo,
|
|
hipblasOperation_t transA,
|
|
hipblasDiagType_t diag,
|
|
int m,
|
|
int n,
|
|
const void* alpha,
|
|
void* A,
|
|
int lda,
|
|
hipblasStride stride_A,
|
|
void* B,
|
|
int ldb,
|
|
hipblasStride stride_B,
|
|
int batch_count,
|
|
const void* invA,
|
|
int invA_size,
|
|
hipblasStride stride_invA,
|
|
hipDataType compute_type);
|
|
|
|
// // syrk_ex
|
|
// hipblasStatus_t hipblasCsyrkExFortran(hipblasHandle_t handle,
|
|
// hipblasFillMode_t uplo,
|
|
// hipblasOperation_t trans,
|
|
// int n,
|
|
// int k,
|
|
// const hipComplex* alpha,
|
|
// const void* A,
|
|
// hipDataType Atype,
|
|
// int lda,
|
|
// const hipComplex* beta,
|
|
// hipComplex* C,
|
|
// hipDataType Ctype,
|
|
// int ldc);
|
|
|
|
// // herk_ex
|
|
// hipblasStatus_t hipblasCherkExFortran(hipblasHandle_t handle,
|
|
// hipblasFillMode_t uplo,
|
|
// hipblasOperation_t trans,
|
|
// int n,
|
|
// int k,
|
|
// const float* alpha,
|
|
// const void* A,
|
|
// hipDataType Atype,
|
|
// int lda,
|
|
// const float* beta,
|
|
// hipComplex* C,
|
|
// hipDataType Ctype,
|
|
// int ldc);
|
|
|
|
/* ==========
|
|
* Solver
|
|
* ========== */
|
|
|
|
// getrf
|
|
hipblasStatus_t hipblasSgetrfFortran(
|
|
hipblasHandle_t handle, const int n, float* A, const int lda, int* ipiv, int* info);
|
|
|
|
hipblasStatus_t hipblasDgetrfFortran(
|
|
hipblasHandle_t handle, const int n, double* A, const int lda, int* ipiv, int* info);
|
|
|
|
hipblasStatus_t hipblasCgetrfFortran(
|
|
hipblasHandle_t handle, const int n, hipComplex* A, const int lda, int* ipiv, int* info);
|
|
|
|
hipblasStatus_t hipblasZgetrfFortran(
|
|
hipblasHandle_t handle, const int n, hipDoubleComplex* A, const int lda, int* ipiv, int* info);
|
|
|
|
// getrf_batched
|
|
hipblasStatus_t hipblasSgetrfBatchedFortran(hipblasHandle_t handle,
|
|
const int n,
|
|
float* const A[],
|
|
const int lda,
|
|
int* ipiv,
|
|
int* info,
|
|
const int batch_count);
|
|
|
|
hipblasStatus_t hipblasDgetrfBatchedFortran(hipblasHandle_t handle,
|
|
const int n,
|
|
double* const A[],
|
|
const int lda,
|
|
int* ipiv,
|
|
int* info,
|
|
const int batch_count);
|
|
|
|
hipblasStatus_t hipblasCgetrfBatchedFortran(hipblasHandle_t handle,
|
|
const int n,
|
|
hipComplex* const A[],
|
|
const int lda,
|
|
int* ipiv,
|
|
int* info,
|
|
const int batch_count);
|
|
|
|
hipblasStatus_t hipblasZgetrfBatchedFortran(hipblasHandle_t handle,
|
|
const int n,
|
|
hipDoubleComplex* const A[],
|
|
const int lda,
|
|
int* ipiv,
|
|
int* info,
|
|
const int batch_count);
|
|
|
|
// getrf_strided_batched
|
|
hipblasStatus_t hipblasSgetrfStridedBatchedFortran(hipblasHandle_t handle,
|
|
const int n,
|
|
float* A,
|
|
const int lda,
|
|
const hipblasStride stride_A,
|
|
int* ipiv,
|
|
const hipblasStride stride_P,
|
|
int* info,
|
|
const int batch_count);
|
|
|
|
hipblasStatus_t hipblasDgetrfStridedBatchedFortran(hipblasHandle_t handle,
|
|
const int n,
|
|
double* A,
|
|
const int lda,
|
|
const hipblasStride stride_A,
|
|
int* ipiv,
|
|
const hipblasStride stride_P,
|
|
int* info,
|
|
const int batch_count);
|
|
|
|
hipblasStatus_t hipblasCgetrfStridedBatchedFortran(hipblasHandle_t handle,
|
|
const int n,
|
|
hipComplex* A,
|
|
const int lda,
|
|
const hipblasStride stride_A,
|
|
int* ipiv,
|
|
const hipblasStride stride_P,
|
|
int* info,
|
|
const int batch_count);
|
|
|
|
hipblasStatus_t hipblasZgetrfStridedBatchedFortran(hipblasHandle_t handle,
|
|
const int n,
|
|
hipDoubleComplex* A,
|
|
const int lda,
|
|
const hipblasStride stride_A,
|
|
int* ipiv,
|
|
const hipblasStride stride_P,
|
|
int* info,
|
|
const int batch_count);
|
|
|
|
// getrs
|
|
hipblasStatus_t hipblasSgetrsFortran(hipblasHandle_t handle,
|
|
const hipblasOperation_t trans,
|
|
const int n,
|
|
const int nrhs,
|
|
float* A,
|
|
const int lda,
|
|
const int* ipiv,
|
|
float* B,
|
|
const int ldb,
|
|
int* info);
|
|
|
|
hipblasStatus_t hipblasDgetrsFortran(hipblasHandle_t handle,
|
|
const hipblasOperation_t trans,
|
|
const int n,
|
|
const int nrhs,
|
|
double* A,
|
|
const int lda,
|
|
const int* ipiv,
|
|
double* B,
|
|
const int ldb,
|
|
int* info);
|
|
|
|
hipblasStatus_t hipblasCgetrsFortran(hipblasHandle_t handle,
|
|
const hipblasOperation_t trans,
|
|
const int n,
|
|
const int nrhs,
|
|
hipComplex* A,
|
|
const int lda,
|
|
const int* ipiv,
|
|
hipComplex* B,
|
|
const int ldb,
|
|
int* info);
|
|
|
|
hipblasStatus_t hipblasZgetrsFortran(hipblasHandle_t handle,
|
|
const hipblasOperation_t trans,
|
|
const int n,
|
|
const int nrhs,
|
|
hipDoubleComplex* A,
|
|
const int lda,
|
|
const int* ipiv,
|
|
hipDoubleComplex* B,
|
|
const int ldb,
|
|
int* info);
|
|
|
|
// getrs_batched
|
|
hipblasStatus_t hipblasSgetrsBatchedFortran(hipblasHandle_t handle,
|
|
const hipblasOperation_t trans,
|
|
const int n,
|
|
const int nrhs,
|
|
float* const A[],
|
|
const int lda,
|
|
const int* ipiv,
|
|
float* const B[],
|
|
const int ldb,
|
|
int* info,
|
|
const int batch_count);
|
|
|
|
hipblasStatus_t hipblasDgetrsBatchedFortran(hipblasHandle_t handle,
|
|
const hipblasOperation_t trans,
|
|
const int n,
|
|
const int nrhs,
|
|
double* const A[],
|
|
const int lda,
|
|
const int* ipiv,
|
|
double* const B[],
|
|
const int ldb,
|
|
int* info,
|
|
const int batch_count);
|
|
|
|
hipblasStatus_t hipblasCgetrsBatchedFortran(hipblasHandle_t handle,
|
|
const hipblasOperation_t trans,
|
|
const int n,
|
|
const int nrhs,
|
|
hipComplex* const A[],
|
|
const int lda,
|
|
const int* ipiv,
|
|
hipComplex* const B[],
|
|
const int ldb,
|
|
int* info,
|
|
const int batch_count);
|
|
|
|
hipblasStatus_t hipblasZgetrsBatchedFortran(hipblasHandle_t handle,
|
|
const hipblasOperation_t trans,
|
|
const int n,
|
|
const int nrhs,
|
|
hipDoubleComplex* const A[],
|
|
const int lda,
|
|
const int* ipiv,
|
|
hipDoubleComplex* const B[],
|
|
const int ldb,
|
|
int* info,
|
|
const int batch_count);
|
|
|
|
// getrs_strided_batched
|
|
hipblasStatus_t hipblasSgetrsStridedBatchedFortran(hipblasHandle_t handle,
|
|
const hipblasOperation_t trans,
|
|
const int n,
|
|
const int nrhs,
|
|
float* A,
|
|
const int lda,
|
|
const hipblasStride stride_A,
|
|
const int* ipiv,
|
|
const hipblasStride stride_P,
|
|
float* B,
|
|
const int ldb,
|
|
const hipblasStride stride_B,
|
|
int* info,
|
|
const int batch_count);
|
|
|
|
hipblasStatus_t hipblasDgetrsStridedBatchedFortran(hipblasHandle_t handle,
|
|
const hipblasOperation_t trans,
|
|
const int n,
|
|
const int nrhs,
|
|
double* A,
|
|
const int lda,
|
|
const hipblasStride stride_A,
|
|
const int* ipiv,
|
|
const hipblasStride stride_P,
|
|
double* B,
|
|
const int ldb,
|
|
const hipblasStride stride_B,
|
|
int* info,
|
|
const int batch_count);
|
|
|
|
hipblasStatus_t hipblasCgetrsStridedBatchedFortran(hipblasHandle_t handle,
|
|
const hipblasOperation_t trans,
|
|
const int n,
|
|
const int nrhs,
|
|
hipComplex* A,
|
|
const int lda,
|
|
const hipblasStride stride_A,
|
|
const int* ipiv,
|
|
const hipblasStride stride_P,
|
|
hipComplex* B,
|
|
const int ldb,
|
|
const hipblasStride stride_B,
|
|
int* info,
|
|
const int batch_count);
|
|
|
|
hipblasStatus_t hipblasZgetrsStridedBatchedFortran(hipblasHandle_t handle,
|
|
const hipblasOperation_t trans,
|
|
const int n,
|
|
const int nrhs,
|
|
hipDoubleComplex* A,
|
|
const int lda,
|
|
const hipblasStride stride_A,
|
|
const int* ipiv,
|
|
const hipblasStride stride_P,
|
|
hipDoubleComplex* B,
|
|
const int ldb,
|
|
const hipblasStride stride_B,
|
|
int* info,
|
|
const int batch_count);
|
|
|
|
// getri_batched
|
|
hipblasStatus_t hipblasSgetriBatchedFortran(hipblasHandle_t handle,
|
|
const int n,
|
|
float* const A[],
|
|
const int lda,
|
|
int* ipiv,
|
|
float* const C[],
|
|
const int ldc,
|
|
int* info,
|
|
const int batch_count);
|
|
|
|
hipblasStatus_t hipblasDgetriBatchedFortran(hipblasHandle_t handle,
|
|
const int n,
|
|
double* const A[],
|
|
const int lda,
|
|
int* ipiv,
|
|
double* const C[],
|
|
const int ldc,
|
|
int* info,
|
|
const int batch_count);
|
|
|
|
hipblasStatus_t hipblasCgetriBatchedFortran(hipblasHandle_t handle,
|
|
const int n,
|
|
hipComplex* const A[],
|
|
const int lda,
|
|
int* ipiv,
|
|
hipComplex* const C[],
|
|
const int ldc,
|
|
int* info,
|
|
const int batch_count);
|
|
|
|
hipblasStatus_t hipblasZgetriBatchedFortran(hipblasHandle_t handle,
|
|
const int n,
|
|
hipDoubleComplex* const A[],
|
|
const int lda,
|
|
int* ipiv,
|
|
hipDoubleComplex* const C[],
|
|
const int ldc,
|
|
int* info,
|
|
const int batch_count);
|
|
|
|
// geqrf
|
|
hipblasStatus_t hipblasSgeqrfFortran(hipblasHandle_t handle,
|
|
const int m,
|
|
const int n,
|
|
float* A,
|
|
const int lda,
|
|
float* tau,
|
|
int* info);
|
|
|
|
hipblasStatus_t hipblasDgeqrfFortran(hipblasHandle_t handle,
|
|
const int m,
|
|
const int n,
|
|
double* A,
|
|
const int lda,
|
|
double* tau,
|
|
int* info);
|
|
|
|
hipblasStatus_t hipblasCgeqrfFortran(hipblasHandle_t handle,
|
|
const int m,
|
|
const int n,
|
|
hipComplex* A,
|
|
const int lda,
|
|
hipComplex* tau,
|
|
int* info);
|
|
|
|
hipblasStatus_t hipblasZgeqrfFortran(hipblasHandle_t handle,
|
|
const int m,
|
|
const int n,
|
|
hipDoubleComplex* A,
|
|
const int lda,
|
|
hipDoubleComplex* tau,
|
|
int* info);
|
|
|
|
// geqrf_batched
|
|
hipblasStatus_t hipblasSgeqrfBatchedFortran(hipblasHandle_t handle,
|
|
const int m,
|
|
const int n,
|
|
float* const A[],
|
|
const int lda,
|
|
float* const tau[],
|
|
int* info,
|
|
const int batch_count);
|
|
|
|
hipblasStatus_t hipblasDgeqrfBatchedFortran(hipblasHandle_t handle,
|
|
const int m,
|
|
const int n,
|
|
double* const A[],
|
|
const int lda,
|
|
double* const tau[],
|
|
int* info,
|
|
const int batch_count);
|
|
|
|
hipblasStatus_t hipblasCgeqrfBatchedFortran(hipblasHandle_t handle,
|
|
const int m,
|
|
const int n,
|
|
hipComplex* const A[],
|
|
const int lda,
|
|
hipComplex* const tau[],
|
|
int* info,
|
|
const int batch_count);
|
|
|
|
hipblasStatus_t hipblasZgeqrfBatchedFortran(hipblasHandle_t handle,
|
|
const int m,
|
|
const int n,
|
|
hipDoubleComplex* const A[],
|
|
const int lda,
|
|
hipDoubleComplex* const tau[],
|
|
int* info,
|
|
const int batch_count);
|
|
|
|
// geqrf_strided_batched
|
|
hipblasStatus_t hipblasSgeqrfStridedBatchedFortran(hipblasHandle_t handle,
|
|
const int m,
|
|
const int n,
|
|
float* A,
|
|
const int lda,
|
|
const hipblasStride stride_A,
|
|
float* tau,
|
|
const hipblasStride stride_T,
|
|
int* info,
|
|
const int batch_count);
|
|
|
|
hipblasStatus_t hipblasDgeqrfStridedBatchedFortran(hipblasHandle_t handle,
|
|
const int m,
|
|
const int n,
|
|
double* A,
|
|
const int lda,
|
|
const hipblasStride stride_A,
|
|
double* tau,
|
|
const hipblasStride stride_T,
|
|
int* info,
|
|
const int batch_count);
|
|
|
|
hipblasStatus_t hipblasCgeqrfStridedBatchedFortran(hipblasHandle_t handle,
|
|
const int m,
|
|
const int n,
|
|
hipComplex* A,
|
|
const int lda,
|
|
const hipblasStride stride_A,
|
|
hipComplex* tau,
|
|
const hipblasStride stride_T,
|
|
int* info,
|
|
const int batch_count);
|
|
|
|
hipblasStatus_t hipblasZgeqrfStridedBatchedFortran(hipblasHandle_t handle,
|
|
const int m,
|
|
const int n,
|
|
hipDoubleComplex* A,
|
|
const int lda,
|
|
const hipblasStride stride_A,
|
|
hipDoubleComplex* tau,
|
|
const hipblasStride stride_T,
|
|
int* info,
|
|
const int batch_count);
|
|
|
|
// gels
|
|
hipblasStatus_t hipblasSgelsFortran(hipblasHandle_t handle,
|
|
hipblasOperation_t trans,
|
|
const int m,
|
|
const int n,
|
|
const int nrhs,
|
|
float* A,
|
|
const int lda,
|
|
float* B,
|
|
const int ldb,
|
|
int* info,
|
|
int* deviceInfo);
|
|
|
|
hipblasStatus_t hipblasDgelsFortran(hipblasHandle_t handle,
|
|
hipblasOperation_t trans,
|
|
const int m,
|
|
const int n,
|
|
const int nrhs,
|
|
double* A,
|
|
const int lda,
|
|
double* B,
|
|
const int ldb,
|
|
int* info,
|
|
int* deviceInfo);
|
|
|
|
hipblasStatus_t hipblasCgelsFortran(hipblasHandle_t handle,
|
|
hipblasOperation_t trans,
|
|
const int m,
|
|
const int n,
|
|
const int nrhs,
|
|
hipComplex* A,
|
|
const int lda,
|
|
hipComplex* B,
|
|
const int ldb,
|
|
int* info,
|
|
int* deviceInfo);
|
|
|
|
hipblasStatus_t hipblasZgelsFortran(hipblasHandle_t handle,
|
|
hipblasOperation_t trans,
|
|
const int m,
|
|
const int n,
|
|
const int nrhs,
|
|
hipDoubleComplex* A,
|
|
const int lda,
|
|
hipDoubleComplex* B,
|
|
const int ldb,
|
|
int* info,
|
|
int* deviceInfo);
|
|
|
|
// gelsBatched
|
|
hipblasStatus_t hipblasSgelsBatchedFortran(hipblasHandle_t handle,
|
|
hipblasOperation_t trans,
|
|
const int m,
|
|
const int n,
|
|
const int nrhs,
|
|
float* const A[],
|
|
const int lda,
|
|
float* const B[],
|
|
const int ldb,
|
|
int* info,
|
|
int* deviceInfo,
|
|
const int batchCount);
|
|
|
|
hipblasStatus_t hipblasDgelsBatchedFortran(hipblasHandle_t handle,
|
|
hipblasOperation_t trans,
|
|
const int m,
|
|
const int n,
|
|
const int nrhs,
|
|
double* const A[],
|
|
const int lda,
|
|
double* const B[],
|
|
const int ldb,
|
|
int* info,
|
|
int* deviceInfo,
|
|
const int batchCount);
|
|
|
|
hipblasStatus_t hipblasCgelsBatchedFortran(hipblasHandle_t handle,
|
|
hipblasOperation_t trans,
|
|
const int m,
|
|
const int n,
|
|
const int nrhs,
|
|
hipComplex* const A[],
|
|
const int lda,
|
|
hipComplex* const B[],
|
|
const int ldb,
|
|
int* info,
|
|
int* deviceInfo,
|
|
const int batchCount);
|
|
|
|
hipblasStatus_t hipblasZgelsBatchedFortran(hipblasHandle_t handle,
|
|
hipblasOperation_t trans,
|
|
const int m,
|
|
const int n,
|
|
const int nrhs,
|
|
hipDoubleComplex* const A[],
|
|
const int lda,
|
|
hipDoubleComplex* const B[],
|
|
const int ldb,
|
|
int* info,
|
|
int* deviceInfo,
|
|
const int batchCount);
|
|
|
|
// gelsStridedBatched
|
|
hipblasStatus_t hipblasSgelsStridedBatchedFortran(hipblasHandle_t handle,
|
|
hipblasOperation_t trans,
|
|
const int m,
|
|
const int n,
|
|
const int nrhs,
|
|
float* A,
|
|
const int lda,
|
|
const hipblasStride strideA,
|
|
float* B,
|
|
const int ldb,
|
|
const hipblasStride strideB,
|
|
int* info,
|
|
int* deviceInfo,
|
|
const int batchCount);
|
|
|
|
hipblasStatus_t hipblasDgelsStridedBatchedFortran(hipblasHandle_t handle,
|
|
hipblasOperation_t trans,
|
|
const int m,
|
|
const int n,
|
|
const int nrhs,
|
|
double* A,
|
|
const int lda,
|
|
const hipblasStride strideA,
|
|
double* B,
|
|
const int ldb,
|
|
const hipblasStride strideB,
|
|
int* info,
|
|
int* deviceInfo,
|
|
const int batchCount);
|
|
|
|
hipblasStatus_t hipblasCgelsStridedBatchedFortran(hipblasHandle_t handle,
|
|
hipblasOperation_t trans,
|
|
const int m,
|
|
const int n,
|
|
const int nrhs,
|
|
hipComplex* A,
|
|
const int lda,
|
|
const hipblasStride strideA,
|
|
hipComplex* B,
|
|
const int ldb,
|
|
const hipblasStride strideB,
|
|
int* info,
|
|
int* deviceInfo,
|
|
const int batchCount);
|
|
|
|
hipblasStatus_t hipblasZgelsStridedBatchedFortran(hipblasHandle_t handle,
|
|
hipblasOperation_t trans,
|
|
const int m,
|
|
const int n,
|
|
const int nrhs,
|
|
hipDoubleComplex* A,
|
|
const int lda,
|
|
const hipblasStride strideA,
|
|
hipDoubleComplex* B,
|
|
const int ldb,
|
|
const hipblasStride strideB,
|
|
int* info,
|
|
int* deviceInfo,
|
|
const int batchCount);
|
|
}
|
|
|
|
#endif
|