是否可以使用 C++ 在运行时确定 AVX-512 FMA 单元的数量?
我已经有代码来确定 CPU 是否支持 AVX-512,但我无法确定 FMA 单元的数量。
小智 5
Intel \xc2\xae 64 和 IA-32 架构优化参考手册,2022 年 2 月,第 18.21 章,标题为:具有单个 FMA 单元的服务器包含汇编语言源代码,用于识别 AVX- 中每个内核的 AVX-512 FMA 单元数量512 能力的处理器。请参见示例 18-25。这是通过比较两个函数的时序来实现的:一个函数使用 FMA 指令,另一个函数同时使用 FMA 和 shuffle 指令。
\nIntel的优化手册可以从以下网址下载: https: //www.intel.com/content/www/us/en/developer/articles/technical/intel-sdm.html#inpage-nav-8。
\n本手册的源代码位于: https ://github.com/intel/optimization-manual