首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >bfloat16_t在C++23标准中是什么?

bfloat16_t在C++23标准中是什么?
EN

Stack Overflow用户
提问于 2022-10-07 02:37:46
回答 1查看 221关注 0票数 5

卡普普文档stdfloat包含5种新类型:float16_tfloat32_tfloat64_tfloat128_tbfloat16_t。虽然前4种类型是不言自明的(分别为16位、32位、64位和128位的浮点数),但最后一种类型bfloat16_t对我来说一点也不清楚。这种类型代表什么?b以它的名义是什么意思?

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2022-10-07 02:55:28

"bfloat16“是指非有效的IEEE-754/IEC 60559定义格式的最近的16位浮点格式。但这与他们有关。

BINARY16只是BINARY32,其组件的数字比较小。但是尺寸的变化是均匀分布的;它有一个较小的尾数和一个较小的指数。

Bfloat16选择了一种不同的方式来使用它的16位。它选择保持与BINARY32 (8位)相同的指数,同时将尾数缩小到7位(显式)。这使得bfloat16和BINARY32之间的转换成为一种更快的操作。

它确实有一些特殊情况下的奇怪之处,但总的来说,它是一个截断的BINARY32。虽然它在GPU硬件中得到了广泛的支持,但它并不是一个真正的标准。

bfloat16的效用可以归结为两件事:转换的速度和BINARY16的妥协。

BINARY16是一种很好的格式..。颜色方面的。有一个最大范围只有5个十进制数量级以上的零是足够的许多情况下,高动态范围渲染。

但是这种妥协对于机器学习操作来说是个问题。如果精确性很重要的话,你必须花费32位才能得到它。但是,如果精确没那么重要能够在不影响范围的情况下节省16位,这在这些应用程序中是很有用的。

票数 6
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/73981813

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档