[发明专利]一种支持两种数据格式切换的浮点数乘加计算装置在审
申请号: | 202210832297.2 | 申请日: | 2022-07-15 |
公开(公告)号: | CN115034163A | 公开(公告)日: | 2022-09-09 |
发明(设计)人: | 庄铭泳;郭子超;廖鑫辉;周剑扬 | 申请(专利权)人: | 厦门大学 |
主分类号: | G06F30/32 | 分类号: | G06F30/32;G06F30/27;G06G7/14;G06G7/16;G06N3/04;G06N3/08;G06F115/12 |
代理公司: | 厦门南强之路专利事务所(普通合伙) 35200 | 代理人: | 马应森 |
地址: | 361005 福建*** | 国省代码: | 福建;35 |
权利要求书: | 查看更多 | 说明书: | 查看更多 |
摘要: | |||
搜索关键词: | 一种 支持 种数 格式 切换 浮点 数乘加 计算 装置 | ||
一种支持两种数据格式切换的浮点数乘加计算装置,涉及集成电路设计。包括存储介质、输入计算类型配置、计算类型指示电路、乘法计算电路、加法计算电路;存储介质存储待计算16位数值,输入计算类型配置用于发出用户的float16浮点数或bfloat16浮点数两种计算类型的配置;计算类型指示电路接收计算类型的配置,向乘法、加法计算电路指示目前计算属于哪种计算类型;乘法计算电路按指示的计算类型,从存储介质中获取多个待计算16位数值并进行浮点数乘法计算,输出乘法结果;加法计算电路按指示的计算类型,将乘法结果作为输入相加得到乘法累加结果。提高浮点数乘加计算装置的硬件通用性,提高计算效率,节省硬件资源使用。
技术领域
本发明涉及集成电路设计领域,具体是涉及一种支持两种数据格式切换的浮点数乘加计算装置。
背景技术
浮点数是科学计算任务中大量采用的数据类型。浮点数有多种数据格式,常见的格式有IEEE-754标准中定义的标准32位浮点数(简写为float32浮点数)、标准16位浮点数(简写为float16浮点数);也有谷歌公司提出的brainfloat16位浮点数(简写为bfloat16浮点数)。不同浮点数的区别之处在于位数的多少以及符号位、指数位和尾数位数量不同。图1中展示二进制表示下的float32浮点数的数据格式101、float16浮点数的数据格式102和bfloat16位浮点数的数据格式103。上述各个浮点数格式每一个比特位代表的意义都用字母标出,“S”代表该位为符号位,“E”代表该位为指数位,“M”代表该位为尾数位,每个比特位从低到高按照从右到左的顺序排列,下方数字代表该位是第几个比特位编号。图1中展示的float32浮点数的数据格式101,由1位符号位、8位指数位和23位尾数位构成;float16浮点数的数据格式102由1位符号位、5位指数位和10位尾数位构成;bfloat16位浮点数的数据格式103由1位符号位、8位指数位和7位尾数位构成。运用哪一种类型的浮点数需要根据使用领域的需求与特性来决定。比如按照现有经验,数字信号处理计算(如傅里叶变换等)适用float16浮点数。近几年来,人工智能领域中的神经网络计算有越来越高的需求。神经网络计算由于其自身特性,对浮点数类型有要求。由于计算量大,神经网络计算对浮点数乘加计算的计算效率敏感;而神经网络有较强的鲁棒性,对计算数据的精度要求不高。所以,神经网络计算中使用的浮点数的尾数位宽不需要太多。另外,由于神经网络训练过程中数据的指数范围较大,若使用float16浮点数会有数据溢出的问题。综合上面的神经网络计算的需求和特性,bfloat16位浮点数相比float32浮点数有更少的尾数位宽,相比float16浮点数有更多的指数位宽,更加适合神经网络计算使用。实践中,美国谷歌公司的神经网络专用计算设备TPU使用bfloat16位浮点数作为进行乘加操作的数据类型。
数字信号处理计算和神经网络计算适用不同的浮点数类型进行乘加操作,而数字信号处理与人工智能领域有所交集,所以在一些应用场景中需要实现数字信号处理计算也需要实现神经网络计算。这对集成电路设计提出了挑战。有的浮点数乘加计算装置只能单独支持float16浮点数乘加计算或者单独支持bfloat16浮点数乘加计算,无法同时兼容两种数据类型的计算,缺乏通用性。有些集成电路设计为了兼容多种浮点数格式的计算,在送入集成电路前需要使用软件转换浮点数类型。比如TPU计算前会使用XLA编译器把float32浮点数转换成bfloat16再进行计算。通过软件层面的转换可以实现兼容,但是降低计算效率与便捷性。综合上面的情况可知,设计支持数字信号处理和神经网络计算的浮点数乘加计算装置需要在通用性和效率之间取得均衡且存在挑战性。
发明内容
本发明的目的在于针对现有技术存在的上述问题,提供一种支持两种数据格式切换的浮点数乘加计算装置。用户可以配置浮点数乘加计算装置使用bfloat16浮点数格式进行神经网络计算,也可以配置该装置使用float16浮点数进行数字信号处理计算。本发明使一套浮点数乘加计算装置通过不同的配置即可以复用计算电路用于float16浮点数计算任务或用于bfloat16浮点数计算任务。本发明提高浮点数乘加计算装置的硬件通用性,提高浮点数乘加计算装置在完成神经网络计算这一专用领域计算任务时的计算效率,也节省硬件资源的使用。
该专利技术资料仅供研究查看技术是否侵权等信息,商用须获得专利权人授权。该专利全部权利属于厦门大学,未经厦门大学许可,擅自商用是侵权行为。如果您想购买此专利、获得商业授权和技术合作,请联系【客服】
本文链接:http://www.vipzhuanli.com/pat/books/202210832297.2/2.html,转载请声明来源钻瓜专利网。