Altifigence Academy
AI 硬件免费 · 高级

RTL 设计:CNN 加速器

先学习卷积索引与整数数值约定,再学习流式窗口、PE 映射和分块。验证可运行参考及小型推理通路,同时区分数值、调度估计与流量。

CNN 推理卷积与量化流式窗口PE 与分块黄金模型验证
我的学习

你将学到什么

  • 计算卷积形状与索引,包括步幅、填充、膨胀和通道
  • 规定定点单位、比例、零点、累加器位宽、舍入和饱和
  • 将直接卷积与 im2col 黄金模型比较
  • 用行缓冲及传送接收生成窗口,并在暂停时保持状态
  • 计算 PE 复用、分块存储、流量和调度假设
  • 报告小型推理通路的数值结果与证据限制

开始之前

浏览器练习使用教学模型,不会编译或运行 HDL。如需单独运行提供的源代码,请遵循适用于您操作系统的 Digital Design Studio 指南,并在操作要求时登录。

安装与首次启动 ↗ · 下载 ↗

课程大纲

  1. 推理约定
    • 推理与训练概念

      如果仅将输出通道从三个增加到六个,MAC 次数和已存储偏置的数量如何变化?

    • 卷积与互相关概念

      输入窗口 [1,2;4,5] 与卷积核 [1,0;0,-1] 的互相关结果和反转卷积核后的结果分别是多少?

    • 形状、步幅、填充与膨胀概念

      H=7、R=3、步幅 2、顶部填充 0、底部填充 1、膨胀率 2 时,计算 Ho 以及 h=1、r=2 对应的输入坐标。

    • 检查:形状与 MAC 次数测验

      N=1、C=2、H=W=5、M=3,使用 3×3 卷积核、步幅 2、四边填充均为一、膨胀率一。输出形状和 MAC 次数是多少?

  2. 数值约定
    • 定点数据位与单位概念

      在 F=4 下将 0.5 与 −1.25 相乘,再加入 F=8 下的偏置 0.25。累加器编码和真实值分别是多少?

    • 比例因子与零点概念

      sx=0.25、zx=128 时,填充编码和 q=132 的真实值是多少?sw=0.5 时,哪个偏置编码表示 0.75?

    • 累加器位宽、舍入与饱和概念

      十八位有符号数是否足以保存九个有符号 int8 乘积之和,且偏置为零?

    • 实验:执行量化约定实验

      使用相同的 uint8 设置量化 −40。编码和反量化值是多少?应添加哪项断言?

  3. 参考算子
    • 直接卷积参考概念

      输入 [2,3]、权重 [4,−1]、偏置为一时,如果每次输入通道迭代都加一次偏置,会得到什么错误结果?

    • im2col 与矩阵乘法概念

      H=W=4、C=1,使用无填充的 3×3 卷积核时,计算原始输入元素数、P、K 和展开窗口元素数。

    • 连接 ReLU 与最大池化概念

      uint8 输出零点为 100 时,对 [98,103;101,97] 应用 ReLU 和 2×2 最大池化。

    • 检查:输出处理顺序测验

      对累加器 [−1,2;3,−4] 依次应用乘数 0.5、zy=0、最近偶数舍入、int8 饱和、ReLU 和 2×2 最大池化。最终编码是多少?

  4. 流式窗口生成
    • 行缓冲与 3×3 窗口概念

      W=8、H=6 时,计算存储槽数、首个有效的已接收输入索引和窗口总数。

    • Ready/valid 与停顿状态概念

      输出级保持 A,out_ready=0,同时输入 B 有效。下一个时钟沿,该级和生产方必须怎样处理?

    • 实验:暂停后仍保持正确的窗口实验

      如果改为暂停周期零、一、二,且最终接收全部输入,窗口值或数量会改变吗?总周期数是多少?

    • 检查:首个窗口时序测验

      4×4、宽度四、无填充的 3×3 生成器在前四周期不接收输入,之后每周期接收一个像素。首个窗口的已接收输入索引和实际周期分别是多少?两者都从零计数。

  5. 映射到 PE 与存储器
    • PE、数据流与 MAC 复用概念

      将 P=3、M=2、K=8 映射到四个输出驻留型 PE。不计写入时,MAC 周期数和有效 MAC 槽利用率是多少?

    • 分块、重叠边缘与部分和概念

      Th=Tw=2、Tc=1、Tm=2,使用 3×3 卷积核、步幅二、膨胀率一时,计算单缓冲输入/权重/32 位和/偏置字节数。

    • 带宽与计算界限概念

      1152 次 MAC、224 字节,使用八个 PE,但带宽仍为 0.5 字节/周期。完全重叠时的下界是多少?

    • 调度、尾部与双缓冲概念

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

  6. 验证与可测量的综合项目
    • 黄金模型与故障分类概念

      参考 [37,47;67,77] 与 [38,48;68,78] 不同。应先检查什么,记录什么?

    • 实验:检验边界情况实验

      在填充测试数据中,将所有卷积核权重替换为一。首个输出是多少?为什么只测试中心不够?

    • 综合项目:小型推理通路与报告实验

      保持 K=9、四个输出、每个输出一个额外周期,但使用三个 PE。模型总周期数和仅 MAC 槽利用率是多少?

    • 最终检查:声明与证据测验

      综合项目的 Node 运行验证了数值一致、36 次 MAC、24 周期调度模型和 90% 的 MAC 槽使用率。哪项完成声明准确?

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