从托管代码执行CPU/GPU指令

Pea*_*wer 9 .net gpu

考虑执行禁用位,从高级托管环境(如VB.NET 2008或C#)对本机处理器执行指令的推荐方法是什么.另外有没有人在对图形处理器执行GPU指令时取得了类似的成果?

Ree*_*sey 8

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

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

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