2

基本上问题是如何在 Metro 应用程序中运行 gpgpu 代码。该库不需要专门用于计算,例如,使用 XNA 的 hlsl(最初旨在渲染事物)进行通用计算(XNA 不包含在 Metro 中,因此是我的问题)。默认 Metro 库优于对外部库的引用。

我意识到可以在 C++ 中调用核心 DirectX 函数,但是,我想问是否可以在 Metro 应用程序中使用 C# 中的 gpu。

4

3 回答 3

3

DirectCompute 在 Metro 应用程序中与SharpDX完美结合使用(因为它来自桌面应用程序,这是相同的 API)。不过,如果您的目标是某些平板电脑,则至少需要 DirectX10 显卡。如果平板电脑是 10.0 或 10.1,则在 Downlevel hardware 上使用 Compute Shaders 会有一些限制。

于 2012-06-13T03:21:26.087 回答
2

实际上,我认为这是不可能的,但是在寻找证明其不可能性的链接时,我想出了对 SharpDX 的引用,它声称是一个托管的 DirectX 包装器,它也将支持 Win8 Metro 应用程序。请参阅这个包含 .hlsl 文件的 SharpDX 示例项目以了解更多信息。

这不是我的专业领域,所以我不知道这是否可行;另外,我想知道他们如何做到这一点,并且仍然允许应用程序在商店中获得销售认证。但根据您的要求,这可能需要检查。

(注意:第一个链接确实声称“[n]ext 版本的 SharpDX 将提供完全兼容并为 Win8 Metro 风格应用程序提供认证的程序集”,因此他们的意图很明确。我上面关于认证的评论只是听起来这需要进行互操作,我不知道在此类应用程序中是允许的,所以他们可能对此持乐观态度。不过,我可能完全错了。)

于 2012-06-12T18:23:58.537 回答
1

GPU.NET 会将特别标记和编写的 C# 代码 JIT 编译为 GPU 代码。

www.tidepowerd.com

我还没有尝试过,但是这个概念很有前途,而且代码看起来比较干净。所有这些都在 C# 中......

于 2012-07-09T12:47:17.837 回答