BF16相比FP16的优点

2024-06-08 06:36
文章标签 bf16 fp16 优点 相比

本文主要是介绍BF16相比FP16的优点,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

BF16和FP16

参考链接:

  • Understanding the advantages of BF16 vs. FP16 in mixed precision training
  • Megatron-LM & Megatron-Core
  • BFloat16: The secret to high performance on Cloud TPUs

BF16相比FP16的优点:

  • BF16和FP16都是两个字节,区别是指数位和小数位不一样
  • BF16的指数位和FP32一样,所以在整数表示的范围上,BF16和FP32保持一致,但是在小数精度上比较低。
    • 这样可以保证在模型训练的过程中尽量不要发生数据的溢出(上溢或者下溢),防止在一些计算中出现nan的数据(例如inf * 0 = nan),导致了模型的训练崩溃。
    • 小数精度上虽然BF16有损失,但是考虑到FP16在训练过程中,和FP32进行转换的时候,也会发生小数精度上的损失,所以小数精度虽然重要,但是相比数据溢出出现nan问题,可能并不是一个最大的问题,毕竟nan会导致模型无法正常训练,且一个参数出现nan,很快就会导致整个模型参数都变成nan。
  • 在混合精度训练过程中,BF16比FP16更加节省内容,这里我理解,是因为FP16的混合精度训练过程中,需要保存一个模型副本,然后前向推理过程中还需要一个FP16的副本。但是在BF16中,这个FP32和FP16的副本可以直接用一个FP32来使用,因为BF16相当于是FP32的前两个字节,需要用BF16的时候,直接截取前两个字节进行计算(这里可能会有精度损失,但是使用FP16这样转换也一样会有精度损失),需要FP32的时候,再把后两个字节加回来。
    • BF16转化到FP32更加简单,不需要做转化了,直接截取前2个字节。FP16和FP32之间的转换需要更多的逻辑操作。
    • 由于直接使用一个FP32来存储FP32和BF16的副本,所以这里减少了转换步骤,更加方便快捷
    • BF16 硬件可以实现比相同芯片尺寸的 FP32 单元更高的吞吐量(With fewer mantissa bits than FP16, the bfloat16 multipliers are about half the size in silicon of a typical FP16 multiplier, and they are eight times smaller than an FP32 multiplier!)

这篇关于BF16相比FP16的优点的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



http://www.chinasem.cn/article/1041428

相关文章

微软搁置水下数据中心项目——项目纳蒂克相比陆地服务器故障更少

“我的团队努力了,并且成功了,”CO+I负责人诺埃尔·沃尔什说。 微软已悄然终止了始于2013年的水下数据中心(UDC)项目“纳蒂克”。该公司向DatacenterDynamics确认了这一消息,微软云运营与创新部门负责人诺埃尔·沃尔什表示:“我不会在世界任何地方建造海底数据中心。”她随后补充道:“我的团队进行了这个项目,而且效果很好。我们学到了很多关于海平面以下操作的知识,包括振动对服务器的影

Struts 的优点

Struts是一个用来快速开发MVC应用程序的MVC框架,它使用一个过滤器调度程序作为控制器。在编写一个MVC应用程序时,程序员的工作包括提供一个控制器和编写各种必要的动作类。控制器必须能够完成下面5项任务。 (1)根据URI字符串确定应该调用哪个动作。 (2)对相关的动作类进行实例化。 (3)如果动作对象存在,就用请求参数填充该动作的属性。 (4)如果动作对象存在,就调用相应的动作方法。

【Rust日报】2021-7-29 与c相比,如何改善Rust巨大的二进制大小?

什么时候去使用#[inline] Reddit上有人问: 我一直在每一个我认为会经常被调用的函数上拼命地写#[inline],但这真的需要吗?inline只是提示编译器该函数可以被内联,而编译器可以忽略这一点或自行决定何时进行内联,所以我应该在什么时候用#[inline]标记我的函数?我正在制作一个使用一些自定义迭代器进行音频处理/合成的crate,我希望这些crate能快速运行。 推介阅读

