考虑执行禁用位,从高级托管环境(如VB.NET 2008或C#)对本机处理器执行指令的建议方法是什么。另外,有没有人在对图形处理器执行GPU指令时达到类似的效果?
答案 0 :(得分:8)
C#有一些GPU选项,可直接访问而无需恢复到P / Invoke或编写自己的C ++包装器:
对于CPU指令,这通常需要使用汇编程序指令删除到较低级别的本机代码。可能最有趣的完全托管(至少部分相关)选项是使用Mono.Simd,它可以在Mono堆栈上运行时从托管代码直接访问CPU中的SIMD指令。
答案 1 :(得分:3)
这不是一个选择。您必须使用内联汇编或内部函数来调用/调用由MASM生成或使用非托管C / C ++编写的DLL中的函数。或者使用C ++ / CLI编译器并使用#pragma managed。生成混合模式代码。
请注意,您现在不能再依赖于JIT编译器生成适合操作系统的任何平台代码。使用Project + Properties,Build选项卡,Platform Target强制架构匹配您的非托管代码。
查看CUDA以获取托管GPU代码。
答案 2 :(得分:2)
使用您想要的任何指令创建非托管.dll库,并使用P / Invoke来调用它。