检查AVX指令集支持

时间:2016-01-30 00:50:32

标签: c# windows

在C#中,如何检查当前CPU和OS是否支持AVX instruction set

我需要选择加载哪个本机DLL,SSE2或AVX。

1 个答案:

答案 0 :(得分:5)

最好的方法是转发GetEnabledXStateFeatures(),它确保处理器和操作系统都支持AVX:

public static bool HasAvxSupport() {
    try {
        return (GetEnabledXStateFeatures() & 4) != 0;
    }
    catch {
        return false;
    }
}

[System.Runtime.InteropServices.DllImport("kernel32.dll")]
private static extern long GetEnabledXStateFeatures();

区分AVX和AVX2 btw的方法还不错,幸运的是你没有要求。