如何以编程方式检查CPU上是否启用了mul mul add(FMA)指令?

问题描述 投票:0回答:1

我想使用FMA内部指令_mm256_fmadd_pd(a,b,c),但是我的代码必须在启用或不启用FMA的不同计算机上运行。我不能使用编译时标志。所以我希望能够写这样的东西:

__m256d a, b, c, x;
bool FMA_Enabled = CheckFMA();

if (FMA_Enabled)
{
  d = _mm256_fmadd_pd(a, b, c);
}
else
{
  x = _mm256_mul_pd(a, b);
  d = _mm256_add_pd(x, c);
}

我找不到写函数CheckFMA()的方法。有办法吗?

非常感谢

编辑:我的操作系统是Windows 10 64位。

c++ intrinsics
1个回答
0
投票

哪个操作系统?运行Linux,您可以检查/proc/cpuinfo,例如fma标志

© www.soinside.com 2019 - 2024. All rights reserved.