【发布时间】:2010-02-04 17:18:20
【问题描述】:
我是开发图像和视频算法的 C++ 程序员,我应该学习 Nvidia CUDA 吗?还是这些技术中的一种会消失?
【问题讨论】:
标签: image video cuda parallel-processing h.264
我是开发图像和视频算法的 C++ 程序员,我应该学习 Nvidia CUDA 吗?还是这些技术中的一种会消失?
【问题讨论】:
标签: image video cuda parallel-processing h.264
CUDA 目前是 NVIDIA 的单一供应商技术,因此没有 OpenCL 所提供的多供应商支持。
但是,它比OpenCL 更成熟,拥有great documentation,并且使用它学到的技能很容易转移到其他并行数据处理工具包中。
作为一个例子,阅读 Steele 和 Hillis 的 Data Parallel Algorithms,然后查看 Nvidia tutorials - 两者之间有明确的联系,但 Steele/Hillis 的论文在引入 CUDA 之前是在 20 years 上写的.
最后,FCUDA Projects 正在努力让 CUDA 项目以非 nvidia 硬件 (FPGA) 为目标。
【讨论】:
CUDA 应该会坚持一段时间,但如果您刚刚开始,我建议您查看OpenCL 或DirectCompute。它们都可以在 ATI 和 NVidia 硬件上运行,此外还可以在 CPU 的矢量单元 (SSE) 上运行。
【讨论】:
我认为您应该坚持使用OpenCL,它是一个开放标准,并受到 ATI、nVidia 等的支持。 CUDA 可能不会在未来几年消失,但无论如何它与非 nVidia GPU 不兼容。
【讨论】:
OpenCL 可能需要一段时间才能普及,但我发现学习 CUDA 非常有用,而且我认为 CUDA 不会很快成为众人瞩目的焦点。此外,CUDA 非常简单,学习它所需的时间比 CUDA 的保质期要短得多。
【讨论】:
这是高性能计算、并行计算的时代。 CUDA和OpenCL是GPU计算的新兴技术,实际上是一种高性能计算!如果你是一个充满激情的程序员并且愿意在并行算法中实现基准测试,那么你真的应该选择这些技术。在 GPU 多核架构上,程序的数据并行部分将在几分之一秒内执行,这通常在 CPU 上花费更长的时间。..
【讨论】: