学习Nvidia CUDA

6

我是一名开发图像和视频算法的C++程序员,我是否应该学习Nvidia CUDA?或者它只是那些即将消失的技术之一?

5个回答

11

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

然而,它比OpenCL更成熟,有很好的文档,并且使用它学到的技能将轻松转移到其他并行数据处理工具包中。

例如,阅读Steele和Hillis的数据并行算法,然后查看Nvidia教程 - 两者之间存在明显的联系,尽管Steele/Hillis的论文是在CUDA推出20年之前写的。

最后,FCUDA项目正在努力使CUDA项目能够针对非NVIDIA硬件(FPGA)进行目标定位。


3

CUDA应该还会持续一段时间,但如果你刚开始学习,我建议看看OpenCLDirectCompute。这两个都可以在ATI和NVidia硬件上运行,并且也可以在CPU的向量单元(SSE)上工作。


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

2

OpenCL可能需要一些时间才能变得普及,但我发现学习CUDA非常有启发性,而且我认为CUDA不会很快退出舞台。此外,CUDA足够容易学习,学习所需的时间比CUDA的使用寿命短得多。


2

这是高性能计算、并行计算的时代。CUDA和OpenCL是GPU计算的新兴技术,实际上是高性能计算!如果您是一个热情的程序员,并且愿意在并行算法方面取得基准成果,那么您真的应该选择这些技术。您程序的数据并行部分将在GPU多核架构上执行,只需要几分之一秒的时间,而在CPU上通常需要更长的时间。


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接