早教吧 育儿知识 作业答案 考试题库 百科 知识分享

矩阵乘法的优化比如说两个矩阵A和B相乘,A存入一级cache,B存入二级cache,但在做乘法的时候存在重复copyB以至于二级CACHE不够用的情况,怎么解决这个问题,也就是怎么进行优化

题目详情
矩阵乘法的优化
比如说两个矩阵A和B相乘,A存入一级cache,B存入二级cache,但在做乘法的时候存在重复copyB以至于二级CACHE不够用的情况,怎么解决这个问题,也就是怎么进行优化
▼优质解答
答案和解析
如果A确实能完全存入一级缓存,那么把B按列分块,一块一块乘就行了.
一般来讲矩阵乘法并不是像你说的那样做的,而要把A,B,C都分块,对于每一级存贮器而言,应该至少分成5个部分来管理.比如说,A的某一块常驻于这一级存贮,然后余下的部分分为四块:
(1)上一步已经运算完成的C块——写入低一级存贮
(2)下一步将参与运算的B块——从低一级存贮读入
(3),(4)正在参与运算的B和C块
然后对于这一级存贮器上的小矩阵块运算C=AB仍然按照同样的管理方式递交给上一级存贮来计算.一般来讲A块选得略小一点,具体的分配方式取决于运算和I/O的速度,尽量保持计算单元忙碌.