我目前正在从事一个从 MathNet.Numerics 库切换到 System.Numerics.Vectors 库的项目。我想利用 SIMD 硬件支持。
应用程序的目标框架是 .NET 4.6.1,因此 RyuJIT 应该是默认的 JIT 编译器。UseRyuJIT在HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft.NETFramework中设置为 1 。
但该System.Numerics.Vector.IsHardwareAccelerated
属性仍然返回 false。
该应用程序在发布模式下运行,未选中 Prefer 32-Bit,平台目标是 AnyCPU(尽管我也尝试过 x64),启用本机代码调试已选中,当我从 Visual Studio 运行它并观看 Debug -> Windows -> Modules窗口我可以在列表中看到clrjit.dll。没有protojit.dll(我认为这是 CTP 版本名称)或compatjit.dll处于活动状态。
此外,在应用配置中没有设置useLegacyJit enabled="1" ,也没有在 regedit 中设置COMPLUS_useLegacyJit环境变量或useLegacyJit标志。
系统信息:
视窗 7 专业版
视觉工作室专业版 2013
System.Numerics.Vectors v4.1.2.0
英特尔酷睿 i7 3740QM