编译器添加了符合x86-64 psABI 规范的 __bf16 支持。这种新特殊类型的动机总结为:
目前 __bfloat16 是 short 的 typedef,这会产生一个问题,即如果它用于加减乘除,编译器不会发出任何警报,但计算的结果实际上是没有意义的。为了解决这个问题,需要引入一个真正的标量类型__Bfloat16。它主要用于内在函数,不适用于 C 标准运算符。__Bfloat16 也将用于传递参数、加载和存储、向量初始化、向量洗牌等移动。它需要相应的 psABI。
在硬件方面,英特尔至强可扩展 Cooper Lake 和 Sapphire Rapids 是迄今为止具有原生 AVX-512 BFloat16 (BF16) 指令支持的处理器,可增强其机器学习性能潜力。
上周LLVM获得了对 x86 目标的 __bf16 类型支持,以及一些后续提交,以适应其现有的 BFloat16 代码。现在在 GCC Git 中也支持 __bf16 类型。
这种 __bf16 类型支持反过来会在稳定的 GCC 13 和 LLVM 16 编译器中找到,这两个编译器都将在明年年初正式发布。
原创文章,作者:校长,如若转载,请注明出处:https://www.yundongfang.com/Yun181919.html