代码之家  ›  专栏  ›  技术社区  ›  Chris McCauley

CUDA能解决什么样的数据处理问题?

  •  3
  • Chris McCauley  · 技术社区  · 15 年前

    我研究过许多数据匹配问题,通常可以归结为快速并行地运行许多CPU密集型算法的实现,如Hamming/Edit distance。这是CUDA有用的东西吗?

    你用它解决了什么样的数据处理问题?真的比标准的四核英特尔台式机有提升吗?

    克里斯

    5 回复  |  直到 15 年前
        1
  •  5
  •   basszero    15 年前

    我想你已经回答了你自己的问题。一般来说,CUDA/OpenCL加速了大规模的并行操作。我们使用CUDA执行各种DSP操作(FFT、FIR),并看到了数量级的加速。几百美元的数量级加速是一种偷窃。虽然像MKL和OpenMP这样的专用CPU库给了我们相当大的速度提升,但是CUDA/OpenCL要快得多。

    检查 here

        2
  •  1
  •   Xavier Ho    15 年前

    例如,在2009年的SIGGRAPH中,他们展示了 CUDA implementation of Vray for Maya . 实时光线跟踪和预览质量在20 fps与200美元的卡?我认为这很有帮助。

        3
  •  1
  •   Andrey    15 年前

    是的,这是CUDA的主要领域。如果满足下列条件,则效率最高:

    1. 没有分支。或者至少相邻的元素以相同的方式分支。
    2. 元素在内存中均匀分布。

        4
  •  1
  •   Pieter    15 年前

    CUDA已经被用来极大地提高计算机断层扫描的速度 FASTRA project 例如,性能与 (不仅仅是四核台式机!)用消费级硬件组装而成,只需几千欧元。

    我知道的其他研究课题是群优化和实时音频处理。

    一般来说:该技术可用于 每一个 域在哪里 全部的 必须对数据进行处理 因为所有的核心都将执行相同的操作。如果你的问题归结为这种操作,你就可以去:)。可惜不是所有的东西都属于这一类。。。

        5
  •  1
  •   DanH    14 年前

    并行一般有两种类型:任务并行和数据并行。前者CPU加速,后者GPU加速。其原因是CPU具有复杂的分支预测、无序执行硬件和许多阶段管道,使它们能够并行执行独立任务(例如四核上的4个独立任务)。另一方面,GPU剥离了大部分的控制逻辑,取而代之的是大量的ALU。因此,对于具有数据并行性的任务(例如简单的矩阵加法),GPU可以利用其许多ALU来并行地操作这些数据。像汉明距离这样的东西对GPU来说是很好的,因为你只是在计算两个字符串之间的差异数,其中每个字符只是基于位置不同,并且独立于同一字符串中的任何其他字符。