Computer Fundamentals 简明教程

Computer - Graphics Processing Unit (GPU)

What is Graphics Processing Unit (GPU?)

图形处理是一项专门为计算而发展的先进技术。图形处理器 (GPU) 是一种先进且专门的处理器,它使机器学习、深度学习、游戏、内容创作和许多更多相关技术成为可能。

图形处理器 (GPU) 是一种专用的电气电路,可以加速计算机图形和图像处理。GPU 对于神经网络和加密货币等非图形计算很有用。

GPU 最初是开发用于加速 3D 视觉的渲染。它们逐渐变得更具适应性和可编程性,并扩展了它们的能力。这使图形程序员能够使用先进的光照和阴影方法生成更迷人的视觉效果和逼真的场景。在其他应用程序中,GPU 最广泛地用于高性能计算 (HPC)、深度学习和其他领域的强大计算。

Significances of GPUs

GPU 主要用于加速实时 3D 图形应用程序(如游戏)。然而,随着二十一世纪的到来,计算机专家们认识到 GPU 可以解决世界上一些最复杂的计算问题。

这一认识开启了通用 GPU 的时代。显卡技术现在正被用于解决更广泛的挑战。当今的 GPU 比以往任何时候都更具可编程性,这使它们能够为超出标准图形渲染的广泛应用程序提供支持。

GPU 具有以下重要意义 −

GPUs for Gaming

由于采用了超真实的图形和庞大复杂的内置游戏世界,视频游戏变得更加依赖计算。随着 4K 屏幕和高刷新率等先进显示技术的出现,以及虚拟现实游戏的兴起,对图形处理的需求正在快速增长。GPU 能够渲染 2D 和 3D 图形。通过更好的图形性能,可以在更高的分辨率、更快的帧率或两者兼而有之的情况下玩游戏。

GPUs for Video Editing and Content Creation

GPU 提供了并行处理的计算解决方案,内置了 AI 功能和精密的加速,可实现更快的执行和更高定义格式的视频和图形的更轻松渲染。

GPU for Machine Learning

人工智能和机器学习是 GPU 技术最有趣的应用之一。由于 GPU 具有巨大的计算能力,因此它们可以为充分利用 GPU 高并行特性的工作负载提供显著的加速,例如图像识别。当今许多深度学习解决方案都依赖 GPU 与 CPU 协同工作。

How do GPUs work?

GPU 非常适合需要大量数据和重复计算的任务或程序。GPU 具有类似的提取-解码-执行周期,它的设计可以同时处理数千个线程,使其非常适合并行处理任务 −

gpu
  1. Fetching - GPU 从其内部存储器(VRAM)中提取指令以执行。

  2. Decoding - 流处理多处理器(SM)的控制单元对指令进行解码。每个 SM 可以同时处理多条指令并将它们分配给可用的内核。

  3. Executing - SM 中的多个小内核执行解码后的指令。这些内核执行矩阵乘法和矢量运算等操作,用于图形渲染和机器学习。

  4. Writing back - 结果返回到 GPU 内存或传输到显示输出。

总体而言,GPU 工作包括 −

  1. Parallel Processing - 与 CPU 不同,GPU 集成了数千个小内核,用于执行并行处理。这使得它对于可以细分为较小部分并对它们应用并行处理的更大、更复杂的任务非常高效。

  2. CUDA cores (NVIDIA) or stream processors (AMD) - 这些是 GPU 的基本处理单元,可以自行执行进程。现代 GPU 拥有数千个这样的内核。

  3. Memory - GPU 拥有自己的内存,称为显存或 VRAM(视频 RAM)。VRAM 能够同时执行多项任务。这使它们能够快速处理和渲染图像。

  4. Shader - 着色器是 GPU 中的专用处理单元。它们专门设计用于执行顶点着色、几何着色、像素着色和计算。这些单元支持图形渲染和计算。

  5. APIs - 为了优化 GPU,软件应用程序使用 CUDA 或 OpenCL 等编程接口来管理和执行并行活动。这些 API 为开发人员提供了工具、框架和库,以帮助他们设计充分利用 GPU 功能的程序。

  6. Data and task parallelism - GPU 能够同时对不同的数据集执行数据并行性和任务并行性。

  7. SIMD (Single Instruction, Multiple Data) - 此范例使 GPU 能够对多个数据点执行相同操作,从而使其适用于图像处理和科学计算。

  8. Task distribution − 对于图形渲染或科学仿真的工作负载是分组成不同的更小的作业;每个作业分配给一个单独的线程,然后由 GPU 并发运行。这种策略大幅缩短了总体处理时间。

  9. Thread execution − 线程是较小的工作单位,允许并发处理;该过程表明了 GPU 的工作方式。GPU 一次可支持数千条线程。

Characteristics of GPU

GPU 的一些主要特征如下 −

  1. Parallel processing − GPU 包含数千个专用处理单元,可同时执行多个任务。GPU 包含 SIMD,该特征允许 GPU 对并行中的多个数据点应用相同的操作。

  2. Memory − GPU 具有自己的内存。GPU 视频 RAM 实现了对数据的快速访问和更快的传输速度。

  3. High Throughput − GPU 的并行处理功能可提供高吞吐量。

  4. Shaders − 着色器允许转换和照明、纹理、着色和超出了图形渲染范围的计算任务

  5. Scalability − GPU 允许系统从几个内核扩展到数千个内核。

  6. Software Ecosystem − GPU 生态系统支持 OpenGL、DirectX 和 Vulkan 等 API,以及 CUDA(NVIDIA)和 OpenCL 等框架,从而允许开发者将 GPU 功能用于图形和普通用途计算。

Applications of GPU

GPU 被最广泛用于的一些常见应用领域如下 −

  1. Gaming − 游戏最广泛用于高分辨率和复杂图形的实时渲染。

  2. Visual effects − 用于电影和电视节目,制作逼真的模拟、3D 动画和精美的特效,

  3. 3D Modelling − CAD 和 3D 渲染应用程序,完全依靠 GPU 制作 3D 模型。

  4. AI and Machine Learning − GPU 可处理复杂计算,因此;GPU 用于人工智能和机器学习,用于训练和推断神经网络。

  5. Scientific Computing − GPU 在物理学、化学、生物、模拟和数据分析领域极其有用。

  6. Cryptocurrency Mining − GPU 用于验证区块链网络上的交易,求解密码难题。

  7. Scientific Computing − 科学计算包括模拟和数据分析。

Advantages of GPUs

GPU 的一些主要优势如下 −

  1. Quicker execution − GPU 计算执行速度快,给出的结果也更快。

  2. High processing power − GPU 有数千个小型处理核心,这些核心以并行模式执行任务。这种并行处理使 GPU 能够一次执行多个复杂处理。

  3. Scalability − GPU 具有高度可扩展性。

  4. Cost-effective solutions − 图形处理器是广泛计算任务的经济高效解决方案,因为它消除了对专用处理器或硬件的需求。

  5. Graphics rendering − 使用 GPU 计算呈现动画、视频游戏和仿真中的高质量 3D 视觉效果。

Disadvantages of GPUs

GPU 的主要缺点如下 −

  1. Complexity − 开发充分利用 GPU 能力的应用程序很困难,而且需要专门编程语言和框架方面的技能。

  2. Limited single-thread performance − 对于单线程任务而言,少量的 GPU 核心不如 CPU 核心强大。

  3. Memory constraints − GPU 内存有限,可能会妨碍需要大量内存访问的任务。

  4. Compatibility and driver issues − 为了优化 GPU 性能,更新 GPU 驱动程序至关重要。