首页 > 其他分享 >张量矩阵乘法分块乘法概述

张量矩阵乘法分块乘法概述

时间:2024-10-07 11:49:11浏览次数:7  
标签:分块 int 矩阵 张量 概述 乘法

张量矩阵乘法分块乘法概述 介绍一下矩阵计算相关的内容, 从最基本的算法,到Cutlass这些线性代数模版库, 特别是Layout代数相关的内容,再逐渐细化到一些硬件实现访存优化和一些算子融合。 6.3.1 GEMM概述 1. GEMM定义 对于一个矩阵乘法, 定义如下:

 (6-1)

一个矩阵乘法定义,如图6-26所示。 图6-26 一个矩阵乘法定义图示 2. 内积形式 因此,可以构建一个最简单的算法。 for (int i = 0; i < M; ++i)
    for (int j = 0; j < N; ++j)
        for (int k = 0; k < K; ++k) 
            C[i][j] += A[i][k] * B[k][j]; 这种乘法是也被称为矩阵乘法的内积形式。

   (6-2)

可以注意整个过程中随着循环, B矩阵的乘法空间局部性很差,存在多次访问, 因此尽量需要缓存一些数据来避免缓存颠簸(cache thrashing)。 3. 外积形式 换一种思路, 如果按照如下方法构建乘法 其中,

     (6-3)

即可以把K维度放在最外面, 这样A和B矩阵,都可以按照列和行整个一块的读取。 for (int k = 0; k < K; ++k)   //外环处的dim-k
    //C_i的外积
    for (int i = 0; i < M; ++i)
        for (int j = 0; j < N; ++j) 
            C[i][j] += A[i][k] * B[k][j];

标签:分块,int,矩阵,张量,概述,乘法
From: https://www.cnblogs.com/wujianming-110117/p/18449875

相关文章

  • 矩阵分块乘法
    矩阵分块乘法通常可以把一个矩阵分成多个块,例如, (6-4)可以将其划分为4个块:   (6-5)   (6-6)分块后的矩阵记为:(6-7)分块矩阵乘法如下所示:(6-7)划分不一定需要完全等间隔,只需要满足子矩阵乘法规则即可,如图6-27所示。图6-27子矩阵划分不一定需要完全......
  • 【py】python实现矩阵的加、减、点乘、乘法
    好的,我将使用Python语言来解决这个问题。我们将使用NumPy库来创建数组和进行矩阵运算。以下是完整的代码:importnumpyasnp#(1)创建一个3x4的二维数组test1,数据值要求从0~1之间test1=np.random.rand(3,4)#(2)创建12个服从均匀分布的随机数,尺寸为3x4的二维数组t......
  • [Violet] 蒲公英(分块)
    区间众数要求即有次数又要数字最小#include<bits/stdc++.h>usingnamespacestd;#definexfirst#defineysecondtypedefpair<int,int>PII;typedeflonglongll;typedefunsignedlonglongull;typedefunsignedintuint;typedefvector<string>VS;typedef......
  • 【状态估计】健康状态 SOH采用平均加权最小二乘法(AWTLS)进行估计,并对比了加权最小二乘
         ......
  • 关于最小二乘法
    最小二乘法的核心思想简单而优雅:我们希望找到一条最佳的曲线,使其尽可能贴近所有的数据点。想象一下,当你在画布上描绘一条线,目标是让这条线与点的距离最小。数学上,这可以表示为:在这个公式中,yi​是你观察到的值,f(xi) 则是你预测的值。通过调整模型的参数,我们努力去缩小这个误......
  • 理解为什么要用乘法逆元
    我知道用小费马定理求乘法逆元,但是有的时候会忘记为什么要使用它ap−2......
  • ShiftAddAug:基于乘法算子训练的最新无乘法网络方案 | CVPR'24
    不包含乘法的运算符,如移位和加法,因其与硬件的兼容性而日益受到重视。然而,采用这些运算符的神经网络(NNs)通常表现出比具有相同结构的传统NNs更低的准确性。ShiftAddAug利用成本较高的乘法来增强高效但功能较弱的无乘法运算符,从而在没有任何推理开销的情况下提高性能。将一个ShiftAd......
  • 【OJ题解-1】稀疏矩阵乘法
    一、试题题面计算两个稀疏矩阵相乘,输出相乘的结果【输入输出约定】输入:第一行输入三个正整数p、q、r,表示p×q和q×r的两个矩阵相乘;(约定0<p,q,r≤1000)然后是第一个矩阵的输入,首先是一个整数m,表示矩阵一有m个非零元素;然后是m行,每行三个整数i,j,d,表示第i行,第j列的元素为d(约定......
  • 如何将相同的矩阵与张量的每一行相乘?
    我想在没有循环的情况下在两次(X和Y)旋转后找到立方体的坐标。立方体坐标存储为顶点:cube_vertices=np.array([[0,0,0],[1,0,0],[1,1,0],[0,1,0],......
  • 日新月异 PyTorch - pytorch 基础: 张量的基础操作
    源码https://github.com/webabcd/PytorchDemo作者webabcd日新月异PyTorch-pytorch基础:张量的基础操作示例如下:basic\demo01.py#本例用于演示torch张量的基础操作,其操作与numpy基本相同(注:看本例之前先要把numpy弄懂)#torch可以支持在gpu上运算,而numpy......