GPU 计算——它是什么?

您是否经常听说 GPU 计算或加速,但不确定它们的含义? 这是您需要知道的一切。

GPU 或图形处理单元存在于所有产生一种或另一种显示形式的电子电路中,尤其是计算机。

早期的图形处理器相对简单。 但随着游戏、3D 动画和视频渲染任务的出现,这些任务将 CPU 推到了极限,更强大的 GPU 不得不前来救援。

随着时间的推移,这些新的 GPU 卡的功能和复杂性都在增加,不同的公司和研究人员正在寻找利用其并行执行优势的方法。 这篇文章向您展示了到目前为止的进展情况。

什么是 GPU?

GPU 或图形处理单元是专为处理数据而设计的专用电路,以帮助创建用于显示的图像。 换句话说,GPU 是一个系统,它可以创建您在任何显示表面上看到的图像,例如计算机显示器、智能手机屏幕、游戏机等。

GPU 最初是简单的设备,可以将图形元素组合在一起,为特定设备创建理想的输出。 然而,随着时间的推移,随着计算机游戏的出现,GPU 的复杂性和功能开始增长,催生了 GPGPU 或 GPU 上的通用计算.

什么是 GPU 计算?

GPU 计算或 GPGPU 是使用 GPU 进行图形以外的计算。 这意味着使用嵌入在计算机视频卡中的 GPU,最初用于处理计算机图形以计算其他类型的数据,例如科学模拟、加密货币挖掘、代数计算、天气预报、神经网络等。

GPU 计算的这种演变的原因来自于图形处理单元的令人印象深刻的发展,它来自现代 GPU 系统的分布式并行架构。

随着计算机的 CPU 变得越来越强大,可以处理更复杂的程序和游戏,视频卡制造商也试图跟上现代计算和 3D 图形的发展。 英伟达公布了 GeForce 256 1999 年,作为世界上第一块 GPU 视频卡,事情从那里演变而来。

GPU 卡相对于 CPU 的主要优势在于其并行处理架构,这使得它们能够以分布式并行方式处理大型数据任务,从而防止出现瓶颈和 CPU 冻结。

GPU计算的应用有哪些?

GPU 计算的应用有很多,以下是一些热门用途:

  1. 机器学习和神经网络
  2. 模糊逻辑
  3. 生物信息学
  4. 分子建模
  5. 视频渲染
  6. 几何计算
  7. 气候研究和天气预报
  8. 天文物理学
  9. 加密
  10. 计算机视觉
  11. 密码破解
  12. 量子研究

GPU 与 CPU 处理

GPU 和 CPU 都处理数字数据,但它们的处理方式不同。 CPU 或中央处理单元设计用于高速串行处理,而 GPU 设计用于低速并行处理。 当然,一个 CPU 可以使用超线程来获得每个内核 2 个线程,甚至有几十个内核,但它们本质上是串行处理器。

虽然 CPU 可以有几个内核,但现代 GPU 有数千个内核,例如, Nvidia GeForce RTX 3090 它具有 10K+ 个内核。 但是,要获得优于 CPU 的优势,数据必须能够并行处理,例如一次处理包含数千张图像的流。

GPU 与 ASIC

ASIC 代表专用集成电路,这意味着它只能执行一项任务——即它被设计执行的任务。 ASIC 是一种独特的机器,它是从头开始开发的,需要专业的硬件知识来构建。 ASIC 通常用于加密货币挖掘,因为它们提供了良好的并行处理优势和比 GPU 更好的效率。

然而,两者之间的主要区别在于 GPU 更加通用。 例如,您可以使用 GPU 轻松构建加密货币挖矿设备。 这些零件很容易获得,如果您完成了挖矿,您可以随时将 GPU 卡出售给游戏玩家或其他矿工。 但是,使用 ASIC,您只能将二手机器出售给其他矿工,因为您几乎无法用它做任何其他事情。

除了加密货币挖掘之外,将您的手放在 ASIC 机器上变得更加困难,因为它们不是大众产品。 这与您可以随处使用并轻松配置的 GPU 系统形成鲜明对比。

GPU 与集群计算

虽然单个 GPU 卡包含数千个内核,这为您连接的任何计算机增加了巨大的功率,但理论上您可以在计算机主板上添加尽可能多的 GPU 卡,从而进一步提高其处理能力。

另一方面,计算机集群是指多台计算机联网在一起以充当一台大型计算机——超级计算机。 网络上的每台计算机称为一个节点,可以有一个多核 CPU,以及板载一个或多个 GPU 卡。

每个集群必须有一个主节点,它是负责管理和调度其工作节点的前端计算机。 它还将包含为其工作节点分配数据和程序以计算和返回结果的软件。

GPU 加速与超线程

CPU 旨在一次处理多个任务,这就是为什么它以非常高的速度运行,在这些多个进程之间调度处理时间。 但是,当它遇到计算密集型函数时,它可能会在循环中花费一段时间,然后再返回其他进程。 这通常会导致计算机普遍变慢,更糟糕的是,系统会完全冻结。

