我当时正在考虑将当前的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快吗?
答案 0 :(得分:1)
GPGPU仅在处理大量计算时才有意义,因为除了可怕的API(例如OpenCL)之外,数据传输/硬件初始化时间还破坏了乐趣。
另一方面,NEON已紧密集成到主管道中,因此在打包时比足够的打孔器响应更快。
到目前为止,AI和加密硬币开采几乎是我所见过的GPGPU有意义的唯一领域。对于更轻的东西,SIMD是必经之路。而且由于加密硬币的开采实际上已经死了,并且专用于与AI相关的计算的IP迫在眉睫,所以我说GPGPU几乎毫无意义。