天天看点

每天学点AI知识: 了解GPGPU 与CUDA,华为的CANN也很厉害!

作者:爱编程的查理

今天学到了一个新概念, GPGPU, 跟大家分享一下。

图形处理单元上的通用计算(General-purpose computing on graphics processing units,缩写GPGPU),也称为 GPGPU 计算,是指除了把GPU用作传统的计算机图形计算之外,使用 GPU 进行通用计算。就是在图形处理单元(GPU)上运行的通用计算,而这些计算传统上由中央处理单元(CPU)处理的计算,

每天学点AI知识: 了解GPGPU 与CUDA,华为的CANN也很厉害!

将 GPU 用于通用计算可以增强 CPU 架构,通过加速应用程序的某些部分,而其余部分继续在 CPU 上运行,最终通过结合 CPU 和 GPU 处理能力来创建整体更快、更高性能的应用程序。

每天学点AI知识: 了解GPGPU 与CUDA,华为的CANN也很厉害!

GPU 与 GPGPU

每天学点AI知识: 了解GPGPU 与CUDA,华为的CANN也很厉害!
每天学点AI知识: 了解GPGPU 与CUDA,华为的CANN也很厉害!

基本上所有现代 GPU 都是 GPGPU。GPU 是一种可编程处理器,其上数千个处理核心以大规模并行方式同时运行,每个核心都专注于进行高效计算,促进对大量数据集的实时处理和分析。

每天学点AI知识: 了解GPGPU 与CUDA,华为的CANN也很厉害!

显卡用于图形渲染

虽然 GPU 最初主要设计用于渲染图像,但现在 GPGPU 也可以通过编程将处理能力用于满足科学计算需求。

每天学点AI知识: 了解GPGPU 与CUDA,华为的CANN也很厉害!

如果显卡与任何提供通用计算访问的特定框架兼容,则它就是 GPGPU。主要区别在于,GPU 计算是硬件组件,而 GPGPU 本质上是一个软件概念,其中专门的编程和设备设计促进了非专业计算的大规模并行处理。

什么是 GPGPU 加速?

每天学点AI知识: 了解GPGPU 与CUDA,华为的CANN也很厉害!

图形处理单元 (GPU) 是一种专用计算机处理器,可满足实时高分辨率 3D 图形计算密集型任务的需求。

每天学点AI知识: 了解GPGPU 与CUDA,华为的CANN也很厉害!

到 2012 年,GPU 已发展成为高度并行的多核系统,可以高效处理大量数据。对于并行处理大量数据块的算法,这种设计比通用中央处理单元 (CPU) 更有效,例如加密哈希函数、机器学习等。

GPU 的架构与 CPU 不同。CPU 专为单线程性能而设计,而 GPU 则旨在处理大量并行任务。GPU 的并行架构使其能够同时执行数千个线程,使其成为需要高吞吐量的数据处理任务的理想选择。此外,现代 GPU 配备了专门的硬件来执行矩阵乘法等任务,这是许多数据处理任务中的关键操作。

每天学点AI知识: 了解GPGPU 与CUDA,华为的CANN也很厉害!

GPGPU 加速是指一种加速计算方法,其中应用程序的计算密集型部分分配给 GPU,而通用计算则交给 CPU,从而提供超级计算级别的并行性。虽然高度复杂的计算是在 GPU 中计算的,但顺序计算可以在 CPU 中并行执行。

每天学点AI知识: 了解GPGPU 与CUDA,华为的CANN也很厉害!

GPGPU 设计的最显著的特点,就是是能够将信息从 GPU 双向传输回 CPU;通常,两个方向的数据吞吐量都很高,从而对特定高使用率算法的速度产生乘数效应。

GPGPU 管道可以显著的提高数据处理的速度, 尤其是在特别大型数据集, 或者包含 2D 或 3D 图像的数据处理。它用于复杂的图形管道以及科学计算;在具有大型数据集(如基因组图谱)的领域,或者二维或三维分析有用的领域更是如此——尤其是目前的生物分子分析、蛋白质研究和其他复杂的有机化学。

如何使用 GPGPU

编写支持 GPU 的应用程序需要并行计算平台和应用程序编程接口 (API),该接口允许软件开发人员和软件工程师构建算法来修改其应用程序并将计算密集型内核映射到 GPU。GPGPU 支持内存层次结构中的几种内存类型,以便设计人员优化其程序。

任何允许在 CPU 上运行的代码轮询 GPU 着色器以获取返回值的语言都可以创建 GPGPU 框架。并行计算的编程标准包括 OpenCL(独立于供应商)、OpenACC、OpenMP 和 OpenHMPP。

每天学点AI知识: 了解GPGPU 与CUDA,华为的CANN也很厉害!

OpenCL 全称是Open Computing Language,开放计算语言,是 Khronos Group 定义的开放标准, 一种开放的、免费的标准,OpenCL 提供了一个跨平台的 GPGPU 平台,支持 CPU 上的数据并行计算,用于超级计算机、云服务器、个人计算机、移动设备和嵌入式平台中各种加速器的跨平台并行编程。

