【发布时间】:2013-03-30 21:33:56
【问题描述】:
我的 3D 图形软件,使用 SlimDX 用 C# 编写,在 CPU 上执行大量矢量操作。 (在这种特定情况下,无法将工作卸载到 GPU)。
我怎样才能使我的向量数学更快?到目前为止,我已经找到了这些方法:
- 在 Mono 而不是 Microsoft .NET 上运行,因为它们支持 SIMD。不适用于此项目。
- SlimGen,一个在运行时注入高性能数学代码的项目。不幸的是,该项目尚未处于可用状态。
- 使用使用 SSE 指令的编译器以 C++ 编写 DLL。通过 C# 与该 DLL 进行互操作。
是否有任何其他选项可以在 .NET 中实现更快的矢量数学?
【问题讨论】:
-
这是怎么回事?你们这些人有时很莫名其妙。
-
多线程(或 Open MP)可能很有用。我不知道您是否可以在 .NET 上使用 Open MP,但如果您可以将 p/invoke 函数调用的总量保持在较低水平,我还是建议您使用本机 dll。
-
我知道回复晚了,但你可能想看看 Yeppp! SIMD 库