除图像处理之外的GPGPU应用程序?

时间:2012-07-21 05:53:00

标签: cuda gpu gpgpu

我正在寻找几个可以移植到gpgpu以提高效率的cpu应用程序。 除了图像处理区域之外还可以使用gpgpu吗? 这实际上是我的研究生项目。

3 个答案:

答案 0 :(得分:2)

GPU计算引擎的专用处理体系结构对于您所拥有的任何数据处理问题非常有用:

  1. 非常重要的数据
  2. 对该数据的每个元素执行的非平凡计算,
  3. 计算每个输出元素所需的输入数据适合GPU内存,或者可以精心设计以在需要时进入GPU内存。
  4. 如果可以同时对所有数据元素独立执行计算,则会有所帮助,但这不是严格要求的。

    图像处理恰好是该场景的一个例子 - 要处理的像素数量有限(但很大),并且可以在每个像素上并行执行许多图像算法。

    其他示例包括:广义信号分析,例如处理音频信号。图像处理只是信号分析的一种特殊形式。模式识别,其中很大的挑战是将信号与噪声分开。语音识别,有人吗?三维表面匹配,例如基于化学键的弯曲角度计算有机化合物的形状,或确定两种有机化合物是否可能以有趣的方式相互作用(例如,生物受体)。各种物理模型(碰撞模拟,地震分析等)。当然还有加密技术,你可以一次又一次地花费更多的计算时间来处理相同的数据。

    GPU计算引擎不适合数据量显着使计算执行相形见绌的问题。 GPU可以很好地处理内存中的内容。将数据移入或移出GPU内存通常是整个计算中最昂贵的一步,因此您需要确保有足够的计算来“弥补”将数据加载到内存中的成本。如果数据太大而无法放入内存,则必须采用分布式计算策略。

    例如,计算PB级数据库的主键索引可能不适合GPU,因为大部分工作可能只是将数据从硬盘转移到内存中。索引计算本身是相当微不足道的,这并没有带来非常有趣的GPU获胜,而且我确信数据可以被分割成块并且块由GPU船核心独立索引,数据的可变性可能会阻止GPU以其满负荷运行。 (GPU代码在所有“oarsmen”(处理器核心/线程)向同一方向拉动时效果最佳 - 在单独的数据上统一执行)虽然数据库索引可能通过使用GPU方法看到一些好处,但它肯定不会那么大与CPU基线相比,性能提升更适合GPU执行模型约束 - 如信号处理。

答案 1 :(得分:0)

暴力加密攻击? MD5由Whitepixel完成,SHA-256已由所有比特币矿工完成。另一方面,我不知道bcrypt()scrypt()的任何GPU实现,但在该领域的学术工作可能是一个更好的人。

答案 2 :(得分:0)

了解哪种应用程序非常适合GPGPU的最简单方法是查看其他组已达到的加速比。以下是与该信息的几个链接:

看起来军事/航空航天,生命科学,能源,金融,制造业,媒体以及其他一些较小的行业都有强劲加速的例子。