c#-Windows Mobile上的GPU访问

我正在为Windows Mobile 6.5开发一个应用程序,我想知道是否有任何方法可以硬件加速各种计算.我想让GPU为应用程序做一些工作,而不是依靠CPU来做所有事情.我想使用C#,但是如果那不可能,那么C就可以了.感谢您的指导!...

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

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

感谢您的指导!

编辑-

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

解决方法:

要完全回答您的问题,我需要有关要尝试执行的计算的更多详细信息,但简短的答案是没有,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并返回GPU的成本).

但是,这并不意味着不可能使用Windows Mobile 6.5上的GPU加快计算速度.有一些小问题可以在不使用着色器的情况下映射到固定功能的管道.如果您可以找出如何通过渲染多边形并读回生成的图像来解决问题的方法,则可以使用GPU进行处理,但是不太可能需要进行适当的计算,或者值得尝试的努力.

本文标题为:c#-Windows Mobile上的GPU访问

基础教程推荐