【问题标题】:GPU access on Windows MobileWindows Mobile 上的 GPU 访问
【发布时间】:2011-09-20 22:35:07
【问题描述】:

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

我想用C#,但如果不行,那C++就好了。

感谢您的指导!

编辑-

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

【问题讨论】:

  • 澄清一下,您是在询问 GPGPU API,而不是渲染?
  • @Ben:我想是的。 “在 GPU 上加速各种计算,而不是依赖 CPU”。
  • @Cicada:还有许多与渲染相关的计算可以在 CPU 或 GPU 上执行。一些澄清(可能还有计算示例)会有所帮助。
  • @Ben:我同意。我只是觉得 OP 在询问一般计算,但我可能是错的。
  • 哇,抱歉我的缺席!我刚刚开始了一份新工作和所有这些东西。无论如何,谢谢你的回答!我想要卸载到 GPU 上的计算类型是“一般计算”,但它们将用于为我的显示器设置视图。我会用一个例子来更新帖子。

标签: c# c++ windows-mobile gpu windows-mobile-6.5


【解决方案1】:

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

只有当 GPU 开始提供带有 DirectX9 的可编程顶点和像素着色器(以及 8 中的有限支持)时,GPGPU 才真正变得实用。用于 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 来完成它,但您需要做的计算不太可能是合适的,或者它会是值得尝试。

【讨论】:

  • 感谢您的解释。我猜测由于计算量(或缺少计算量)和计算类型,我应该找到优化算法的方法,而不是试图将它们推送到 GPU。嗯,值得一试!
猜你喜欢
  • 2011-12-07
  • 2017-10-27
  • 1970-01-01
  • 2013-06-27
  • 1970-01-01
  • 1970-01-01
  • 2014-08-18
  • 2012-06-27
  • 2011-04-27
相关资源
最近更新 更多