在C#中,如何检查当前CPU和OS是否支持AVX instruction set?
我需要选择加载哪个本机DLL,SSE2或AVX。
答案 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的方法还不错,幸运的是你没有要求。