6

我是开发图像和视频算法的 C++ 程序员,我应该学习 Nvidia CUDA 吗?还是这些技术中的一种会消失?

4

5 回答 5

11

CUDA目前是来自 NVIDIA 的单一供应商技术,因此没有OpenCL所提供的多供应商支持。

但是,它比OpenCL更成熟,拥有丰富的文档,使用它学习的技能很容易转移到其他并行数据处理工具包。

例如,阅读 Steele 和 Hillis 的Data Parallel Algorithms,然后查看Nvidia 教程- 两者之间有明确的联系,但 Steele/Hillis 的论文是在 CUDA 引入之前20 多年写成的。

最后,FCUDA 项目正在努力让 CUDA 项目以非 nvidia 硬件 (FPGA) 为目标。

于 2010-02-04T17:41:55.393 回答
3

CUDA 应该会坚持一段时间,但如果您刚刚开始,我建议您查看OpenCLDirectCompute。除了在 CPU 的矢量单元 (SSE) 上工作之外,它们都在 ATI 和 NVidia 硬件上运行。

于 2010-02-04T17:24:27.053 回答
2

我认为您应该坚持使用OpenCL,这是一个开放标准,并受到 ATI、nVidia 等的支持。CUDA 可能不会在未来几年消失,但无论如何它与非 nVidia GPU 不兼容。

于 2010-02-04T17:23:45.110 回答
2

OpenCL 可能需要一段时间才能普及,但我发现学习 CUDA 非常有用,而且我认为 CUDA 不会很快成为众人瞩目的焦点。此外,CUDA 非常简单,学习它所需的时间比 CUDA 的保质期要短得多。

于 2010-02-19T14:29:18.867 回答
2

这是高性能计算、并行计算的时代。CUDA和OpenCL是GPU计算的新兴技术,实际上是一种高性能计算!如果你是一个充满激情的程序员,并且愿意在并行算法中实现基准测试,那么你真的应该选择这些技术。在 GPU 多核架构上,程序的数据并行部分将在几分之一秒内执行,这通常在 CPU 上花费更长的时间。

于 2012-10-18T06:35:12.957 回答