GCC 和 LLVM 已支持 x86__Bfloat16 类型
GCC 和 LLVM 编译器现已提供符合 x86-64 psABI 规范的 bf16 类型支持。
BF16 是一种新的浮点数格式,又叫 BFloat16 或 Brain Float16 ,是专为深度学习/机器学习应用设计的 16 位浮点格式。
BF16 可以加速机器学习(尤其是深度学习训练)算法,与 Float16 不同, Bfloat16 有 8 位指数和 7 位尾数。在相同的 16bits 的空间中,通过降低精度(比 Float16 的精度低)的方式,来获得更大的数值空间(Dynamic Range)。
BF16 最先由英特尔 AVX-512 扩展引入,被称为 AVX-512_BF16。因此,在硬件方面英特尔至强 Cooper Lake 和 Sapphire Rapids 是目前具有原生 BF16 指令支持的处理器。
上周 LLVM 获得了对 x86 的 __bf16 类型支持,以适应其现有的 BFloat16 代码。
现在 GCC Git 中也提供了 __bf16 类型支持:
X86-64 System ABI 组的邮件描述了引入 x86 __Bfloat16 类型的动机:
目前 bfloat16 是 short 的 typedef,这会产生一个问题,即如果它用于加减乘除,编译器不会发出任何警报,但计算的结果实际上是没有意义的。
为了解决这个问题,需要引入一个真正的标量类型__Bfloat16(scalar type __Bfloat16 )。它主要用于内在函数(intrinsics),不适用于 C 标准运算符。
Bfloat16 也将用于传递参数、加载和存储、向量初始化、向量重置等功能,它需要相应的 psABI。
外媒 Phoronix 介绍称 BF16 类型支持将会在稳定的 GCC 13 和 LLVM 16 编译器中提供,这两个编译器都将在明年年初正式发布。

低调大师中文资讯倾力打造互联网数据资讯、行业资源、电子商务、移动互联网、网络营销平台。
持续更新报道IT业界、互联网、市场资讯、驱动更新,是最及时权威的产业资讯及硬件资讯报道平台。
转载内容版权归作者及来源网站所有,本站原创内容转载请注明来源。
- 上一篇
微软员工在 GitHub 上意外暴露内部登录凭证
根据网络安全研究公司 spiderSilk 近日的报告,多名来自微软的员工在 GitHub 上暴露了自己在公司内部的敏感登录凭证,可能为攻击者提供了进入微软内部系统的途径。 spiderSilk 的首席安全官 Mossab Hussein 表示,“意外的源代码和敏感凭证泄露已经成为很多公司遭遇攻击的一大原因,这些攻击也越来越难以及时和准确地识别。对于现在的大多数公司来说,这是一个非常具有挑战性的问题。” spiderSilk 在此次安全事件中总共发现了 7 个暴露的微软内部登陆凭证,所有这些都是 Azure 服务器的凭证。所有暴露的凭证都与微软的官方 tenant ID 有关,tenant ID 是与一组特定的 Azure 用户相关联的唯一标识符。当 spiderSilk 发现这 7 个登录凭证时,其中有 3 个仍处于激活状态,其中一个还是在几天前刚刚上传的。虽然其他 4 个凭证不再处于活跃状态,但仍然凸显了员工意外上传内部系统凭证的风险。 此后,微软官方也进一步证实了这些数据的暴露。微软发言人表示:"我们已经进行了调查,并采取了行动来保护这些证书。虽然它们是无意中被公开的,但我们没有...
- 下一篇
StarRocks 技术内幕:向量化编程精髓
作者:康凯森,StarRocks PMC,负责查询方向的研发 本文是对我在 StarRocks 线下 MeetUp 演讲的整理,主要分为三部分:第一部分简要介绍向量化的基础知识,第二部分讲解数据库如何进行向量化,最后是 StarRocks 向量化实践后的一些粗浅思考。 #01 向量化为什么可以提升数据库性能? — 本文所讨论的数据库都是基于 CPU 架构的,数据库向量化一般指的都是基于 CPU 的向量化,因此数据库性能优化的本质在于:一个基于 CPU 的程序如何进行性能优化。这引出了两个关键问题: 1. 如何衡量 CPU 性能 2. 哪些因素会影响 CPU 性能 第一个问题的答案可以用以下公式总结:CPU Time = Instruction Number * CPI * Clock Cycle Time Instruction Number 表示指令数。当你写一个 CPU 程序,最终执行时都会变成 CPU 指令,指令条数一般取决于程序复杂度。 CPI 是 (Cycle Per Instruction)的缩写,指执行一个指令需要的周期。 Clock Cycle Time 指一个 CP...
相关文章
文章评论
共有0条评论来说两句吧...
文章二维码
点击排行
推荐阅读
最新文章
- CentOS8安装Docker,最新的服务器搭配容器使用
- MySQL8.0.19开启GTID主从同步CentOS8
- CentOS7安装Docker,走上虚拟化容器引擎之路
- SpringBoot2全家桶,快速入门学习开发网站教程
- CentOS8编译安装MySQL8.0.19
- CentOS7,CentOS8安装Elasticsearch6.8.6
- SpringBoot2配置默认Tomcat设置,开启更多高级功能
- SpringBoot2整合Thymeleaf,官方推荐html解决方案
- Windows10,CentOS7,CentOS8安装Nodejs环境
- Springboot2将连接池hikari替换为druid,体验最强大的数据库连接池