mirror of
https://github.com/amd/blis.git
synced 2026-04-19 23:28:52 +00:00
Alias *gemmt_ as *gemmtr_ to fix lapack 3.12.1 compatibility.
Copy changes from upstream BLIS to add gemmtr interfaces to match new BLAS functionality in recent LAPACK releases. This addresses https://github.com/amd/blis/issues/31, thanks to Greg Jones for reporting this issue. AMD-Internal: [CPUPL-6581] Change-Id: I2b1a724d80902541b1d2b073fa3d1ea71442f445
This commit is contained in:
@@ -4,7 +4,7 @@
|
||||
An object-based framework for developing high-performance BLAS-like
|
||||
libraries.
|
||||
|
||||
Copyright (C) 2020 - 2024, Advanced Micro Devices, Inc. All rights reserved.
|
||||
Copyright (C) 2020 - 2025, Advanced Micro Devices, Inc. All rights reserved.
|
||||
|
||||
Redistribution and use in source and binary forms, with or without
|
||||
modification, are permitted provided that the following conditions are
|
||||
@@ -572,6 +572,11 @@ void BLIS_EXPORT_BLAS cblas_sgemmt(enum CBLAS_ORDER Order, enum CBLAS_UPLO Uplo,
|
||||
f77_int N, f77_int K, float alpha, const float *A,
|
||||
f77_int lda, const float *B, f77_int ldb,
|
||||
float beta, float *C, f77_int ldc);
|
||||
void BLIS_EXPORT_BLAS cblas_sgemmtr(enum CBLAS_ORDER Order, enum CBLAS_UPLO Uplo,
|
||||
enum CBLAS_TRANSPOSE TransA, enum CBLAS_TRANSPOSE TransB,
|
||||
f77_int N, f77_int K, float alpha, const float *A,
|
||||
f77_int lda, const float *B, f77_int ldb,
|
||||
float beta, float *C, f77_int ldc);
|
||||
/** @}*/
|
||||
void BLIS_EXPORT_BLAS cblas_dgemm(enum CBLAS_ORDER Order, enum CBLAS_TRANSPOSE TransA,
|
||||
enum CBLAS_TRANSPOSE TransB, f77_int M, f77_int N,
|
||||
@@ -642,8 +647,13 @@ void BLIS_EXPORT_BLAS cblas_dtrsm(enum CBLAS_ORDER Order, enum CBLAS_SIDE Side,
|
||||
* @return None
|
||||
*/
|
||||
void BLIS_EXPORT_BLAS cblas_dgemmt(enum CBLAS_ORDER Order, enum CBLAS_UPLO Uplo,
|
||||
enum CBLAS_TRANSPOSE TransA, enum CBLAS_TRANSPOSE TransB,
|
||||
f77_int N, f77_int K, double alpha, const double *A,
|
||||
enum CBLAS_TRANSPOSE TransA, enum CBLAS_TRANSPOSE TransB,
|
||||
f77_int N, f77_int K, double alpha, const double *A,
|
||||
f77_int lda, const double *B, f77_int ldb,
|
||||
double beta, double *C, f77_int ldc);
|
||||
void BLIS_EXPORT_BLAS cblas_dgemmtr(enum CBLAS_ORDER Order, enum CBLAS_UPLO Uplo,
|
||||
enum CBLAS_TRANSPOSE TransA, enum CBLAS_TRANSPOSE TransB,
|
||||
f77_int N, f77_int K, double alpha, const double *A,
|
||||
f77_int lda, const double *B, f77_int ldb,
|
||||
double beta, double *C, f77_int ldc);
|
||||
/** @}*/
|
||||
@@ -716,8 +726,13 @@ void BLIS_EXPORT_BLAS cblas_ctrsm(enum CBLAS_ORDER Order, enum CBLAS_SIDE Side,
|
||||
* @return None
|
||||
*/
|
||||
void BLIS_EXPORT_BLAS cblas_cgemmt(enum CBLAS_ORDER Order, enum CBLAS_UPLO Uplo,
|
||||
enum CBLAS_TRANSPOSE TransA, enum CBLAS_TRANSPOSE TransB,
|
||||
f77_int N, f77_int K, const void *alpha, const void *A,
|
||||
enum CBLAS_TRANSPOSE TransA, enum CBLAS_TRANSPOSE TransB,
|
||||
f77_int N, f77_int K, const void *alpha, const void *A,
|
||||
f77_int lda, const void *B, f77_int ldb,
|
||||
const void *beta, void *C, f77_int ldc);
|
||||
void BLIS_EXPORT_BLAS cblas_cgemmtr(enum CBLAS_ORDER Order, enum CBLAS_UPLO Uplo,
|
||||
enum CBLAS_TRANSPOSE TransA, enum CBLAS_TRANSPOSE TransB,
|
||||
f77_int N, f77_int K, const void *alpha, const void *A,
|
||||
f77_int lda, const void *B, f77_int ldb,
|
||||
const void *beta, void *C, f77_int ldc);
|
||||
/** @}*/
|
||||
@@ -790,8 +805,13 @@ void BLIS_EXPORT_BLAS cblas_ztrsm(enum CBLAS_ORDER Order, enum CBLAS_SIDE Side,
|
||||
* @return None
|
||||
*/
|
||||
void BLIS_EXPORT_BLAS cblas_zgemmt(enum CBLAS_ORDER Order, enum CBLAS_UPLO Uplo,
|
||||
enum CBLAS_TRANSPOSE TransA, enum CBLAS_TRANSPOSE TransB,
|
||||
f77_int N, f77_int K, const void *alpha, const void *A,
|
||||
enum CBLAS_TRANSPOSE TransA, enum CBLAS_TRANSPOSE TransB,
|
||||
f77_int N, f77_int K, const void *alpha, const void *A,
|
||||
f77_int lda, const void *B, f77_int ldb,
|
||||
const void *beta, void *C, f77_int ldc);
|
||||
void BLIS_EXPORT_BLAS cblas_zgemmtr(enum CBLAS_ORDER Order, enum CBLAS_UPLO Uplo,
|
||||
enum CBLAS_TRANSPOSE TransA, enum CBLAS_TRANSPOSE TransB,
|
||||
f77_int N, f77_int K, const void *alpha, const void *A,
|
||||
f77_int lda, const void *B, f77_int ldb,
|
||||
const void *beta, void *C, f77_int ldc);
|
||||
/** @}*/
|
||||
@@ -840,7 +860,6 @@ void BLIS_EXPORT_BLAS cblas_xerbla(f77_int p, const char *rout, const char *form
|
||||
BLIS_EXPORT_BLAS float cblas_scabs1( const void *z);
|
||||
BLIS_EXPORT_BLAS double cblas_dcabs1( const void *z);
|
||||
|
||||
|
||||
/*
|
||||
* ===========================================================================
|
||||
* BLAS Extension prototypes
|
||||
|
||||
@@ -1,36 +1,69 @@
|
||||
/*
|
||||
|
||||
BLIS
|
||||
An object-based framework for developing high-performance BLAS-like
|
||||
libraries.
|
||||
|
||||
Copyright (C) 2020 - 2025, Advanced Micro Devices, Inc. All rights reserved.
|
||||
|
||||
Redistribution and use in source and binary forms, with or without
|
||||
modification, are permitted provided that the following conditions are
|
||||
met:
|
||||
- Redistributions of source code must retain the above copyright
|
||||
notice, this list of conditions and the following disclaimer.
|
||||
- Redistributions in binary form must reproduce the above copyright
|
||||
notice, this list of conditions and the following disclaimer in the
|
||||
documentation and/or other materials provided with the distribution.
|
||||
- Neither the name(s) of the copyright holder(s) nor the names of its
|
||||
contributors may be used to endorse or promote products derived
|
||||
from this software without specific prior written permission.
|
||||
|
||||
THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
|
||||
"AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
|
||||
LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
|
||||
A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT
|
||||
HOLDER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
|
||||
SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
|
||||
LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
|
||||
DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
|
||||
THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
|
||||
(INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
|
||||
OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
|
||||
|
||||
*/
|
||||
|
||||
#include "blis.h"
|
||||
#ifdef BLIS_ENABLE_CBLAS
|
||||
/*
|
||||
*
|
||||
* cblas_cgemmt.c
|
||||
* This program is a C interface to cgemmt.
|
||||
* Copyright (C) 2020 - 2023, Advanced Micro Devices, Inc. All rights reserved.
|
||||
*
|
||||
*/
|
||||
|
||||
#include "cblas.h"
|
||||
#include "cblas_f77.h"
|
||||
void cblas_cgemmt(enum CBLAS_ORDER Order, enum CBLAS_UPLO Uplo,
|
||||
enum CBLAS_TRANSPOSE TransA,enum CBLAS_TRANSPOSE TransB,
|
||||
f77_int N, f77_int K,
|
||||
enum CBLAS_TRANSPOSE TransA,
|
||||
enum CBLAS_TRANSPOSE TransB, f77_int M, f77_int K,
|
||||
const void *alpha, const void *A,
|
||||
f77_int lda, const void *B, f77_int ldb,
|
||||
const void *beta, void *C, f77_int ldc)
|
||||
f77_int lda, const void *B, f77_int ldb,
|
||||
const void *beta, void *C, f77_int ldc)
|
||||
{
|
||||
char TA, TB, UL;
|
||||
char UL, TA, TB;
|
||||
#ifdef F77_CHAR
|
||||
F77_CHAR F77_TA, F77_TB, F77_UL;
|
||||
F77_CHAR F77_UL, F77_TA, F77_TB;
|
||||
#else
|
||||
#define F77_UL &UL
|
||||
#define F77_TA &TA
|
||||
#define F77_TB &TB
|
||||
#define F77_UL &UL
|
||||
#endif
|
||||
|
||||
#ifdef F77_INT
|
||||
F77_INT F77_N=N, F77_K=K, F77_lda=lda, F77_ldb=ldb;
|
||||
F77_INT F77_M=M, F77_K=K, F77_lda=lda, F77_ldb=ldb;
|
||||
F77_INT F77_ldc=ldc;
|
||||
#else
|
||||
#define F77_N N
|
||||
#define F77_M M
|
||||
#define F77_K K
|
||||
#define F77_lda lda
|
||||
#define F77_ldb ldb
|
||||
@@ -44,7 +77,8 @@ void cblas_cgemmt(enum CBLAS_ORDER Order, enum CBLAS_UPLO Uplo,
|
||||
|
||||
if( Order == CblasColMajor )
|
||||
{
|
||||
if( Uplo == CblasUpper ) UL='U';
|
||||
|
||||
if( Uplo == CblasUpper) UL='U';
|
||||
else if ( Uplo == CblasLower ) UL='L';
|
||||
else
|
||||
{
|
||||
@@ -53,6 +87,7 @@ void cblas_cgemmt(enum CBLAS_ORDER Order, enum CBLAS_UPLO Uplo,
|
||||
RowMajorStrg = 0;
|
||||
return;
|
||||
}
|
||||
|
||||
if(TransA == CblasTrans) TA='T';
|
||||
else if ( TransA == CblasConjTrans ) TA='C';
|
||||
else if ( TransA == CblasNoTrans ) TA='N';
|
||||
@@ -76,20 +111,21 @@ void cblas_cgemmt(enum CBLAS_ORDER Order, enum CBLAS_UPLO Uplo,
|
||||
}
|
||||
|
||||
#ifdef F77_CHAR
|
||||
F77_UL = C2F_CHAR(&UL);
|
||||
F77_TA = C2F_CHAR(&TA);
|
||||
F77_TB = C2F_CHAR(&TB);
|
||||
#endif
|
||||
|
||||
F77_cgemmt(F77_UL, F77_TA, F77_TB, &F77_N, &F77_K, (scomplex*)alpha, (scomplex*)A,
|
||||
&F77_lda, (scomplex*)B, &F77_ldb, (scomplex*)beta, (scomplex*)C, &F77_ldc);
|
||||
F77_cgemmt(F77_UL, F77_TA, F77_TB, &F77_M, &F77_K, (scomplex*)alpha, (scomplex*)A,
|
||||
&F77_lda, (scomplex*)B, &F77_ldb, (scomplex*)beta, (scomplex*)C, &F77_ldc);
|
||||
} else if (Order == CblasRowMajor)
|
||||
{
|
||||
RowMajorStrg = 1;
|
||||
/* In case of row major order,
|
||||
* Swap A & B and induce transpose to C
|
||||
*/
|
||||
if( Uplo == CblasUpper ) UL='L';
|
||||
else if( Uplo == CblasLower ) UL='U';
|
||||
if( Uplo == CblasUpper) UL='L';
|
||||
else if ( Uplo == CblasLower ) UL='U';
|
||||
else
|
||||
{
|
||||
cblas_xerbla(2, "cblas_cgemmt","Illegal Uplo setting, %d\n", Uplo);
|
||||
@@ -97,6 +133,7 @@ void cblas_cgemmt(enum CBLAS_ORDER Order, enum CBLAS_UPLO Uplo,
|
||||
RowMajorStrg = 0;
|
||||
return;
|
||||
}
|
||||
|
||||
if(TransA == CblasTrans) TB='T';
|
||||
else if ( TransA == CblasConjTrans ) TB='C';
|
||||
else if ( TransA == CblasNoTrans ) TB='N';
|
||||
@@ -118,11 +155,12 @@ void cblas_cgemmt(enum CBLAS_ORDER Order, enum CBLAS_UPLO Uplo,
|
||||
return;
|
||||
}
|
||||
#ifdef F77_CHAR
|
||||
F77_UL = C2F_CHAR(&UL);
|
||||
F77_TA = C2F_CHAR(&TA);
|
||||
F77_TB = C2F_CHAR(&TB);
|
||||
#endif
|
||||
|
||||
F77_cgemmt(F77_UL, F77_TA, F77_TB, &F77_N, &F77_K, (scomplex*)alpha, (scomplex*)B,
|
||||
F77_cgemmt(F77_UL, F77_TA, F77_TB, &F77_M, &F77_K, (scomplex*)alpha, (scomplex*)B,
|
||||
&F77_ldb, (scomplex*)A, &F77_lda, (scomplex*)beta, (scomplex*)C, &F77_ldc);
|
||||
}
|
||||
else cblas_xerbla(1, "cblas_cgemmt", "Illegal Order setting, %d\n", Order);
|
||||
@@ -130,4 +168,17 @@ void cblas_cgemmt(enum CBLAS_ORDER Order, enum CBLAS_UPLO Uplo,
|
||||
RowMajorStrg = 0;
|
||||
return;
|
||||
}
|
||||
|
||||
void cblas_cgemmtr(enum CBLAS_ORDER Order, enum CBLAS_UPLO Uplo,
|
||||
enum CBLAS_TRANSPOSE TransA,
|
||||
enum CBLAS_TRANSPOSE TransB, f77_int M, f77_int K,
|
||||
const void* alpha, const void *A,
|
||||
f77_int lda, const void *B, f77_int ldb,
|
||||
const void* beta, void *C, f77_int ldc)
|
||||
#ifdef BLIS_OS_OSX
|
||||
{ cblas_cgemmt(Order, Uplo, TransA, TransB, M, K, alpha, A, lda, B, ldb, beta, C, ldc); }
|
||||
#else
|
||||
__attribute__((alias("cblas_cgemmt")));
|
||||
#endif
|
||||
|
||||
#endif
|
||||
@@ -1,3 +1,37 @@
|
||||
/*
|
||||
|
||||
BLIS
|
||||
An object-based framework for developing high-performance BLAS-like
|
||||
libraries.
|
||||
|
||||
Copyright (C) 2020 - 2025, Advanced Micro Devices, Inc. All rights reserved.
|
||||
|
||||
Redistribution and use in source and binary forms, with or without
|
||||
modification, are permitted provided that the following conditions are
|
||||
met:
|
||||
- Redistributions of source code must retain the above copyright
|
||||
notice, this list of conditions and the following disclaimer.
|
||||
- Redistributions in binary form must reproduce the above copyright
|
||||
notice, this list of conditions and the following disclaimer in the
|
||||
documentation and/or other materials provided with the distribution.
|
||||
- Neither the name(s) of the copyright holder(s) nor the names of its
|
||||
contributors may be used to endorse or promote products derived
|
||||
from this software without specific prior written permission.
|
||||
|
||||
THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
|
||||
"AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
|
||||
LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
|
||||
A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT
|
||||
HOLDER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
|
||||
SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
|
||||
LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
|
||||
DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
|
||||
THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
|
||||
(INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
|
||||
OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
|
||||
|
||||
*/
|
||||
|
||||
#include "blis.h"
|
||||
#ifdef BLIS_ENABLE_CBLAS
|
||||
/*
|
||||
@@ -5,34 +39,32 @@
|
||||
* cblas_dgemmt.c
|
||||
* This program is a C interface to dgemmt.
|
||||
*
|
||||
* Copyright (C) 2020, Advanced Micro Devices, Inc. All rights reserved.
|
||||
*
|
||||
*/
|
||||
|
||||
#include "cblas.h"
|
||||
#include "cblas_f77.h"
|
||||
void cblas_dgemmt( enum CBLAS_ORDER Order, enum CBLAS_UPLO Uplo,
|
||||
enum CBLAS_TRANSPOSE TransA, enum CBLAS_TRANSPOSE TransB,
|
||||
f77_int N, f77_int K,
|
||||
double alpha, const double *A,
|
||||
f77_int lda, const double *B, f77_int ldb,
|
||||
double beta, double *C, f77_int ldc)
|
||||
void cblas_dgemmt(enum CBLAS_ORDER Order, enum CBLAS_UPLO Uplo,
|
||||
enum CBLAS_TRANSPOSE TransA,
|
||||
enum CBLAS_TRANSPOSE TransB, f77_int M, f77_int K,
|
||||
double alpha, const double *A,
|
||||
f77_int lda, const double *B, f77_int ldb,
|
||||
double beta, double *C, f77_int ldc)
|
||||
{
|
||||
AOCL_DTL_TRACE_ENTRY(AOCL_DTL_LEVEL_TRACE_1);
|
||||
char TA, TB, UL;
|
||||
AOCL_DTL_TRACE_ENTRY(AOCL_DTL_LEVEL_TRACE_1);
|
||||
char UL, TA, TB;
|
||||
#ifdef F77_CHAR
|
||||
F77_CHAR F77_TA, F77_TB, F77_UL;
|
||||
F77_CHAR F77_UL, F77_TA, F77_TB;
|
||||
#else
|
||||
#define F77_UL &UL
|
||||
#define F77_TA &TA
|
||||
#define F77_TB &TB
|
||||
#define F77_UL &UL
|
||||
#endif
|
||||
|
||||
#ifdef F77_INT
|
||||
F77_INT F77_N=N, F77_K=K, F77_lda=lda, F77_ldb=ldb;
|
||||
F77_INT F77_M=M, F77_K=K, F77_lda=lda, F77_ldb=ldb;
|
||||
F77_INT F77_ldc=ldc;
|
||||
#else
|
||||
#define F77_N N
|
||||
#define F77_M M
|
||||
#define F77_K K
|
||||
#define F77_lda lda
|
||||
#define F77_ldb ldb
|
||||
@@ -46,8 +78,9 @@ void cblas_dgemmt( enum CBLAS_ORDER Order, enum CBLAS_UPLO Uplo,
|
||||
|
||||
if( Order == CblasColMajor )
|
||||
{
|
||||
if( Uplo == CblasUpper) UL = 'U';
|
||||
else if(Uplo == CblasLower) UL = 'L';
|
||||
|
||||
if( Uplo == CblasUpper) UL='U';
|
||||
else if ( Uplo == CblasLower ) UL='L';
|
||||
else
|
||||
{
|
||||
cblas_xerbla(2, "cblas_dgemmt","Illegal Uplo setting, %d\n", Uplo);
|
||||
@@ -82,12 +115,12 @@ void cblas_dgemmt( enum CBLAS_ORDER Order, enum CBLAS_UPLO Uplo,
|
||||
}
|
||||
|
||||
#ifdef F77_CHAR
|
||||
F77_UL = C2F_CHAR(&UL);
|
||||
F77_TA = C2F_CHAR(&TA);
|
||||
F77_TB = C2F_CHAR(&TB);
|
||||
F77_UL = C2F_CHAR(&UL);
|
||||
#endif
|
||||
|
||||
F77_dgemmt(F77_UL,F77_TA, F77_TB, &F77_N, &F77_K, &alpha, A,
|
||||
F77_dgemmt(F77_UL, F77_TA, F77_TB, &F77_M, &F77_K, &alpha, A,
|
||||
&F77_lda, B, &F77_ldb, &beta, C, &F77_ldc);
|
||||
} else if (Order == CblasRowMajor)
|
||||
{
|
||||
@@ -95,8 +128,8 @@ void cblas_dgemmt( enum CBLAS_ORDER Order, enum CBLAS_UPLO Uplo,
|
||||
/* In case of row major order,
|
||||
* Swap A & B and induce transpose to C
|
||||
*/
|
||||
if(Uplo == CblasUpper) UL = 'L';
|
||||
else if(Uplo == CblasLower) UL = 'U';
|
||||
if( Uplo == CblasUpper) UL='L';
|
||||
else if ( Uplo == CblasLower ) UL='U';
|
||||
else
|
||||
{
|
||||
cblas_xerbla(2, "cblas_dgemmt","Illegal Uplo setting, %d\n", Uplo);
|
||||
@@ -129,12 +162,12 @@ void cblas_dgemmt( enum CBLAS_ORDER Order, enum CBLAS_UPLO Uplo,
|
||||
return;
|
||||
}
|
||||
#ifdef F77_CHAR
|
||||
F77_UL = C2F_CHAR(&UL);
|
||||
F77_TA = C2F_CHAR(&TA);
|
||||
F77_TB = C2F_CHAR(&TB);
|
||||
F77_UL = C2F_CHAR(&UL);
|
||||
#endif
|
||||
|
||||
F77_dgemmt(F77_UL,F77_TA, F77_TB, &F77_N, &F77_K, &alpha, B,
|
||||
F77_dgemmt(F77_UL, F77_TA, F77_TB, &F77_M, &F77_K, &alpha, B,
|
||||
&F77_ldb, A, &F77_lda, &beta, C, &F77_ldc);
|
||||
}
|
||||
else
|
||||
@@ -148,4 +181,17 @@ void cblas_dgemmt( enum CBLAS_ORDER Order, enum CBLAS_UPLO Uplo,
|
||||
AOCL_DTL_TRACE_EXIT(AOCL_DTL_LEVEL_TRACE_1);
|
||||
return;
|
||||
}
|
||||
|
||||
void cblas_dgemmtr(enum CBLAS_ORDER Order, enum CBLAS_UPLO Uplo,
|
||||
enum CBLAS_TRANSPOSE TransA,
|
||||
enum CBLAS_TRANSPOSE TransB, f77_int M, f77_int K,
|
||||
double alpha, const double *A,
|
||||
f77_int lda, const double *B, f77_int ldb,
|
||||
double beta, double *C, f77_int ldc)
|
||||
#ifdef BLIS_OS_OSX
|
||||
{ cblas_dgemmt(Order, Uplo, TransA, TransB, M, K, alpha, A, lda, B, ldb, beta, C, ldc); }
|
||||
#else
|
||||
__attribute__((alias("cblas_dgemmt")));
|
||||
#endif
|
||||
|
||||
#endif
|
||||
@@ -1,3 +1,37 @@
|
||||
/*
|
||||
|
||||
BLIS
|
||||
An object-based framework for developing high-performance BLAS-like
|
||||
libraries.
|
||||
|
||||
Copyright (C) 2020 - 2025, Advanced Micro Devices, Inc. All rights reserved.
|
||||
|
||||
Redistribution and use in source and binary forms, with or without
|
||||
modification, are permitted provided that the following conditions are
|
||||
met:
|
||||
- Redistributions of source code must retain the above copyright
|
||||
notice, this list of conditions and the following disclaimer.
|
||||
- Redistributions in binary form must reproduce the above copyright
|
||||
notice, this list of conditions and the following disclaimer in the
|
||||
documentation and/or other materials provided with the distribution.
|
||||
- Neither the name(s) of the copyright holder(s) nor the names of its
|
||||
contributors may be used to endorse or promote products derived
|
||||
from this software without specific prior written permission.
|
||||
|
||||
THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
|
||||
"AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
|
||||
LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
|
||||
A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT
|
||||
HOLDER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
|
||||
SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
|
||||
LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
|
||||
DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
|
||||
THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
|
||||
(INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
|
||||
OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
|
||||
|
||||
*/
|
||||
|
||||
#include "blis.h"
|
||||
#ifdef BLIS_ENABLE_CBLAS
|
||||
/*
|
||||
@@ -5,34 +39,32 @@
|
||||
* cblas_sgemmt.c
|
||||
* This program is a C interface to sgemmt.
|
||||
*
|
||||
* Copyright (C) 2020, Advanced Micro Devices, Inc. All rights reserved.
|
||||
*
|
||||
*/
|
||||
|
||||
#include "cblas.h"
|
||||
#include "cblas_f77.h"
|
||||
void cblas_sgemmt( enum CBLAS_ORDER Order, enum CBLAS_UPLO Uplo,
|
||||
enum CBLAS_TRANSPOSE TransA, enum CBLAS_TRANSPOSE TransB,
|
||||
f77_int N, f77_int K,
|
||||
float alpha, const float *A,
|
||||
f77_int lda, const float *B, f77_int ldb,
|
||||
float beta, float *C, f77_int ldc)
|
||||
void cblas_sgemmt(enum CBLAS_ORDER Order, enum CBLAS_UPLO Uplo,
|
||||
enum CBLAS_TRANSPOSE TransA,
|
||||
enum CBLAS_TRANSPOSE TransB, f77_int M, f77_int K,
|
||||
float alpha, const float *A,
|
||||
f77_int lda, const float *B, f77_int ldb,
|
||||
float beta, float *C, f77_int ldc)
|
||||
{
|
||||
AOCL_DTL_TRACE_ENTRY(AOCL_DTL_LEVEL_TRACE_1);
|
||||
char TA, TB, UL;
|
||||
char UL, TA, TB;
|
||||
#ifdef F77_CHAR
|
||||
F77_CHAR F77_TA, F77_TB, F77_UL;
|
||||
F77_CHAR F77_UL, F77_TA, F77_TB;
|
||||
#else
|
||||
#define F77_UL &UL
|
||||
#define F77_TA &TA
|
||||
#define F77_TB &TB
|
||||
#define F77_UL &UL
|
||||
#endif
|
||||
|
||||
#ifdef F77_INT
|
||||
F77_INT F77_N=N, F77_K=K, F77_lda=lda, F77_ldb=ldb;
|
||||
F77_INT F77_M=M, F77_K=K, F77_lda=lda, F77_ldb=ldb;
|
||||
F77_INT F77_ldc=ldc;
|
||||
#else
|
||||
#define F77_N N
|
||||
#define F77_M M
|
||||
#define F77_K K
|
||||
#define F77_lda lda
|
||||
#define F77_ldb ldb
|
||||
@@ -46,8 +78,9 @@ void cblas_sgemmt( enum CBLAS_ORDER Order, enum CBLAS_UPLO Uplo,
|
||||
|
||||
if( Order == CblasColMajor )
|
||||
{
|
||||
if( Uplo == CblasUpper) UL = 'U';
|
||||
else if(Uplo == CblasLower) UL = 'L';
|
||||
|
||||
if( Uplo == CblasUpper) UL='U';
|
||||
else if ( Uplo == CblasLower ) UL='L';
|
||||
else
|
||||
{
|
||||
cblas_xerbla(2, "cblas_sgemmt","Illegal Uplo setting, %d\n", Uplo);
|
||||
@@ -65,7 +98,7 @@ void cblas_sgemmt( enum CBLAS_ORDER Order, enum CBLAS_UPLO Uplo,
|
||||
cblas_xerbla(3, "cblas_sgemmt","Illegal TransA setting, %d\n", TransA);
|
||||
CBLAS_CallFromC = 0;
|
||||
RowMajorStrg = 0;
|
||||
AOCL_DTL_TRACE_EXIT_ERR(AOCL_DTL_LEVEL_TRACE_1, "Illegal transa setting.");
|
||||
AOCL_DTL_TRACE_EXIT_ERR(AOCL_DTL_LEVEL_TRACE_1, "Illegal transA setting.");
|
||||
return;
|
||||
}
|
||||
|
||||
@@ -77,17 +110,17 @@ void cblas_sgemmt( enum CBLAS_ORDER Order, enum CBLAS_UPLO Uplo,
|
||||
cblas_xerbla(4, "cblas_sgemmt","Illegal TransB setting, %d\n", TransB);
|
||||
CBLAS_CallFromC = 0;
|
||||
RowMajorStrg = 0;
|
||||
AOCL_DTL_TRACE_EXIT_ERR(AOCL_DTL_LEVEL_TRACE_1, "Illegal transb setting.");
|
||||
AOCL_DTL_TRACE_EXIT_ERR(AOCL_DTL_LEVEL_TRACE_1, "Illegal transB setting.");
|
||||
return;
|
||||
}
|
||||
|
||||
#ifdef F77_CHAR
|
||||
F77_UL = C2F_CHAR(&UL);
|
||||
F77_TA = C2F_CHAR(&TA);
|
||||
F77_TB = C2F_CHAR(&TB);
|
||||
F77_UL = C2F_CHAR(&UL);
|
||||
#endif
|
||||
|
||||
F77_sgemmt(F77_UL,F77_TA, F77_TB, &F77_N, &F77_K, &alpha, A,
|
||||
F77_sgemmt(F77_UL, F77_TA, F77_TB, &F77_M, &F77_K, &alpha, A,
|
||||
&F77_lda, B, &F77_ldb, &beta, C, &F77_ldc);
|
||||
} else if (Order == CblasRowMajor)
|
||||
{
|
||||
@@ -95,8 +128,8 @@ void cblas_sgemmt( enum CBLAS_ORDER Order, enum CBLAS_UPLO Uplo,
|
||||
/* In case of row major order,
|
||||
* Swap A & B and induce transpose to C
|
||||
*/
|
||||
if(Uplo == CblasUpper) UL = 'L';
|
||||
else if(Uplo == CblasLower) UL = 'U';
|
||||
if( Uplo == CblasUpper) UL='L';
|
||||
else if ( Uplo == CblasLower ) UL='U';
|
||||
else
|
||||
{
|
||||
cblas_xerbla(2, "cblas_sgemmt","Illegal Uplo setting, %d\n", Uplo);
|
||||
@@ -114,7 +147,7 @@ void cblas_sgemmt( enum CBLAS_ORDER Order, enum CBLAS_UPLO Uplo,
|
||||
cblas_xerbla(3, "cblas_sgemmt","Illegal TransA setting, %d\n", TransA);
|
||||
CBLAS_CallFromC = 0;
|
||||
RowMajorStrg = 0;
|
||||
AOCL_DTL_TRACE_EXIT_ERR(AOCL_DTL_LEVEL_TRACE_1, "Illegal transa setting.");
|
||||
AOCL_DTL_TRACE_EXIT_ERR(AOCL_DTL_LEVEL_TRACE_1, "Illegal transA setting.");
|
||||
return;
|
||||
}
|
||||
if(TransB == CblasTrans) TA='T';
|
||||
@@ -125,28 +158,41 @@ void cblas_sgemmt( enum CBLAS_ORDER Order, enum CBLAS_UPLO Uplo,
|
||||
cblas_xerbla(4, "cblas_sgemmt","Illegal TransB setting, %d\n", TransB);
|
||||
CBLAS_CallFromC = 0;
|
||||
RowMajorStrg = 0;
|
||||
AOCL_DTL_TRACE_EXIT_ERR(AOCL_DTL_LEVEL_TRACE_1, "Illegal transb setting.");
|
||||
AOCL_DTL_TRACE_EXIT_ERR(AOCL_DTL_LEVEL_TRACE_1, "Illegal transB setting.");
|
||||
return;
|
||||
}
|
||||
#ifdef F77_CHAR
|
||||
F77_UL = C2F_CHAR(&UL);
|
||||
F77_TA = C2F_CHAR(&TA);
|
||||
F77_TB = C2F_CHAR(&TB);
|
||||
F77_UL = C2F_CHAR(&UL);
|
||||
#endif
|
||||
|
||||
F77_sgemmt(F77_UL,F77_TA, F77_TB, &F77_N, &F77_K, &alpha, B,
|
||||
F77_sgemmt(F77_UL, F77_TA, F77_TB, &F77_M, &F77_K, &alpha, B,
|
||||
&F77_ldb, A, &F77_lda, &beta, C, &F77_ldc);
|
||||
AOCL_DTL_TRACE_EXIT(AOCL_DTL_LEVEL_TRACE_1);
|
||||
AOCL_DTL_TRACE_EXIT(AOCL_DTL_LEVEL_TRACE_1);
|
||||
}
|
||||
else
|
||||
{
|
||||
cblas_xerbla(1, "cblas_sgemmt", "Illegal Order setting, %d\n", Order);
|
||||
CBLAS_CallFromC = 0;
|
||||
RowMajorStrg = 0;
|
||||
AOCL_DTL_TRACE_EXIT_ERR(AOCL_DTL_LEVEL_TRACE_1, "Illegal order setting.");
|
||||
AOCL_DTL_TRACE_EXIT_ERR(AOCL_DTL_LEVEL_TRACE_1, "Illegal Order setting.");
|
||||
return;
|
||||
}
|
||||
AOCL_DTL_TRACE_EXIT(AOCL_DTL_LEVEL_TRACE_1);
|
||||
return;
|
||||
}
|
||||
|
||||
void cblas_sgemmtr(enum CBLAS_ORDER Order, enum CBLAS_UPLO Uplo,
|
||||
enum CBLAS_TRANSPOSE TransA,
|
||||
enum CBLAS_TRANSPOSE TransB, f77_int M, f77_int K,
|
||||
float alpha, const float *A,
|
||||
f77_int lda, const float *B, f77_int ldb,
|
||||
float beta, float *C, f77_int ldc)
|
||||
#ifdef BLIS_OS_OSX
|
||||
{ cblas_sgemmt(Order, Uplo, TransA, TransB, M, K, alpha, A, lda, B, ldb, beta, C, ldc); }
|
||||
#else
|
||||
__attribute__((alias("cblas_sgemmt")));
|
||||
#endif
|
||||
|
||||
#endif
|
||||
@@ -1,3 +1,37 @@
|
||||
/*
|
||||
|
||||
BLIS
|
||||
An object-based framework for developing high-performance BLAS-like
|
||||
libraries.
|
||||
|
||||
Copyright (C) 2020 - 2025, Advanced Micro Devices, Inc. All rights reserved.
|
||||
|
||||
Redistribution and use in source and binary forms, with or without
|
||||
modification, are permitted provided that the following conditions are
|
||||
met:
|
||||
- Redistributions of source code must retain the above copyright
|
||||
notice, this list of conditions and the following disclaimer.
|
||||
- Redistributions in binary form must reproduce the above copyright
|
||||
notice, this list of conditions and the following disclaimer in the
|
||||
documentation and/or other materials provided with the distribution.
|
||||
- Neither the name(s) of the copyright holder(s) nor the names of its
|
||||
contributors may be used to endorse or promote products derived
|
||||
from this software without specific prior written permission.
|
||||
|
||||
THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
|
||||
"AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
|
||||
LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
|
||||
A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT
|
||||
HOLDER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
|
||||
SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
|
||||
LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
|
||||
DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
|
||||
THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
|
||||
(INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
|
||||
OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
|
||||
|
||||
*/
|
||||
|
||||
#include "blis.h"
|
||||
#ifdef BLIS_ENABLE_CBLAS
|
||||
/*
|
||||
@@ -5,33 +39,31 @@
|
||||
* cblas_zgemmt.c
|
||||
* This program is a C interface to zgemmt.
|
||||
*
|
||||
* Copyright (C) 2020 - 2023, Advanced Micro Devices, Inc. All rights reserved.
|
||||
*
|
||||
*/
|
||||
|
||||
#include "cblas.h"
|
||||
#include "cblas_f77.h"
|
||||
void cblas_zgemmt(enum CBLAS_ORDER Order, enum CBLAS_UPLO Uplo,
|
||||
enum CBLAS_TRANSPOSE TransA,enum CBLAS_TRANSPOSE TransB,
|
||||
f77_int N, f77_int K,
|
||||
enum CBLAS_TRANSPOSE TransA,
|
||||
enum CBLAS_TRANSPOSE TransB, f77_int M, f77_int K,
|
||||
const void *alpha, const void *A,
|
||||
f77_int lda, const void *B, f77_int ldb,
|
||||
const void *beta, void *C, f77_int ldc)
|
||||
f77_int lda, const void *B, f77_int ldb,
|
||||
const void *beta, void *C, f77_int ldc)
|
||||
{
|
||||
char TA, TB, UL;
|
||||
char UL, TA, TB;
|
||||
#ifdef F77_CHAR
|
||||
F77_CHAR F77_TA, F77_TB, F77_UL;
|
||||
F77_CHAR F77_UL, F77_TA, F77_TB;
|
||||
#else
|
||||
#define F77_UL &UL
|
||||
#define F77_TA &TA
|
||||
#define F77_TB &TB
|
||||
#define F77_UL &UL
|
||||
#endif
|
||||
|
||||
#ifdef F77_INT
|
||||
F77_INT F77_N=N, F77_K=K, F77_lda=lda, F77_ldb=ldb;
|
||||
F77_INT F77_M=M, F77_K=K, F77_lda=lda, F77_ldb=ldb;
|
||||
F77_INT F77_ldc=ldc;
|
||||
#else
|
||||
#define F77_N N
|
||||
#define F77_M M
|
||||
#define F77_K K
|
||||
#define F77_lda lda
|
||||
#define F77_ldb ldb
|
||||
@@ -45,7 +77,8 @@ void cblas_zgemmt(enum CBLAS_ORDER Order, enum CBLAS_UPLO Uplo,
|
||||
|
||||
if( Order == CblasColMajor )
|
||||
{
|
||||
if( Uplo == CblasUpper ) UL='U';
|
||||
|
||||
if( Uplo == CblasUpper) UL='U';
|
||||
else if ( Uplo == CblasLower ) UL='L';
|
||||
else
|
||||
{
|
||||
@@ -54,6 +87,7 @@ void cblas_zgemmt(enum CBLAS_ORDER Order, enum CBLAS_UPLO Uplo,
|
||||
RowMajorStrg = 0;
|
||||
return;
|
||||
}
|
||||
|
||||
if(TransA == CblasTrans) TA='T';
|
||||
else if ( TransA == CblasConjTrans ) TA='C';
|
||||
else if ( TransA == CblasNoTrans ) TA='N';
|
||||
@@ -77,20 +111,21 @@ void cblas_zgemmt(enum CBLAS_ORDER Order, enum CBLAS_UPLO Uplo,
|
||||
}
|
||||
|
||||
#ifdef F77_CHAR
|
||||
F77_UL = C2F_CHAR(&UL);
|
||||
F77_TA = C2F_CHAR(&TA);
|
||||
F77_TB = C2F_CHAR(&TB);
|
||||
#endif
|
||||
|
||||
F77_zgemmt(F77_UL, F77_TA, F77_TB, &F77_N, &F77_K, (dcomplex*)alpha, (dcomplex*)A,
|
||||
&F77_lda, (dcomplex*)B, &F77_ldb, (dcomplex*)beta, (dcomplex*)C, &F77_ldc);
|
||||
F77_zgemmt(F77_UL, F77_TA, F77_TB, &F77_M, &F77_K, (dcomplex*)alpha, (dcomplex*)A,
|
||||
&F77_lda, (dcomplex*)B, &F77_ldb, (dcomplex*)beta, (dcomplex*)C, &F77_ldc);
|
||||
} else if (Order == CblasRowMajor)
|
||||
{
|
||||
RowMajorStrg = 1;
|
||||
/* In case of row major order,
|
||||
* Swap A & B and induce transpose to C
|
||||
*/
|
||||
if( Uplo == CblasUpper ) UL='L';
|
||||
else if( Uplo == CblasLower ) UL='U';
|
||||
if( Uplo == CblasUpper) UL='L';
|
||||
else if ( Uplo == CblasLower ) UL='U';
|
||||
else
|
||||
{
|
||||
cblas_xerbla(2, "cblas_zgemmt","Illegal Uplo setting, %d\n", Uplo);
|
||||
@@ -98,6 +133,7 @@ void cblas_zgemmt(enum CBLAS_ORDER Order, enum CBLAS_UPLO Uplo,
|
||||
RowMajorStrg = 0;
|
||||
return;
|
||||
}
|
||||
|
||||
if(TransA == CblasTrans) TB='T';
|
||||
else if ( TransA == CblasConjTrans ) TB='C';
|
||||
else if ( TransA == CblasNoTrans ) TB='N';
|
||||
@@ -119,11 +155,12 @@ void cblas_zgemmt(enum CBLAS_ORDER Order, enum CBLAS_UPLO Uplo,
|
||||
return;
|
||||
}
|
||||
#ifdef F77_CHAR
|
||||
F77_UL = C2F_CHAR(&UL);
|
||||
F77_TA = C2F_CHAR(&TA);
|
||||
F77_TB = C2F_CHAR(&TB);
|
||||
#endif
|
||||
|
||||
F77_zgemmt(F77_UL, F77_TA, F77_TB, &F77_N, &F77_K, (dcomplex*)alpha, (dcomplex*)B,
|
||||
F77_zgemmt(F77_UL, F77_TA, F77_TB, &F77_M, &F77_K, (dcomplex*)alpha, (dcomplex*)B,
|
||||
&F77_ldb, (dcomplex*)A, &F77_lda, (dcomplex*)beta, (dcomplex*)C, &F77_ldc);
|
||||
}
|
||||
else cblas_xerbla(1, "cblas_zgemmt", "Illegal Order setting, %d\n", Order);
|
||||
@@ -131,4 +168,17 @@ void cblas_zgemmt(enum CBLAS_ORDER Order, enum CBLAS_UPLO Uplo,
|
||||
RowMajorStrg = 0;
|
||||
return;
|
||||
}
|
||||
|
||||
void cblas_zgemmtr(enum CBLAS_ORDER Order, enum CBLAS_UPLO Uplo,
|
||||
enum CBLAS_TRANSPOSE TransA,
|
||||
enum CBLAS_TRANSPOSE TransB, f77_int M, f77_int K,
|
||||
const void* alpha, const void *A,
|
||||
f77_int lda, const void *B, f77_int ldb,
|
||||
const void* beta, void *C, f77_int ldc)
|
||||
#ifdef BLIS_OS_OSX
|
||||
{ cblas_zgemmt(Order, Uplo, TransA, TransB, M, K, alpha, A, lda, B, ldb, beta, C, ldc); }
|
||||
#else
|
||||
__attribute__((alias("cblas_zgemmt")));
|
||||
#endif
|
||||
|
||||
#endif
|
||||
@@ -4,7 +4,7 @@
|
||||
An object-based framework for developing high-performance BLAS-like
|
||||
libraries.
|
||||
|
||||
Copyright (C) 2020 - 2023, Advanced Micro Devices, Inc. All rights reserved.
|
||||
Copyright (C) 2020 - 2025, Advanced Micro Devices, Inc. All rights reserved.
|
||||
|
||||
Redistribution and use in source and binary forms, with or without
|
||||
modification, are permitted provided that the following conditions are
|
||||
@@ -168,6 +168,24 @@ void PASTEF77(ch,blasname) \
|
||||
{ \
|
||||
GEMMT_BLIS_IMPL(ch,blasname) \
|
||||
} \
|
||||
) \
|
||||
IF_BLIS_ENABLE_BLAS(\
|
||||
void PASTEF77(ch,blasname ## r) \
|
||||
( \
|
||||
const f77_char* uploc, \
|
||||
const f77_char* transa, \
|
||||
const f77_char* transb, \
|
||||
const f77_int* n, \
|
||||
const f77_int* k, \
|
||||
const ftype* alpha, \
|
||||
const ftype* a, const f77_int* lda, \
|
||||
const ftype* b, const f77_int* ldb, \
|
||||
const ftype* beta, \
|
||||
ftype* c, const f77_int* ldc \
|
||||
) \
|
||||
{ \
|
||||
GEMMT_BLIS_IMPL(ch,blasname) \
|
||||
} \
|
||||
)
|
||||
|
||||
#else
|
||||
@@ -301,6 +319,24 @@ void PASTEF77(ch,blasname) \
|
||||
{ \
|
||||
GEMMT_BLIS_IMPL(ch,blasname) \
|
||||
} \
|
||||
) \
|
||||
IF_BLIS_ENABLE_BLAS(\
|
||||
void PASTEF77(ch,blasname ## r) \
|
||||
( \
|
||||
const f77_char* uploc, \
|
||||
const f77_char* transa, \
|
||||
const f77_char* transb, \
|
||||
const f77_int* n, \
|
||||
const f77_int* k, \
|
||||
const ftype* alpha, \
|
||||
const ftype* a, const f77_int* lda, \
|
||||
const ftype* b, const f77_int* ldb, \
|
||||
const ftype* beta, \
|
||||
ftype* c, const f77_int* ldc \
|
||||
) \
|
||||
{ \
|
||||
GEMMT_BLIS_IMPL(ch,blasname) \
|
||||
} \
|
||||
)
|
||||
|
||||
#endif
|
||||
@@ -4,7 +4,7 @@
|
||||
An object-based framework for developing high-performance BLAS-like
|
||||
libraries.
|
||||
|
||||
Copyright (C) 2020 - 2023, Advanced Micro Devices, Inc. All rights reserved.
|
||||
Copyright (C) 2020 - 2025, Advanced Micro Devices, Inc. All rights reserved.
|
||||
|
||||
Redistribution and use in source and binary forms, with or without
|
||||
modification, are permitted provided that the following conditions are
|
||||
@@ -69,3 +69,4 @@ BLIS_EXPORT_BLAS void PASTEF77S(ch,blasname) \
|
||||
);
|
||||
|
||||
INSERT_GENTPROT_BLAS( gemmt )
|
||||
INSERT_GENTPROT_BLAS( gemmtr )
|
||||
Reference in New Issue
Block a user