考虑到执行禁用位,建议从高层托管环境(例如VB.NET 2008或C#)对 native 处理器执行指令的推荐方式是什么。另外,有人在针对图形处理器执行GPU指令方面取得了类似的成就吗?

最佳答案

C#有一些GPU选项,可以直接访问而无需恢复为P/Invoke或编写自己的C++包装器:

  • Brahma非常有趣。它通过定制的LINQ提供程序直接提供对GPU的访问。该代码包括一些在GPU上运行的高度计算方法的示例,所有示例均通过LINQ用C#编写。
  • SlimDX为所有主要的DirectX功能提供了一个不错的.NET包装器。使用自定义着色器,您可以通过DirectX在GPU上进行计算。它还包括DX11支持,因此您可以直接使用计算着色器(如果有硬件的话)。
  • 您可以通过CUDA.NET访问CUDA。
  • 您可以通过OpenCL.NET使用OpenCL。

  • 对于CPU指令,这通常需要使用汇编程序指令将其降级到较低级别的 native 代码。可能最有趣的完全托管(至少部分相关)选项是使用Mono.Simd,当在Mono堆栈上运行时,它可以从托管代码直接访问CPU中的SIMD指令。

    关于.net - 从托管代码执行CPU/GPU指令,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/2103285/

    10-17 01:58