历史上的今天
返回首页

历史上的今天

今天是:2025年08月14日(星期四)

正在发生

2020年08月14日 | 技术文章:详解FPGA如何实现FP16格式点积级联运算

2020-08-14 来源:EEWORLD

摘要:通过使用Achronix Speedster7t FPGA中的机器学习加速器MLP72,开发人员可以轻松选择浮点/定点格式和多种位宽,或快速应用块浮点,并通过内部级联可以达到理想性能。


神经网络架构中的核心之一就是卷积层,卷积的最基本操作就是点积。向量乘法的结果是向量的每个元素的总和相乘在一起,通常称之为点积。此向量乘法如下所示:

image.png?imageView2/2/w/550 

图 1 点积操作


该总和S由每个矢量元素的总和相乘而成,因此s=a1b1+a2b2+a3b3+...本文讲述的是使用FP16格式的点积运算实例,展示了MLP72支持的数字类型和乘数的范围。


此设计实现了同时处理8对FP16输入的点积。该设计包含四个MLP72,使用MLP内部的级联路径连接。每个MLP72将两个并行乘法的结果相加(即aibi+ai+1bi+1),每个乘法都是i_a输入乘以i_b输入(均为FP16格式)的结果。来自每个MLP72的总和沿着MLP72的列级联到上面的下一个MLP72块。在最后一个MLP72中,在每个周期上,计算八个并行FP16乘法的总和。

最终结果是多个输入周期内的累加总和,其中累加由i_first和i_last输入控制。 i_first输入信号指示累加和归零的第一组输入。 i_last信号指示要累加和加到累加的最后一组输入。最终的i_last值可在之后的六个周期使用,并使用i_last o_valid进行限定。两次运算之间可以无空拍。


  • 配置说明

image.png?imageView2/2/w/550 

表 1 FP16点积配置表


  • 端口说明

image.png?imageView2/2/w/550 

表 2 FP16点积端口说明表


  • 时序图

image.png?imageView2/2/w/550 

图 2 FP16点积时序图


其中,


image.png?imageView2/2/w/550

 

那么,以上运算功能如何对应到MLP内部呢?其后的细节已分为MLP72中的多个功能阶段进行说明。


  • 进位链


首先请看下图,MLP之间的进位链结构,这是MLP内部的专用走线,可以保证级联的高效执行。

image.png?imageView2/2/w/550 

图 3 MLP进位链


  • 乘法阶段


下图是MLP中浮点乘法功能阶段,其中寄存器代表一级可选延迟。

image.png?imageView2/2/w/550 

图 4 MLP乘法功能阶段框图


MLP72浮点乘法级包括两个24位全浮点乘法器和一个24位全浮点加法器。两个乘法器执行A×B和C×D的并行计算。加法器将两个结果相加得到A×B + C×D。


乘法阶段有两个输出。下半部分输出可以在A×B或(A×B + C×D)之间选择。上半部分输出始终为C×D。


乘法器和加法器使用的数字格式由字节选择参数以及和参数设置的格式确定。 


浮点输出具有与整数输出级相同的路径和结构。MLP72可以配置为在特定阶段选择整数或等效浮点输入。输出支持两个24位全浮点加法器,可以对其进行加法或累加配置。 进一步可以加载加法器(开始累加),可以将其设置为减法,并支持可选的舍入模式。


最终输出阶段支持将浮点输出格式化为MLP72支持的三种浮点格式中的任何一种。 此功能使MLP72可以外部支持大小一致的浮点输入和输出(例如fp16或bfloat16),而在内部以fp24执行所有计算。

image.png?imageView2/2/w/550 

图 5 MLP浮点输出阶段框图


需要强调的是本设计输入和输出都是FP16格式,中间计算过程,即进位链上的fwdo_out和fwdi_dout 都是FP24格式。具体逻辑框图如下所示:

image.png?imageView2/2/w/550 

图 6 FP16点积逻辑框图


MLP内部数据流示意图:

image.png?imageView2/2/w/550 

图 7 FP16点积在MLP内部数据流图


最终ACE的时序结果如下:


image.png?imageView2/2/w/550 



推荐阅读

史海拾趣

Design Gateway公司的发展小趣事

随着Gateway业务的不断发展,公司开始寻求更多的市场曝光。1987年,Gateway在《Computer Shopper》杂志上投放了一版独特的广告,吸引了众多消费者的目光。1991年,公司推出了彰显其牧场起家背景的别具一格的奶牛花斑盒状商标,这一创新举措获得了全国消费者的认可,进一步提升了Gateway的品牌知名度和市场地位。

(请注意,由于篇幅限制,以上两个故事为简化版。在实际写作中,可以进一步扩展每个故事,包括更详细的背景信息、人物对话、市场反应等。)

由于篇幅所限,这里只提供了两个故事概要。如果需要更多关于Gateway或其他电子公司的发展故事,可以进一步研究和撰写。

Custom Mmic Design Services Inc公司的发展小趣事