每天学点AI知识: 了解GPGPU 与CUDA,华为的CANN也很厉害!

OpenCL 在 Intel、AMD、Nvidia 和 ARM 平台上得到积极支持。借助OpenCL这个工具,在 GPU 或其他兼容硬件加速器上执行并行通用计算。这包括移动数据、执行实际工作和获取结果。

截至 2016 年,OpenCL 是占主导地位的开放通用 GPU 计算语言。

每天学点AI知识: 了解GPGPU 与CUDA,华为的CANN也很厉害!

NVIDIA 于 2006 年通过创建计算统一设备架构 (Compute Unified Device Architecture,CUDA),提出了CUDA平台, 这是一个软件开发工具包 (SDK) 和应用程序编程接口 (API),CUDA 是一种用于加速并行计算的软件开发平台,允许使用编程语言 C 编写算法,以便在 GeForce 8 系列及更高版本的 GPU 上执行。CUDA 技术通过将任务分解为数千个独立执行的较小“线程”来实现并行处理。

CUDA API 及其运行时:CUDA API 是 C 编程语言的扩展,它增加了在 C 中指定线程级并行性以及指定 GPU 设备特定操作(如在 CPU 和 GPU 之间移动数据)的能力。

CUDA 是一个软件层,可以直接访问 GPU 的虚拟指令集和并行计算元素,以执行计算内核。除了驱动程序和运行时内核之外,CUDA 平台还包括编译器、库和开发人员工具,以帮助程序员加速他们的应用程序。

CUDA 设计目标是可以和 C、C++、Fortran 和 Python 等编程语言配合使用。这种可访问性使并行编程专家更容易使用 GPU 资源,而之前的 API(如 Direct3D 和 OpenGL)则需要高级图形编程技能。基于 CUDA 的 GPU 还支持 OpenMP、OpenACC 和 OpenCL 等编程框架。

每天学点AI知识: 了解GPGPU 与CUDA,华为的CANN也很厉害!

ROCm 是AMD在2016年推出的用于图形处理单元 (GPU) 编程的软件技术栈,包括HIP(基于 GPU 内核的编程)、OpenMP/消息传递接口 (MPI)(基于指令的编程)和 OpenCL。ROCm 涵盖多个领域:图形处理单元上的通用计算 (GPGPU)、高性能计算 (HPC)、异构计算。

每天学点AI知识: 了解GPGPU 与CUDA,华为的CANN也很厉害!

ROCm 运行于AMD的显卡。

每天学点AI知识: 了解GPGPU 与CUDA,华为的CANN也很厉害!

Metal GPGPU 是 Apple Inc. 的 API,是适用于 iOS 和 macOS 的低级图形编程 API,但它也可用于这些设备上的通用计算。

CUDA 中的 GPGPU

每天学点AI知识: 了解GPGPU 与CUDA,华为的CANN也很厉害!

CUDA 平台是一个软件层,可直接访问 GPU 的虚拟指令集和并行计算元素以执行计算内核。CUDA 旨在与 C、C++ 和 Fortran 等编程语言配合使用,是一个易于访问的平台,不需要高级图形编程技能,软件开发人员可以通过 CUDA 加速库和编译器指令使用它。支持 CUDA 的设备通常与主机 CPU 连接,主机 CPU 用于 CUDA 设备的数据传输和内核调用。

每天学点AI知识: 了解GPGPU 与CUDA,华为的CANN也很厉害!

GPGPU 的 CUDA 模型可加速各种应用,包括 GPGPU AI、计算科学、图像处理、数值分析和深度学习。CUDA 工具包包括 GPU 加速库、编译器、编程指南、API 参考和 CUDA 运行时。

除了CUDA, GPGPU有国产的框架吗?

每天学点AI知识: 了解GPGPU 与CUDA,华为的CANN也很厉害!

有, CANN,就是国产的CUDA替代方案,华为出品!

每天学点AI知识: 了解GPGPU 与CUDA,华为的CANN也很厉害!

CANN,全称是Compute Architecture for Neural Networks,异构计算架构, 这是华为针对AI场景推出的异构计算架构,向上支持多种AI框架,包括MindSpore、PyTorch、TensorFlow等,向下服务AI处理器与编程,发挥承上启下的关键作用,是提升昇腾AI处理器计算效率的关键平台。同时针对多样化应用场景,提供多层次编程接口,支持用户快速构建基于昇腾平台的AI应用和业务。

每天学点AI知识: 了解GPGPU 与CUDA,华为的CANN也很厉害!
每天学点AI知识: 了解GPGPU 与CUDA,华为的CANN也很厉害!

#GPU##首款国产7纳米GPGPU芯片亮相##显卡# #华为鸿蒙×昇腾云有望突破AI算力瓶颈##华为##英伟达##国产7纳米GPGPU芯片面世# #cuda##昇腾AI向上的力量# #微头条首发挑战赛##头条创作挑战赛##头条#