CUDA使用笔记(一)矩阵乘法

本文通过一个具体的矩阵乘法案例,详细解释了如何使用CUDA库中的cublasSgemm函数进行矩阵运算。由于GPU中矩阵按列存储,实际计算FT=ET×DT以得到所需的矩阵F。文中明确了cublasSgemm函数参数的含义,如transa、transb、m、n、k、lda、ldb和ldc,并提供了实际调用示例。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

简介

本文介绍cublasSgemm()函数的使用。在c/c++中,通常我们将2维矩阵按行存储为一维数组。但是在显存中,矩阵是按列存储的。因此,我们在实际使用时,对cublasSgemm()中的各个参数的赋值可能会搞不清楚。

本文,以一个具体的矩阵乘法案例为例子,介绍cublasSgemm()函数的使用。

 

 

正文:

我们以下图所示的矩阵运算为例进行讲解。

 

 

因为gpu显存中,矩阵是按列进行存储的。如果我们在gpu中直接计算F=D×E的话,那么将结果矩阵从显存中取出

 

放回内存中时,内存中实际存储的则是FT。

 

 

因此,如果我们能够计算FT=ET× DT,那么我们将结果取回内存时,内存中保存的刚好就是矩阵F。

 

 

基于上述的解释,我们在gpu中实际计算的是FT=ET× DT,取回内存后,刚好是我们需要的结果F。

 

 

好的,下面我们说一下,怎么使用cublasSgemm()函数计算FT=ET× DT 。

 

 

cublasSgemm()函数的输入参数如下所示

 

cublasStatus_t cublasSgemm (
cublasHandle_t handle, 
cublasOperation_t transa,
cublas
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值