什么是 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。
立即试用
Get Free LicenseCUDA Windows 版
安装 CUDA Windows 版之前,必须先安装 CUDA 兼容的 GPU、Windows 版本和Visual Studio。在下载 CUDA 之前,请验证您的系统是否有 CUDA 支持的 GPU。验证后,下载所需的 CUDA 版本并将其安装到您的系统上。详细内容,请参考安装指南。
CUDA Linux 版
CUDA 的优势
- 免费
- 安装过程简单
- 新手友好,与 C 语言、C++ 和 Fortran Code 兼容
- 提供其他编程语言(如 Java、Python 等)的第三方包装器
- 社区资源丰富
- 代码库资源多样,可用于各种并行计算任务
- 运行速度快(对比竞争对手 OpenCL,优势明显)
CUDA 与 Incredibuild
Incredibuild 全马力加速编译、CUDA 编译和 NVIdia NSight 开发环境、测试以及大量计算密集型工作负载。本地网络及云中主机的空闲 CPU 在 Incredibuild 的辅助下得以充分利用,大量进程无缝分发,每一台主机都流畅地转换成拥有成百上千个内核的超级计算机。编译时间从根本上大大缩短,应用范围也得以扩大。
Nvidia Nsight Systems 与 CUDA
Nvidia Nsight Systems 收集来自 CPU、GPU、驱动程序和内核的数据,并根据一定的时间顺序展示数据,这样开发人员就能了解程序的变化。Nsight 系统有两个模块:Nsight Compute 和 Nsight Graphics,以及许多 API。使用 Nsight Compute,首先执行程序,执行有误的程序得以识别。程序员可以随之更改这些错误程序,提升性能。Nsight Graphics 则是一个独立的开发工具,支持调试、分析和导出帧,使用兼容的图像处理 SDK 进行构建。