【问题标题】:Run a C++ code in GPU - Iphone and Android [closed]在 GPU 中运行 C++ 代码 - Iphone 和 Android [关闭]
【发布时间】:2013-08-16 20:42:05
【问题描述】:

我有一个 C++ 代码,我在 IOS 设备 (IPAD) 中执行 C++ 代码,执行时间大约为 1 秒。我需要通过在 GPU 中运行来提高代码的性能。

是否可以在 GPU 中运行我的特定 C++ 代码?如果可能的话,有人可以列出在 GPU 中运行 C++ 代码的步骤吗?我的主要目标是将当前 C++ 代码的性能从 1 秒提高到毫秒。

【问题讨论】:

  • 您应该首先通过分析和识别瓶颈来查看代码的简单优化,然后如果仍然没有产生足够的改进,请考虑使用 SIMD (NEON) 来处理关键例程。
  • 您不能在(iOS 设备的)GPU 上运行任意 C++ 代码。

标签: c++ iphone ios objective-c gpu


【解决方案1】:

CPU 和 GPU 差别太大,不可能发生这种情况。在 CPU 上,您习惯于使用几个大核,每个核执行一个线程,而 GPU 有成百上千个需要不同编程的小核。

需要一秒钟的问题需要“令人尴尬地并行”,因为核心无法以计算的速度进行通信,因此如果需要同步和跨核心通信,任何 GPU 收益都将丢失。

除非您的 CPU 使用 Intel 8008,GPU 使用 nVidia 680,否则一秒钟的 CPU 内容不会神奇地变成 GPU 的几毫秒。

iOS 无论如何都不支持这一点。您可以创建可以进行计算的着色器,但它要复杂得多、不那么优雅且速度较慢。

【讨论】:

  • 对于大规模并行问题,100 倍加速是完全合理的预期......
  • @Erbureth 是的,但它需要针对 GPU 调整问题。它不会神奇地发生。这也是众多移动 GPU 型号中的一种,其规格不是太亮。
  • 嗯,与移动 CPU 相比...
猜你喜欢
  • 2011-05-06
  • 2020-09-06
  • 1970-01-01
  • 2020-09-13
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2017-07-27
相关资源
最近更新 更多