Altifigence Academy

20 / 24 · 概念

调度、尾部与双缓冲

K=10、四个输出、三个 PE,每个输出增加一个额外周期时,计算模型周期数和仅 MAC 的利用率。

将下界转化为调度

计算下界假定每个有效 PE 槽都能填满。调度必须安排加载、初始化、MAC、转换、写入和完成。将归约轴分到多个 PE 会产生需要合并的部分和。将输出轴拆分可能避免合并,但在输出尾部留下空闲 PE。应明确并行化的是哪个轴。

归约尾部示例

一个输出需要 K=9 次 MAC,两个 PE 每周期执行两项。它需要 ceil(9/2)=5 个 MAC 周期,最后周期有一个无效槽。四个输出顺序处理,共二十个 MAC 周期和四十个可用槽。三十六次有效 MAC 得到 90% 的 MAC 槽利用率。假定每个输出还有一个合并/写入周期,且不重叠:总计 24 周期。

这项开销是模型假设,不是验证过的 RTL 延迟。实际归约树、依赖和输出端口可能不同。以 24 周期全部 PE 槽为分母,利用率为 36/(2×24)=75%。这个分母不同于仅 MAC 的 90%。综合项目会标明这些假设。

双缓冲重叠示例

假设每个分块需要六个加载周期、十个计算周期和两个写入周期。三个完全串行分块需要 54 周期。如果加载/计算资源独立、输入和权重采用双缓冲、写入不冲突,就先用六周期加载第一个分块,然后计算三个十周期分块,同时预取后续分块。再加最后两个写入周期:共 38 周期。假定较早的写入与后续计算重叠。

如果计算需要四周期,而加载仍需要六周期,加载器就会跟不上。两个缓冲不能创造带宽。画出所有权转换,确保新加载不能覆盖仍在计算的缓冲。如果加载和写入共享总线,应重新计算理想调度。

收到最后输入不表示操作完成。必须排空 MAC、转换、激活、池化,并等待最后结果被接收。明确计数器开始/结束条件。软件估计、RTL 仿真、综合频率和器件测量是不同证据;本课程提供数值执行和明确的调度估计。

单个输出调度
  1. 初始化: 按累加器单位加载偏置一次
  2. 五个 MAC 周期: 两个 PE 处理九个有效项
  3. 合并与存储: 模型中每个输出增加一个周期
  4. 排空: 最后结果被接收后才完成

自己试试

K=10、四个输出、三个 PE,每个输出增加一个额外周期时,计算模型周期数和仅 MAC 的利用率。

阅读解释

每个输出需要四个 MAC 周期。总计 4×(4+1)=20 周期。共有 48 个 MAC 槽和 40 次有效 MAC,利用率为 83.33%。

你的选择适用于此浏览器,可随时在页脚更改。