[发明专利]支持多格式半精度浮点的编译方法在审
申请号: | 202110324723.7 | 申请日: | 2021-03-26 |
公开(公告)号: | CN114217804A | 公开(公告)日: | 2022-03-22 |
发明(设计)人: | 钱宏;管茂林;朱琪;吴伟;杨涛;王飞 | 申请(专利权)人: | 无锡江南计算技术研究所 |
主分类号: | G06F8/41 | 分类号: | G06F8/41 |
代理公司: | 苏州创元专利商标事务所有限公司 32103 | 代理人: | 王健 |
地址: | 214038 江苏*** | 国省代码: | 江苏;32 |
权利要求书: | 查看更多 | 说明书: | 查看更多 |
摘要: | |||
搜索关键词: | 支持 格式 精度 浮点 编译 方法 | ||
本发明公开一种支持多格式半精度浮点的编译方法,包括以下步骤:S1、用户代码使用编译器提供的float16关键字来申明半精度浮点数据类型;S2、用户代码根据需要调用半精度浮点数据格式切换接口进行格式切换;S3、用户代码在切换半精度浮点数据格式后,调用编译器提供的半精度浮点数据转换接口进行数据格式转换;S4、在完成半精度浮点数据格式切换与数据转换后,用户程序在当前半精度浮点格式下进行后续的计算,需要再次切换半精度浮点格式时重复S2、S3。本发明可以在不增加代码编写复杂度的前提下发挥FP16和BF16两种半精度浮点格式的优势,满足应用场景使用半精度浮点加速计算的需求。
技术领域
本发明涉及一种支持多格式半精度浮点的编译方法,属于深度学习技术领域。
背景技术
代码程序可以使用半精度浮点格式来减少内存中移动数据的时间,提升计算速度。半精度浮点格式有FP16和BF16两种格式,这两种格式各有优缺点,BF16格式的指数位比FP16多,小数位比FP16少,因此BF16格式精度低,但是可以表示的数值空间大,而FP16格式精度高,可以表示的数值空间小。英伟达在2002年就提出了FP16半精度浮点格式,BF16半精度浮点格式是由Google Brain团队发明的,用于第三代TPU,如今已被Google、Intel、Arm等许多公司的AI加速器广泛采用。现有的编译器不支持同时使用FP16格式和BF16格式,在同一个程序中要么使用FP16格式,要么使用BF16格式。
双精度和单精度浮点用于计算,半精度更多是为了降低数据传输和存储成本。深度学习促使了人们对半精度浮点数格式的兴趣,通常深度学习算法并不需要64位、甚至32位的浮点数精度,更低的精度可以使在内存中存放更多数据成为可能,并且减少在内存中移动进出数据的时间,低精度浮点数的电路也会更加简单。这些好处结合在一起,带来了明显的计算速度的提升。
CUDA编译器对FP16格式和BF16格式的半精度浮点都进行了支持,使用FP16格式时包含cuda_fp16.h头文件进行编程,使用BF16格式时包含cuda_bf16.h进行编程,但不支持同时使用FP16格式和BF16格式,同一个程序中要么使用FP16格式,要么使用BF16格式。
在人工智能以外的其他计算领域,可能对计算的精度和数值空间都有一定的要求,又想要使用半精度浮点来加速计算,单纯使用FP16格式或BF16格式无法满足应用场景需求。
发明内容
本发明的目的是提供一种支持多格式半精度浮点的编译方法,其可以在不增加代码编写复杂度的前提下发挥FP16和BF16两种半精度浮点格式的优势,满足应用场景使用半精度浮点加速计算的需求。
为达到上述目的,本发明采用的技术方案是:提供一种支持多格式半精度浮点的编译方法,处理器设置浮点控制状态寄存器,用于确定使用FP16格式和BF16格式中的哪种半精度浮点格式来解析寄存器中的数据,处理器还提供半精度浮点数据转换指令,用于处理FP16格式和BF16格式半精度浮点数据间的相互转换;
编译器提供统一的float16关键字用于申明FP16格式和BF16格式的半精度浮点类型,编译器还提供半精度浮点数据格式切换接口用于半精度浮点格式切换,分别为将FP16格式切换为BF16格式的convert_to_bf16()接口和将BF16格式切换为FP16格式的convert_to_fp16()接口,并将接口处理成设置浮点控制状态寄存器的指令;
包括以下步骤:
S1、用户代码使用编译器提供的float16关键字来申明半精度浮点数据类型,默认使用FP16格式,还可根据需要通过-mbf16选项切换为使用BF16格式;
S2、用户代码根据需要调用半精度浮点数据格式切换接口进行格式切换,在需要提高精度时调用convert_to_fp16()接口,在需要大数值空间时调用convert_to_bf16()接口,处理器通过执行设置浮点控制状态寄存器的指令进行半精度浮点数据格式的切换;
该专利技术资料仅供研究查看技术是否侵权等信息,商用须获得专利权人授权。该专利全部权利属于无锡江南计算技术研究所,未经无锡江南计算技术研究所许可,擅自商用是侵权行为。如果您想购买此专利、获得商业授权和技术合作,请联系【客服】
本文链接:http://www.vipzhuanli.com/pat/books/202110324723.7/2.html,转载请声明来源钻瓜专利网。