3

我正在为 Windows Mobile 6.5 构建一个应用程序,我想知道是否有任何方法可以硬件加速各种计算。我想让 GPU 为应用程序做一些工作,而不是依靠 CPU 来做所有事情。

我想使用 C#,但如果那不可能,那么 C++ 就可以了。

感谢您的任何指导!

编辑-

我想卸载到 GPU 的计算类型的一个示例是计算 25-100 个不同矩形的位置,以便将它们放置在屏幕上。这只是一个简单的示例,但我目前一直在单独的线程上进行此类计算,所以我认为(因为它是几何计算)它将是 GPU 的主要候选者。

4

1 回答 1

3

要完全回答您的问题,我需要有关您尝试执行哪些计算的更多详细信息,但简短的回答是否定的,Windows Mobile 设备中的 GPU 和 Microsoft 公开的 SDK 不适合 GPGPU(图形硬件上的通用计算)。

GPGPU 仅在 GPU 开始使用 DirectX9 提供可编程顶点和像素着色器(以及 8 中的有限支持)时才真正变得实用。与 Windows Mobile 6.5 设备一起使用的 GPU 与 DirectX8 周围的 GPU 更相似,并且没有可编程的顶点和像素着色器:http: //msdn.microsoft.com/en-us/library/aa920048.aspx

即使在具有 GPGPU 库(如 CUDA)的现代桌面显卡上,将计算卸载到 GPU 时获得性能提升也不是一件容易的事。计算必须天生适合 GPUS(即能够大规模并行运行,并且在任何内存上执行足够的计算以抵消将其传输到 GPU 并返回的成本)。

然而,这并不意味着在 Windows Mobile 6.5 上使用 GPU 加速计算是不可能的。有一小部分问题可以映射到没有着色器的固定功能管道。如果您可以通过渲染多边形并读回生成的图像来弄清楚如何解决您的问题,那么您可以使用 GPU 来完成它,但您需要做的计算不太可能是合适的,或者它会是值得尝试。

于 2011-06-28T04:12:55.973 回答