CUDA

CUDA

CUDA 是 Nvidia GPU 的通用计算平台。使用 CUDA 后, GPU 中的任务执行顺序打乱,多项任务能够并行运行。

用 Incredibuild 加速 CUDA

什么是 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 License

如何下载 CUDA

CUDA 的最新版本可从链接网站下载。不同操作系统(如 Windows 和 Linux)有不同版本。如果您想下载较旧版本的 CUDA,请查看网址

CUDA Windows 版

安装 CUDA Windows  版之前,必须先安装 CUDA 兼容的 GPU、Windows 版本和Visual Studio。在下载 CUDA 之前,请验证您的系统是否有 CUDA 支持的 GPU。验证后,下载所需的 CUDA 版本并将其安装到您的系统上。详细内容,请参考安装指南

CUDA Linux 版

在下载 CUDA Linux 版之前,您必须具备 CUDA 兼容的 GPU、GCC 编译器、Linux版本以及工具链。CUDA 的多个 Linux 发行版安装程序可在链接网页中下载。您还可以使用 Linux 发行版的软件包管理器安装 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 进行构建。

CUDA 的替代产品

CUDA 最大的竞争产品是 OpenCL。OpenCL 是由苹果公司(OpenCL 和 OpenGL 已被苹果硬件弃用,取而代之的是 Metal 2)和 Khronos 集团创建的,于 2009 年推出。OpenCL 和 CUDA 最大的区别是支持的硬件。CUDA 是专为 Nvidia 的 GPU 设计的,而 OpenCL 可在 Nvidia 和 AMD 的 GPU 上运行。同时,OpenCL 的代码可以在 GPU CPU 上运行,而 CUDA 的代码只能用于 GPU 。CUDA 在 Nvidia GPU 中的运行速度要很快,是机器学习研究者的优选。

icon

要点总结

一款知名工具,在 GPU 上运行任务,不需要顺序执行,可以与其他任务并行运行。

获取免费 License

More Compilers

  • Clang/LLVM

  • GCC

  • MS (VS) C++

  • g++ / gnu

  • tcc

  • Intel c++ (floating license)

  • ARM c++ (floating license)