【问题标题】:GPGPU Applications other than Image processing?GPGPU 图像处理以外的应用?
【发布时间】:2012-07-21 05:53:00
【问题描述】:

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

【问题讨论】:

  • 光线追踪、模拟,基本上任何需要并行浮点运算的东西。
  • @Blender 实际上光线追踪涉及很多分支,因此对于现代 GPGPU 的 SIMD 架构并不理想
  • 我的意思是,如果你想找到更有效的方法来进行光线追踪,那是一个很好的项目,但我想现在没有好的方法可以做到,否则我们会有实时光线追踪器现在
  • NVIDIA 刚刚召开了一场盛大的会议。实际上有数百篇关于 GPU 计算及其应用的各个方面的论文。所有材料都在网上。如果您还没有看过它,那么您还不够努力:google GTC2012。但这与 SO 无关,我已投票结束。
  • 如果您所在地区有任何流行的行业,不妨看看他们需要什么类型的计算,以及是否可以使用 GPU 进行加速。

标签: cuda gpu gpgpu


【解决方案1】:

GPU 计算引擎的专用处理架构对于您遇到的任何数据处理问题都很有用:

  1. 大量数据
  2. 对该数据的每个元素执行的重要计算,
  3. 计算每个输出元素所需的输入数据适合 GPU 内存,或者可以在需要时进行编排以到达 GPU 内存。

如果可以同时对所有数据元素独立执行计算,这会有所帮助,但这不是严格要求的。

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

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

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

例如,计算 PB 数据库的主键索引可能不太适合 GPU,因为大部分工作可能都花在将数据从硬盘中取出到内存中。索引计算本身相当微不足道,这并不能带来非常有趣的 GPU 胜利,虽然我确信数据可以被分割成块,并且这些块可以由大量 GPU 核心独立索引,但数据的可变性可能会阻止 GPU 满负荷运行。 (当所有“桨手”(处理器内核/线程)都朝着同一个方向拉动时,GPU 代码工作得最好——在单独的数据上统一执行)虽然数据库索引可能会通过使用 GPU 方法看到一些好处,但它肯定不会那么大比 CPU 基线的性能改进更适合 GPU 执行模型约束 - 例如信号处理。

【讨论】:

    【解决方案2】:

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

    【讨论】:

      【解决方案3】:

      确定哪些类型的应用程序非常适合 GPGPU 的最简单方法是查看其他组已实现的加速。以下是一些包含该信息的链接:

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

      【讨论】:

        猜你喜欢
        • 2012-05-10
        • 2014-11-02
        • 2018-06-21
        • 2011-01-25
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多