目前,我正在从事一个项目,该项目从MathNet.Numerics库切换到System.Numerics.Vectors库。我想利用SIMD硬件支持。
应用程序的目标框架是.NET 4.6.1,因此RyuJIT应该是默认的JIT编译器。在HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft.NETFramework.中,UseRyuJIT设置为1
但是System.Numerics.Vector.IsHardwareAccelerated属性仍然返回false。
应用程序在发布模式下运行,首选32位未检查,平台目标是AnyCPU (虽然我也尝试过x64),检查本机代码调试,当我从Visual运行它并查看Debug -> Windows -> Modules窗口时,我可以在列表中看到clrjit.dll。没有protojit.dll (我认为这是CTP版本的名称)或是活动的。
此外,应用程序配置中没有设置COMPLUS_useLegacyJit useLegacyJit enabled="1",也没有useLegacyJit环境变量或regedit中的useLegacyJit标志。
系统信息:
Windows 7专业人员
Visual Studio Professional 2013
System.Numerics.Vectors v4.1.2.0
英特尔核心i7 3740 i7
发布于 2018-05-14 20:09:03
当您从Visual启动应用程序时,默认设置(即使是发布版本)将禁用jit优化,这也会禁用SIMD代码生成。
您可以在VS中更改此操作,方法是导航到Tools by

https://stackoverflow.com/questions/42388658
复制相似问题