矩阵分块转置降低 cache miss分析 (Cache Lab PartB)

Lab中给出的cache规格为: s=5, E=1, b=5
矩阵A和B在内存中连续存放。
Lab要求分别对32 * 32 , 64 * 64, 61 * 67的矩阵做转置优化,用到的都是将矩阵分块分别转置的方法。相较于普通转置,为什么分块能够优化cache miss次数?

分块是通过什么来实现优化的 — > 通过减少B一次访问的行数。
最根本的原因在于: Cache不能够一次装满整个矩阵,以最小的矩阵32 * 32而言,是4个cache的大小。如果矩阵大小为正好能够装满cache的16 * 16或更小,除了多定义局部变量(Lab中有限制,最多定义12个),分块也起不到优化的效果。

(1)对于s=5, E=1, b=5 Cache(刚好装16*16矩阵)和 16 * 16矩阵常规转置miss情况(蓝色):
在这里插入图片描述
miss总数 A + B应该为72次
对角线冲突的原因是A和B对角线上的元素会映射到同一个cache行中,会多出两次miss(从内存中取B,再取A)

  • 3
    点赞
  • 7
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值