计算机设计人员可以通过使用超线程或 GPU 加速来避免这种可怕的情况。 超线程允许单个 CPU 内核充当两个处理线程。 因此,当一个线程陷入计算密集型循环时,另一个线程仍然可以将系统保持在一起。

现代计算机现在有多个内核,从 2 到 4、8、16、32 等等。 此外,它们具有超线程,因此 2 核 CPU 提供 4 个线程,4 核提供 8 个线程,依此类推。

多核 CPU 的超线程将解决大多数计算问题,防止瓶颈,并通过简单的游戏、音乐制作以及小型图形、视频和机器学习项目提供顶级性能。 但是,当您需要更多功能时,GPU 通常是正确的解决方案。

GPU 或硬件加速是软件应用程序利用 GPU 的并行处理能力来处理大量数据而不会使 CPU 陷入困境的能力。 许多专业应用程序依赖 GPU 加速才能正常运行。 其中包括视频和动画设计/渲染程序、编码器、密码学、大型神经网络等。

GPGPU 编程基础

GPU 的通用编程最初是使用 的DirectXOpenGL的 图书馆。 然而,这些都是为图形开发而设计的,因此您必须将数据重新用于类似图形的模型才能工作。

幸运的是,多年来 GPGPU 取得了重大进展,导致了库、编程语言和框架的出现。 这些框架中最受欢迎的是 Nvidia 的 CUDA。

CUDA 使任何开发人员都可以轻松地深入研究 GPU 编程,而无需了解经典 GPU 编程的细节。 它提供了增强图形以外的开发的功能,许多单元甚至具有机器学习特定的功能。

可用的库还可以轻松地从头开始创建新的 GPU 加速程序,或使预先编写的程序适应并行处理。 您选择正确的库,优化并行循环的代码,重新编译,仅此而已。

CUDA 核心与流处理器

通常,您会遇到这些术语 Cuda 核心 流处理器. 这两个术语都只是指 GPU 核心或 算术逻辑单元 GPU的. CUDA Core 是 Nvidia 的专有技术,而 Stream 处理器来自 AMD。

您可能会遇到的另一个术语是流式多处理器或 SM。 这是另一种 Nvidia 技术,最初每个 SM 将 8 个 CUDA 核心分组。 它一次执行 32 个线程扭曲,每个命令使用 4 个时钟周期。 较新的设计现在每个流式多处理器具有 100 多个内核。

顶级 GPU 语言和库

有很多库和语言可以在 Nvidia CUDA 和 AMD 平台上运行。 以下只是一些:

  1. 英伟达 cuBLAS – CUDA 的基本线性代数子程序
  2. 神经网络 – 深度神经网络库
  3. OpenCL的 – 并行编程的开放标准
  4. OpenMP的 – 对于 AMD GPU
  5. HIP – C++ 库
  6. 英伟达 cuRAND - 随机数生成
  7. 立方傅立叶变换 – 对于快速傅里叶变换
  8. 英伟达核电站 – 2D 图像和信号处理
  9. GPU VSIPL – 矢量图像和信号处理
  10. OpenCV的 – 用于计算机视觉的 GPU 库
  11. 开放式ACC – 并行开发的语言
  12. PyCUDA – 用于 CUDA 平台的 Python
  13. 张量RT – CUDA 的深度学习
  14. CUDA C++ – CUDA 的 C++ 语言
  15. CUDA C – CUDA 的 C 语言
  16. CUDA 语言 – FORTRAN 开发人员的 CUDA

顶级 GPU 集群项目

截至 2022 年 8 月,世界上速度最快的 10 台超级计算机中有 XNUMX 台是 GPU 加速的。 它们也都共享 Linux 操作系统,具体如下:

名称千万亿次CPU内核GPU核心功率(kW)
1.边疆1,102591,8728,138,24021,1002022
2.LUMI151.9075,2641,034,8802,9002022
3.首脑会议148.6202,7522,211,84010,0962018
4.内华达94.64190,0801,382,4007,4382018
5.珀尔姆特(Perlmutter)64.592,5892021
6.塞勒涅63.4671,680483,8402,6462020
7.天河261.445427,0084,554,75218,4822013
8.阿达斯特拉46.121,632297,4409212022

结论

在深入了解 GPU 计算及其附带的所有内容时,您现在应该已经了解了它的功能和范围。

欲了解更多信息,您可以查看开发者平台 英伟达在这里 或那个 AMD在这里.

Nnamdi Okeke

纳姆迪·奥克克

Nnamdi Okeke 是一位喜欢阅读各种书籍的计算机爱好者。 他偏爱 Linux 而不是 Windows/Mac,并且一直在使用
Ubuntu 从早期开始。 你可以在推特上通过 邦戈特拉克斯

文章:278

接收技术人员的东西

每月一次或两次技术趋势、创业趋势、评论、在线收入、网络工具和营销

发表评论

您的电邮地址不会被公开。 必填带 *