检查 AVX 指令集支持

本文关键字:支持 指令集 AVX 检查 | 更新日期: 2023-09-27 18:32:27

在C#中,如何检查当前的CPU和操作系统是否支持AVX指令集?

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

检查 AVX 指令集支持

最好的方法是调用 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,幸运的是你没有要求这样做。