在使用 g++13 的 x86 CPU 上使用 bfloat16 和 C++23

Using bfloat16 with C++23 on x86 CPUs using g++13

提问人:Vistemboir 提问时间:8/5/2023 更新时间:8/5/2023 访问量:85

问:

我正在尝试使用 bfloat16 作为在 HPC 集群上工作的应用程序的格式。为此,我安装了 g++13,据说它支持 bfloat16 格式,但这对我来说并不一致。 在我的本地机器上,它可以工作并支持 std::float16_t 和 std::bfloat16_t但在两个不同的集群上不支持这些。预定义的宏也不存在,这对我来说似乎意味着实现不支持这些宏。 所有三台计算机都具有相同的微体系结构,x86_64,并且我的本地计算机和两个集群中的至少一个之间的安装不应不同。另一方面,gcc-13 作为模块预装。 什么定义了 bfloat16 是否可用,是否有一些方法可以使用它? 不幸的是,__Float16在所有三台机器上都可用,它没有提供足够的指数位,因此不适合我的目的。 或者,如果这无法解决,是否有任何库添加对 bfloat16 的支持?我只能找到 IEEE fp16 的库。

我已经在其中两台机器上手动安装了 g++13,它可以在两台机器中的一台上运行,但在另一台机器上不起作用,我无法在 gcc 文档中找到原因。我能想到的唯一原因是因为机器具有不同的架构,但命令 uname -m 为这三台机器返回x86_64,所以至少这三台机器的微架构是相同的。

C G++ C++23 半精度浮点数

评论


答: 暂无答案