【发布时间】:2018-11-20 02:47:43
【问题描述】:
我正在考虑将我当前的 Neon(ARM 的矢量处理指令集)代码迁移到 Metal,但在运行 HelloCompute 示例代码(演示如何使用 GPU 执行数据并行计算)之后,GPU 似乎慢得多比使用 CPU。
HelloCompute 项目在 iPhone 5S 上需要 13 毫秒才能在 512 x 512 RGBA 纹理上执行这个非常基本的内核。
{
half4 inColor = inTexture.read(gid);
outTexture.write(inColor, gid);
}
相比之下,我的 Neon 代码用时不到 1 毫秒!!!
GPU 至少不应该比 CPU 快吗?
【问题讨论】:
-
这是一个hello world的例子,你不想用它来比较时间,它只是一个简单的读写。 GPU 在更复杂的操作和真正大量的 IO 上胜出,其中不同计算启动的读取可以同时运行。该值实际上取决于您正在执行的操作以及并行完成这些操作的难易程度。
-
您的测试是否会无意中被限制在屏幕刷新率上?