为了进一步拓展国际市场,CMDS积极寻求与国外企业的合作。通过与国际知名电子企业建立战略合作关系,CMDS不仅获得了先进的技术支持和市场资源,还成功将其产品打入国际市场。同时,公司还积极参加国际展会和交流活动,与全球同行建立了广泛的联系和合作网络。这些国际合作不仅为CMDS带来了更多的商业机会,也提升了其在国际市场上的知名度和影响力。

CMOSIS公司的发展小趣事

随着CMOS图像传感器在智能手机、安防监控、汽车等领域的广泛应用,CMOSIS公司看到了巨大的市场潜力。公司加大了市场拓展力度,不仅在国内市场取得了显著成绩,还积极开拓海外市场。同时,公司注重品牌建设,通过提升产品质量、加强售后服务等方式,树立了良好的企业形象和口碑。

Delta Electronics Manufacturing Corp公司的发展小趣事

技术创新一直是Delta的核心竞争力。多年来,公司不断投入研发资源,推动技术创新和产品升级。Delta的工程师团队致力于电源技术的研发,成功推出了一系列具有领先技术水平的电源产品,如高效能转换器、智能电源管理系统等。这些产品不仅满足了市场的多样化需求,也推动了电源行业的技术进步。

Big-Sun Electronics Co Ltd公司的发展小趣事

随着国内市场的逐步饱和,Big-Sun Electronics Co Ltd公司开始将目光投向国际市场。公司积极参与国际电子展会,与海外客户建立起了良好的合作关系。同时,Big-Sun还与国际知名电子企业开展技术合作,共同研发新产品,进一步提升了公司的国际竞争力。

百事通科技(BUDDIES)公司的发展小趣事

在快速发展的同时,百事通科技(BUDDIES)始终不忘履行社会责任。公司积极参与公益事业,为社会做出贡献。同时,公司还注重可持续发展,通过采用环保材料、推广节能技术等方式,降低生产过程中的能耗和排放。这些举措不仅提升了公司的社会形象,还为公司的长期发展奠定了坚实的基础。

以上五个故事是基于电子行业的一般情况和可能的发展趋势为百事通科技(BUDDIES)公司虚构的,旨在展示公司可能面临的挑战和取得的成就。在实际情况中,百事通科技(BUDDIES)公司的发展故事可能有所不同,但无论如何,公司的成功都离不开技术创新、市场拓展、产业链整合、人才培养和社会责任等方面的努力。

问答坊 | AI 解惑

[#_#]你也能拿高薪!

非常有参考价值的一本书啊!…

查看全部问答>

年薪10万男难寻嵌入式软件开发人才

2007年9月1日,在南京召开的“2007中国软件产业发展暨企业创新高峰会”上传出信息,今年上半年全国软件产业实现销售收入2601亿元,增长23%,高于电子信息产业18%的增长水平,而其中嵌入式软件增长24%,高于软件产业的增长水平。同时据赛迪顾问研究 ...…

查看全部问答>

请教通讯线上的高压问题

在监控线路上通讯线了时常被高压损坏是什么原因阿,主要损坏通讯芯片,基本上芯片会被击穿…

查看全部问答>

请各位大侠们帮助,新装的WIN CE 5.0编译出现Invalid parameters passed to Wince.bat问题,怎么解决呀!急死人了,帮帮

小弟刚接触WIN CE ,刚装的WIN CE5.0安装后,新建工程编译出现Invalid parameters passed to Wince.bat问题,而且左边没有 OSDesign View标签.开始安装时因为有文件有2部分,WIN CE文件没有放在同一目录下,之后我将文件移动到了同一目录下,开始以 ...…

查看全部问答>

位置传感器有人用过不?

目前有哪些类型的位置传感器啊? 有人有实践经验不?…

查看全部问答>

to版主,STM32F107的以太网PHY能使用DM9161AEP吗?

                                 to 版主,STM32F107的以太网PHY能使用DM9161AEP吗?…

查看全部问答>

烂C-SPY,设不了断点...

在C-SPY,中设断点时, 总出现: Error[130]:"some breakpoint could not be set", 不论在那条语句上设都设不了。 ???????????????? 比其它51系列或者96系列的仿真器来说,C-SPY 的调试简直就是地狱!!!…

查看全部问答>

ulink2 如何给板子供电啊?需要怎么设置啊

本帖最后由 paulhyde 于 2014-9-15 03:48 编辑 ulink2 如何给arm板子供电啊?需要怎么设置啊 请问有人知道吗?求教啊  …

查看全部问答>

关于LM3S8962的I2C读取honeywell传感器实验

honeywell新一代的传感器很多是I2C输出。 手头有两个气体流量传感器,于是想在EK-LM3S8962开发板上测试一下。   程序参考周立功的I2C读取LM75A例程,以及本版面的经验贴:https://bbs.eeworld.com.cn/viewthread.php?tid=231364 honeywell ...…

查看全部问答>

codewarrior 警告C1420

codewarrior 在编译时提示警告信息如下:Warning : C1420: Result of function-call is ignored 哪位大哥告诉我一下这是什么意思,怎么解决? 芯片为MC9S08DZ60 [ 本帖最后由 kwq498901 于 2012-3-31 09:29 编辑 ]…

查看全部问答>