【问题标题】:Metal Compute versus ARM NeonMetal Compute 与 ARM Neon
【发布时间】: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 上胜出,其中不同计算启动的读取可以同时运行。该值实际上取决于您正在执行的操作以及并行完成这些操作的难易程度。
  • 您的测试是否会无意中被限制在屏幕刷新率上?

标签: metal neon


【解决方案1】:

GPGPU 仅在处理大量计算时才有意义,因为除了 OpenCL 等可怕的 API 之外,数据传输/硬件初始化时间破坏了乐趣。

另一方面,NEON 紧密集成到主管道中,因此响应速度更快,同时包含足够的冲​​击力。

到目前为止,我所看到的几乎只有 GPGPU 有意义的领域是 AI 和加密货币挖矿。对于更轻量级的东西,SIMD 是最佳选择。

而且由于加密货币挖矿实际上已经死了,而且专门用于 AI 相关计算的 IP 指日可待,我想说 GPGPU 几乎毫无意义。

【讨论】:

    猜你喜欢
    • 2012-04-07
    • 2016-08-18
    • 1970-01-01
    • 1970-01-01
    • 2012-06-25
    • 1970-01-01
    • 2015-11-22
    • 2012-09-09
    • 2013-02-20
    相关资源
    最近更新 更多