【问题标题】:running applications over graphic card通过显卡运行应用程序
【发布时间】:2014-08-11 18:20:43
【问题描述】:

我正在 Ubuntu 下使用 C++ 进行开发。我的应用程序有很多线程(超过 25 个)。

我的问题是:

  1. 如果我在显卡(即多核 CPU)上运行我的应用程序,我会看到性能提升吗?
  2. 我知道显卡的内核比 I7 多(例如),所以我的应用程序的上下文切换更少,因此性能更好,是这样吗?
  3. 显卡的核心(基本)是否比CPU核心有更好的性能?我知道这取决于显卡和 CPU 类型,但是有一个通用的答案吗?

【问题讨论】:

标签: c++ linux gpgpu


【解决方案1】:
  1. 这取决于您的应用程序中的并行性类型。如果你有任务并行性(http://en.wikipedia.org/wiki/Task_parallelism),每个线程都在做不同的任务(即一个线程在做网络,另一个在做计算、渲染等)。 这种类型的并行性不适用于 GPU,因为 GPU 是数据并行机器 (http://en.wikipedia.org/wiki/Data_parallelism)。如果您需要对许多数据项执行相同的计算,这是非常有效的。例如,许多图像处理算法都属于这一类,因为对每个图像像素进行相同的计算(图像过滤等)。根据我对这类计算的经验,您可以实现大约 x50 甚至更高的加速。 (比较高端 CPU 与高端 GPU)

  2. 如果您的应用程序受计算限制并且计算是数据并行的(请参见 1),则为 true。

  3. 通常 GPU 内核的时钟频率低于 CPU 内核 (

【讨论】:

    猜你喜欢
    • 2014-12-21
    • 2013-02-09
    • 2018-11-08
    • 1970-01-01
    • 1970-01-01
    • 2023-04-05
    • 2011-05-24
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多