Matrix Xbox 360上的GPU编程

Matrix Xbox 360上的GPU编程,matrix,gpu,xbox360,Matrix,Gpu,Xbox360,我想了解Xbox360上的XNA,主要是是否有可能在其GPU上运行基于矢量的浮点运算 如果有办法的话,你能给我指出正确的方向吗?我并不自称是这方面的专家,但希望这能为你指明一个有用的方向 可能吗?对您可能已经知道GPU擅长这种计算(因此这个问题),并且您确实可以使用XNA控制GPU。它是否适合你的需要是另一回事 要使用GPU,您可能需要使用HLSL编写着色器。在XNA的上下文中,有一个关于HLSL的不错的介绍,您可能想在这里详细介绍一下。值得注意的是,该教程的重点是让GPU进行与图形相关的运算,

我想了解Xbox360上的XNA,主要是是否有可能在其GPU上运行基于矢量的浮点运算


如果有办法的话,你能给我指出正确的方向吗?

我并不自称是这方面的专家,但希望这能为你指明一个有用的方向

可能吗?对您可能已经知道GPU擅长这种计算(因此这个问题),并且您确实可以使用XNA控制GPU。它是否适合你的需要是另一回事

要使用GPU,您可能需要使用HLSL编写着色器。在XNA的上下文中,有一个关于HLSL的不错的介绍,您可能想在这里详细介绍一下。值得注意的是,该教程的重点是让GPU进行与图形相关的运算,但在着色器中编写什么取决于您。如果基于向量的浮点数学用于渲染(因此可以留在GPU域中),那么您很幸运,可以到此为止

很可能屏幕上的渲染不是您想要的。现在,您在HLSL中有相当大的灵活性,可以进行数学运算。然而,将结果输出到CPU并不是系统的设计方式。这对我来说越来越模糊,但Shawn Hargreaves(XNA开发人员)表示,从GPU获取输出(而不是在屏幕上渲染)是非常重要的,并且会影响性能。检索数据涉及对GetData的调用,该调用将


所以这是可以做到的。XNA框架将允许您为360编写着色器(支持Shader Model 3.0加上一些扩展),并且可以得到这些结果,尽管它的效率可能不足以满足您的需要。

如上所述-XBox360完全能够进行任何HLSL计算,特别是,它可以处理顶点和像素着色器模型3指令,并具有特定于平台的增强指令集

由于HLSL实际上是基于向量的,所以您拥有所需的所有工具-点、交叉、向量运算和矩阵计算。 如果您想将计算结果发送到GPU,并在CPU上编辑/使用结果,您可以将其写入纹理,然后在CPU端获取纹理并对其进行解码-将其用于粒子或物理交互(如水)的情况很少