我打算在我的代码中使用半精度浮点,但我不知道如何声明它们。例如,我想做如下的事情 -
fp16 a_fp16;
bfloat a_bfloat;
但是,编译器似乎不知道这些类型(出于演示目的fp16
,bfloat
它们只是虚拟类型)
我记得读到bfloat
支持被添加到 GCC-10 中,但我无法在手册中找到它。我对bfloat
浮点数特别感兴趣
其他问题 -
- FP16 现在有硬件支持 Intel / AMD 支持吗?我认为自 Ivy Bridge 本身以来就添加了本机硬件支持。(https://scicomp.stackexchange.com/questions/35187/is-half-precision-supported-by-modern-architecture)
- 我想确认使用 FP16 是否确实会增加 FLOPs。我记得在某处读到,所有算术运算
fp16
都首先在内部转换为 fp32,并且只会影响缓存占用空间和带宽。 - SIMD 对半精度浮点数的内在支持,特别是
bfloat
(我知道_mm256_mul_ph
像 - 这些类型是否也添加到了英特尔编译器中?
PS - 相关帖子 - Intel 芯片上的半精度浮点运算,但不包括声明半精度浮点数。
TIA