FPGA 算力芯片杂谈(续)
FPGA 算力芯片杂谈(续)
滤波器缓存
可以使用双缓冲区,其中一个缓冲区存储当前卷积的权重,而另一个缓冲区用于预取下一个卷积的权重,以提高并发性。

低精度
作为AI硬件设计的普遍趋势,供应商正在探索在推理中使用具有相同范围覆盖的低精度数据,例如下面的FP11将具有FP16相同的范围,但由于尾数较小,精度较低。在FPGA中用于推理的数据类型是可配置的,并且FPGA在创建不同数据大小的算术电路方面提供了很大的灵活性。

但是Winograd在40多年前解决了一个类似的问题。假设我们有两种预处理方法,将4×4数据和3×3滤波器分别转换为两个4×4矩阵(左侧下面的前两行):
然后我们将卷积应用于这两个转换矩阵。由于两者大小相同,卷积只需要进行16次乘法。最后,我们执行后处理转换,将其转换回2×2矩阵。结果表明,产生相同的卷积结果存在这样的预处理和后处理转换。更好的消息是,这些转换只涉及简单的加减运算,而不涉及乘法。因此,新的Winograd变换可以节省大量计算。
让我们用1-D数据和滤波器来来证明这个想法。
其中
数据⊗滤波器的原始卷积方法涉及6次乘法。我们将合并预处理、卷积、后处理步骤,并展示它可以从上面计算m₁、m₂、m₃和m₄中推导出来。使用这个Winograd变换,我们只需要进行4次乘法。
为了完整起见,这里列出了所需的数学变换。可以使用简单的算术运算来完成预处理变换Gg、Bᵀ和后处理变换Aᵀ。
其中,
在FPGA中,可以在硬件中应用Winograd变换来加速卷积。
在全连接层中进行批量数据并行执行
在全连接网络中,为了增加并发性并减少权重的负载,我们可以同时处理一批图像(来自多个视频通道)。
人工智能芯片与自动驾驶
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 全程不用写代码,我用AI程序员写了一个飞机大战
· DeepSeek 开源周回顾「GitHub 热点速览」
· 记一次.NET内存居高不下排查解决与启示
· MongoDB 8.0这个新功能碉堡了,比商业数据库还牛
· .NET10 - 预览版1新功能体验(一)
2023-07-25 2023年半导体资本流向杂谈
2022-07-25 MLIR原理与应用技术杂谈
2021-07-25 芯片产品介绍