当前位置:网站首页>记忆 lda LDA in blas level-3 SGEMM cublasGemmex cubulasSgemm
记忆 lda LDA in blas level-3 SGEMM cublasGemmex cubulasSgemm
2022-07-17 10:13:00 【Eloudy】
subroutine sgemm ( character TRANSA,
character TRANSB,
integer M,
integer N,
integer K,
real ALPHA,
real, dimension(lda,*) A,
integer LDA,
real, dimension(ldb,*) B,
integer LDB,
real BETA,
real, dimension(ldc,*) C,
integer LDC
)
/***************************************************************************
Purpose:
SGEMM performs one of the matrix-matrix operations
C := alpha*op( A )*op( B ) + beta*C,
where op( X ) is one of
op( X ) = X or op( X ) = X**T,
alpha and beta are scalars, and A, B and C are matrices, with op( A )
an m by k matrix, op( B ) a k by n matrix and C an m by n matrix.
TRANSA
TRANSA is CHARACTER*1
On entry, TRANSA specifies the form of op( A ) to be used in
the matrix multiplication as follows:
TRANSA = 'N' or 'n', op( A ) = A.
TRANSA = 'T' or 't', op( A ) = A**T.
TRANSA = 'C' or 'c', op( A ) = A**T.
[in] TRANSB
TRANSB is CHARACTER*1
On entry, TRANSB specifies the form of op( B ) to be used in
the matrix multiplication as follows:
TRANSB = 'N' or 'n', op( B ) = B.
TRANSB = 'T' or 't', op( B ) = B**T.
TRANSB = 'C' or 'c', op( B ) = B**T.
[in] M
M is INTEGER
On entry, M specifies the number of rows of the matrix
op( A ) and of the matrix C. M must be at least zero.
[in] N
N is INTEGER
On entry, N specifies the number of columns of the matrix
op( B ) and the number of columns of the matrix C. N must be
at least zero.
[in] K
K is INTEGER
On entry, K specifies the number of columns of the matrix
op( A ) and the number of rows of the matrix op( B ). K must
be at least zero.
[in] ALPHA
ALPHA is REAL
On entry, ALPHA specifies the scalar alpha.
[in] A
A is REAL array, dimension ( LDA, ka ), where ka is
k when TRANSA = 'N' or 'n', and is m otherwise.
Before entry with TRANSA = 'N' or 'n', the leading m by k
part of the array A must contain the matrix A, otherwise
the leading k by m part of the array A must contain the
matrix A.
[in] LDA
LDA is INTEGER
On entry, LDA specifies the first dimension of A as declared
in the calling (sub) program. When TRANSA = 'N' or 'n' then
LDA must be at least max( 1, m ), otherwise LDA must be at
least max( 1, k ).
[in] B
B is REAL array, dimension ( LDB, kb ), where kb is
n when TRANSB = 'N' or 'n', and is k otherwise.
Before entry with TRANSB = 'N' or 'n', the leading k by n
part of the array B must contain the matrix B, otherwise
the leading n by k part of the array B must contain the
matrix B.
[in] LDB
LDB is INTEGER
On entry, LDB specifies the first dimension of B as declared
in the calling (sub) program. When TRANSB = 'N' or 'n' then
LDB must be at least max( 1, k ), otherwise LDB must be at
least max( 1, n ).
[in] BETA
BETA is REAL
On entry, BETA specifies the scalar beta. When BETA is
supplied as zero then C need not be set on input.
[in,out] C
C is REAL array, dimension ( LDC, N )
Before entry, the leading m by n part of the array C must
contain the matrix C, except when beta is zero, in which
case C need not be set on entry.
On exit, the array C is overwritten by the m by n matrix
( alpha*op( A )*op( B ) + beta*C ).
[in] LDC
LDC is INTEGER
On entry, LDC specifies the first dimension of C as declared
in the calling (sub) program. LDC must be at least
max( 1, m ).
*****************************************************************************/| M | M is INTEGER
On entry, M specifies the number of rows of the matrix
op( A ) and of the matrix C. M must be at least zero. |
| LDA | LDA is INTEGER
On entry, LDA specifies the first dimension of A as declared
in the calling (sub) program. When TRANSA = 'N' or 'n' then
LDA must be at least max( 1, m ), otherwise LDA must be at
least max( 1, k ). |
如果A的op是transA=N,那么 lda >= m; 加上无效数据,总数据量 = ( lda * K ) 个元素.
如果A的op是TransA=T,那么一维数组 A 中最初存储的是以 lda >= K 为列长的数据,
总数据量 = ( lda * m ) 个元素;
所以,需要先将A转置,得到 A_t = T(A)
若:
C(mxn) = T(A(kxm)) * T(B(nxk))
则:
lda >=k
ldb >= n
边栏推荐
- 实用工具系列 - Xshell安装下载与使用
- SharePoint接入简要笔记
- Line Flow Based Simultaneous Localization and Mapping
- uniapp仓库管理系统源码
- 认真工作后,发现周围混事的真多
- Microservice splitting for stand-alone projects
- Programming in the novel [serial 11] the moon bends in the yuan universe
- C语言基础篇 —— 2-2 const关键字与指针
- Anycontrol demo demo demo
- Markdown(5):锚链接
猜你喜欢

How is MySQL data stored on disk?

Simple third-party component log desensitization

Markdown(5):锚链接

Uniapp warehouse management system source code

Target detection model size calculation, model complexity (parameter conversion formula)

SSM implementation of one-to-one query detailed tutorial (1)

Yanrong technology was selected as Beijing's "specialized and innovative" in 2022 to lead hybrid cloud file storage

Shell notes

Scope and lifecycle of beans

Express
随机推荐
[paper notes] visual detection and capture method based on deep learning
[Hongke] lidar safety system: making the world safer
2022年夏令营难忘的一天
Block 的分类
565. 数组嵌套
如何在docker里搭建自己的云数据库
Microservice splitting for stand-alone projects
【性能优化方法论系列】六、总结
对ogg用户进行加密
简易的第三方组件日志脱敏
[paper notes] Research on end positioning of grab manipulator based on multi-sensor data fusion
Understanding of user / Account / Account
Encapsulation API, request interception, response interception, authentication timeliness
MySQL view
L2-029 independent happiness
Log desensitization - Reference
案例分享 | 基于Linkis+DSS构建合合信息一站式数据开发平台
C——指针
SDL图像显示
SharePoint access brief notes