CUDA 是 Nvidia GPU 的通用计算平台。使用 CUDA 后, GPU 中的任务执行顺序打乱,多项任务能够并行运行。
什么是 CUDA?
随着行业的发展,企业对计算能力的需求越来越迫切。但全球的 CPU 制造商也面临着尺寸、温度等问题,不知该如何突破这层层限制,进一步提升 CPU 性能。面对这种局势,计算机行业供应商已异军突起,从其他方向发力。其中,使用 GPU 并行计算,是大幅提升性能的有效解决方案。GPU 中的内核数量远远超过 CPU。CPU 需要按照特定顺序执行任务,但在 GPU 中,一组任务可以重新组合并行运行。
CUDA 是 Nvidia GPU 的通用计算平台。使用 CUDA 后, GPU 中的任务执行顺序打乱,多项任务能够并行运行。CUDA 支持 C、C++ 和 FORTRAN 多种语言,因此处理 NVIDIA GPU 中的计算密集型任务也更为简单。CUDA 广泛用于需要大量计算能力的领域,也适用于对性能要求更高,且能够实行并行的场景中。机器学习、医学科学研究和分析、物理学、超级计算、密码挖掘、科学建模和仿真等领域都在使用 CUDA。
CUDA 发展历史以及最新版本
GPU 应用于并行计算开始于近 20 年前。斯坦福大学的一组研究人员发布了 Brook,一个通用编程模型平台。这项研究由 Nvidia 资助,首席研究员 Ian Buck 后来加入了 Nvidia,并以 GPU 并行计算为基础开发了一款商业产品 CUDA。到目前为止,Nvidia 共发布了 32 个版本,最新版本名 *CUDA toolkit 11.1 Update 1.*CUDA 最初只支持 C 语言,现在也适用于 C++。
CUDA 的具体功能,以及如何使用?
在 CUDA 编译器辅助下,任何一段代码都可以使用 global 关键字在 GPU 上运行。程序员必须根据 CUDA 指南更改 malloc/new 和 free/delete,以便在 GPU 上分配空间。一旦 GPU上的计算完成,结果就会同步并移植到 CPU。