矩阵乘法的优化
答案:2 悬赏:0 手机版
解决时间 2021-04-07 11:18
- 提问者网友:蓝莓格格巫
- 2021-04-06 13:18
比如说两个矩阵A和B相乘,A存入一级cache,B存入二级cache,但在做乘法的时候存在重复copyB以至于二级CACHE不够用的情况,怎么解决这个问题,也就是怎么进行优化
最佳答案
- 五星知识达人网友:行路难
- 2020-12-17 08:32
如果A确实能完全存入一级缓存,那么把B按列分块,一块一块乘就行了。
一般来讲矩阵乘法并不是像你说的那样做的,而要把A,B,C都分块,对于每一级存贮器而言,应该至少分成5个部分来管理。比如说,A的某一块常驻于这一级存贮,然后余下的部分分为四块:
(1)上一步已经运算完成的C块——写入低一级存贮
(2)下一步将参与运算的B块——从低一级存贮读入
(3),(4)正在参与运算的B和C块
然后对于这一级存贮器上的小矩阵块运算C=AB仍然按照同样的管理方式递交给上一级存贮来计算。一般来讲A块选得略小一点,具体的分配方式取决于运算和I/O的速度,尽量保持计算单元忙碌。
一般来讲矩阵乘法并不是像你说的那样做的,而要把A,B,C都分块,对于每一级存贮器而言,应该至少分成5个部分来管理。比如说,A的某一块常驻于这一级存贮,然后余下的部分分为四块:
(1)上一步已经运算完成的C块——写入低一级存贮
(2)下一步将参与运算的B块——从低一级存贮读入
(3),(4)正在参与运算的B和C块
然后对于这一级存贮器上的小矩阵块运算C=AB仍然按照同样的管理方式递交给上一级存贮来计算。一般来讲A块选得略小一点,具体的分配方式取决于运算和I/O的速度,尽量保持计算单元忙碌。
全部回答
- 1楼网友:妄饮晩冬酒
- 2019-05-01 06:24
矩阵 相乘 不妨记成 纵横相乘 课本 讲的是 m*n矩阵 可以 和 n*s矩阵相乘 我们 可以用 2*3 和 3*4 做例子 那么 就是 a b c d e f * a b c d e f g h i j k l 分别找到 各自相等的 行 列数 第一个三列 第二个三行 那么 就是 相等的遇上相等的 就是 行乘以列 第一个 第一行 乘以 第二个第一列 (这里的乘指的是交叉相乘 就是 aa+be+ci,其余类推)写成新矩阵的第一个元素 那么 依次 还可以 写 乘以 第二列 第三列 等等 写成 2 3 4 个元素 然后 换第二行 也可以按上述步骤。不过 第二行的 那么 就要写在新矩阵的第二行,依此类推即可 这样 得到的 新矩阵 就是 所谓的 2*4 矩阵
我要举报
如以上问答信息为低俗、色情、不良、暴力、侵权、涉及违法等信息,可以点下面链接进行举报!
大家都在看
推荐资讯