金属计算与ARM Neon

时间:2018-11-20 02:47:43

标签: metal neon

我当时正在考虑将当前的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快吗?

1 个答案:

答案 0 :(得分:1)

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

另一方面,NEON已紧密集成到主管道中,因此在打包时比足够的打孔器响应更快。

到目前为止,AI和加密硬币开采几乎是我所见过的GPGPU有意义的唯一领域。对于更轻的东西,SIMD是必经之路。

而且由于加密硬币的开采实际上已经死了,并且专用于与AI相关的计算的IP迫在眉睫,所以我说GPGPU几乎毫无意义。