【发布时间】:2020-10-10 09:13:36
【问题描述】:
背景
我在 Windows PC 上用 C++ 编程语言 对 OpenCL 进行了试验,以便将简单的程序写入 PC 的 GPU。换句话说,我将它用作 GPGPU。在简单的计算下,我的意思是我制作了两个数组,每个数组包含 100 万个项目,然后我将两个数组的相应部分相加。
因此,如果我有 X[1000000] 和 Y[1000000],那么我会这样做:
for(int i=0; i<1000000; i++)
{
Output[i]=X[i]+Y[i]
}
我想做什么?
我想在 Xbox One S 上做同样的事情,就像我在 PC 上做的一样。我想为 Xbox One S 编写一个通常在 cpu 上运行 的程序(我并不是要创建一个我将强制在 GPU 上运行的程序)。当它进行上述计算时,它会将其加载到 GPU 中,GPU 将对其进行计算以提高速度。
我已经在 Xbox 上做了什么?
我已经在我的 Xbox 上制作了 UWP 应用程序(用 C++ 编码)。我想继续使用 UWP 编写我的 GPU 程序,但是我没有找到任何解释如何做到这一点的教程。
我对答案有什么期望?
我想要一个带有指南/教程链接的答案,甚至在解释如何执行此操作的答案中。
指南/教程(我的程序的解决方案)必须是:
- 用 C++ 编写
- 最好使用 OpenCL,但这不是必需的,只有在可能的情况下才可以
我对这类软件了解多少?
我非常了解 Visual Studio C++ (MSVC),所以最理想的情况是指南/教程使用 MSVC。我对 Unity 也有一些了解,所以如果指南/教程是关于用 Unity(也可以用 C++)编写的,我也将不胜感激。但如果这是不可能的,任何其他工具也可以正常工作。
PS:我对此进行了大量研究,但没有找到解释这一点的指南/教程。这就是为什么我在这里询问堆栈溢出的原因。我对 Stack Overflow 很陌生,所以请不要只说(如果这个问题写得不好)“这个答案不符合答案要求。
【问题讨论】:
-
我了解(如果我错了,请有人纠正我)这是不可能的,因为除非您使用官方 Xbox SDK(“XDK”),否则 Microsoft 会禁用对 GPU 硬件的完全访问权限。