如何在.net framework 4.6上启用Vector.IsHardwareAccelerated?

Red*_*Fox 3 .net c# vector

我正在使用System.Numerics和我的Haswell Core i7桌面系统上的Visual Studio 2015进行矢量操作.但是Vector.IsHardwareAccelerated回归是假的.我的应用程序是64位.

是否有任何设置来启用矢量操作?

Mic*_*hal 6

转到项目属性 - >构建.选择平台目标:x64选中"优化代码".

在没有调试(CTRL + F5)的情况下,在调试或发布模式下,我的Westmere I7-980x工作正常.


Red*_*Fox 5

正如 Michal 所说,我们需要以 x64 位模式构建项目,RyuJIT 将修改此标志,因为 IsHardwareAccelerated 是“JIT 内在方法”。

IsHardwareAccelerated 就是我们所说的“JIT 内在方法”,这意味着它是由 JIT 专门处理的。对于这种特殊情况,需要注意的关键是这些“JIT 内在函数”仅在发布模式下打开,因此它们在调试期间不会处于活动状态。它们也仅在 x64 的 RyuJIT 编译上有效。

https://github.com/dotnet/corefx/issues/2732#issuecomment-130142241