【Rust投稿】Rust语言优点对比C/C++

初接触到Rust这门语言,主要是看中了它的性能和语法。一开始主要是在力扣平台刷题学习,然后每个语言都会试一试,发现Rust速度甚至在某些地方超过了C/C++,我就对这门语言比较感兴趣。 接下来说说我对这门语言优点的看法: 一、多范式 Rust是一门多范式的语言,能够很好地支持函数式和面向对象。其独特的函数声明方式 fn 函数名(参数列表) -> 返回类型 这种简捷的声明方式就能够让人一眼看出这是

Xgboost优点

本文转自: 点击打开链接 Gradient boosting Decision Tree(GBDT)   GB算法中最典型的基学习器是决策树,尤其是CART,正如名字的含义,GBDT是GB和DT的结合。要注意的是这里的决策树是回归树,GBDT中的决策树是个弱模型,深度较小一般不会超过5,叶子节点的数量也不会超过10。 Xgboost   Xgboost是GB算法的高效实现,xgboo

SpringCloud中Eureka和Nacos的区别和各自的优点

Eureka注册中心 Eureka作为一个注册中心,服务提供者把服务注册到注册中心,服务消费者去注册中心拉取信息, 然后通过负载均衡得到对应的服务器去访问。 服务提供者每隔30s向注册中心发送请求,报告自己的状态,当超过一定时间没有发送时,注册中心会认为该服务宕机,会把它剔除。 创建Eureka服务 需要自己手动编写这个程序和导入依赖 server:port: 10086 #端口

智慧校园综合管理系统的优点有哪些

在当今这个信息化飞速发展的时代,智慧校园综合管理系统正逐步成为教育领域的一股革新力量,它悄然改变着我们对传统校园管理的认知。这套系统如同一个无形的桥梁,将先进的信息技术与学校的日常运作紧密相连,展现出多维度的优势。 它首先体现在对校园资源的精细管理和高效调配上。无论是教学楼的使用安排,还是图书资料的借阅流通,乃至实验室的预约,所有环节都在数字化平台上流畅运转,减少了人力操作的繁琐与误差,让每一份

对比4090及4090D:国区“特供”与原版相比有何区别?

2023年12月28日 英伟达宣布正式发布GeForce RTX 4090D,对比于一年前上市的4090芯片,两者的区别与差异在哪?而在当前比较火热的大模型推理、AI绘画场景方面 两者各自的表现又如何呢?    规格与参数信息对比现在先来看看GeForce RTX 4090D到底与之前的GeForce RTX 4090显卡有何区别。(左为4090 右为4090D)

python是TIOBE编程语言排名第一的编程语言,它有什么优点?它的使用场景有哪些?用python打印数字1--100,用python打印九九乘法表怎么写?

Python是TIOBE编程语言排行榜排名第一的编程语言 。 python是一种解释性、交互式、面向对象的跨平台的语言。 python设计者及名称由来         Guido van Rossum 荷兰人---吉多·范罗苏姆,是 Python 编程语言的最初设计者,在 Python 社区一直担当终身仁慈独裁者(BDFL)的角色。2018 年 7 月12 日,他宣布不再担任 Python

详解会议中控系统及其优点特点有哪些?

详解会议中控系统及其优点特点有哪些?   什么是会议中控系统? 如果说过去“会议中控系统”对于大众来说是高端、专业的领域,那么随着数字化、网络化建设的不断推进,其实现在会议中控早已揭开了神秘的面纱。更甚者已经从专业的行业区域渗透到了家庭化的使用。那什么是会议中控系统呢? 会议中控系统,简单的说就是通过一个中央控制器把会议室内的所有的和电有关的设备都几种在一个操作终端来控制。比如投影机,投影