为什么需要GPU?

图形处理器(GPU)是现代计算机系统中不可或缺的部分,它在许多应用中发挥了关键作用,特别是在3D图形渲染、深度学习和区块链等领域。

为什么我们需要GPU呢?

这源于它在图形渲染过程中的关键作用。让我们来看一下3D图形渲染的流程,它通常包括顶点处理、图元处理、栅格化、片段处理和像素操作五个步骤。

  • 顶点处理:GPU将多边形三维空间的顶点转换到屏幕二维空间中。

  • 图元处理:GPU将多边形的顶点连接起来,并剔除不在屏幕中的图元,以减少后续处理的工作量。

  • 栅格化:这个阶段会把多边形涵盖的区域转换成一个个的像素点。

  • 片段处理:GPU计算每一个像素点的颜色和透明度,并给它们上色。

  • 像素操作:把不同的多边形像素点混合到一起。

在这个流程中,绝大部分的处理都是固定的且可以并行的,不需要CPU的乱序执行、分支预测,以及实现他们的复杂电路。这使得GPU电路简单,算得更快,成本也可以更低。

GPU的进化

早期的GPU图形渲染都是使用硬件的固定流水线处理的,要实现不同的渲染效果,开发人员只能调整配置参数。

2001年,微软在Direct3D 8.0中开始引入可编程管线的概念,使得开发人员可以修改顶点处理和片段处理的程序逻辑。

2005年,微软的XBox360提出了一种统一着色器架构,ATI和Nvidia也开始跟进采用。虽然流水线不同步骤的处理逻辑不同,但是可以使用相同的指令集,所以硬件电路可以共用。这使得着色器变成了一个通用模块,可以做各种通用计算。因此,图形处理器进化为通用图形处理器(GPGPU)。

2007年,NVIDIA发布了CUDA(Compute Unified Device Architecture)平台,这是一种使用NVIDIA的图形处理器进行通用计算的技术。CUDA平台提供了一个能让开发者直接使用高级语言编写GPU代码的接口,大大降低了开发难度。

随着CUDA的出现,GPU开始被广泛用于机器学习领域。机器学习算法,尤其是深度学习算法,通常涉及大量的矩阵运算,这种计算特性非常适合GPU的并行处理能力。例如,神经网络的训练过程中,需要对大量的神经元进行并行计算,这正是GPU擅长的。

此后,许多基于CUDA的深度学习框架,如TensorFlow、PyTorch等,开始出现。这些框架进一步降低了使用GPU进行深度学习的门槛,使得更多的研究者和开发者能够利用GPU进行机器学习。

现代GPU的特点

现代GPU有以下特点:

  • 只保留了取指令、指令译码、ALU、执行上下文等相关电路。
  • 引入了单指令多线程(SIMT)技术,一次取多条数据,然后交给多个ALU并行计算。
  • GPU还实现了超线程技术。通用GPU在执行任务时会遇到停顿问题,此时可以做别的任务,所以执行上下文可以比ALU多。
  • 因为并行计算能力,与CPU相同价格的GPU在深度学习时所需的时间往往能减少一两个数量级。无论是在性能还是在成本方面,GPU都是一个非常高效的计算工具。

图片来源:www.researchgate.net/figure/Simp...

更多学习资源

我注册了一个微/信/公/众/号:萤火架构,后续会分享很多架构方面的真实经验和认知,欢迎关注,以免错过精彩内容。


以上就是本文的主要内容,如有问题,欢迎交流。

相关推荐
众人皆醒我独醉19 小时前
训练加速实战:Flash Attention、Gradient Checkpointing 与数据流水线
后端·面试·gpu
简单同学1 天前
深入 NVIDIA GPU:CSDN 专栏发布索引
系统架构·gpu
众人皆醒我独醉1 天前
大模型训练优化:FSDP、DeepSpeed ZeRO 与混合精度
后端·面试·gpu
Eloudy2 天前
nvCOMP 从开源到闭源的分水岭 2.2.0与基本原理概述
gpu
小林ixn3 天前
WebGPU + Transformers.js:把 DeepSeek-R1 塞进浏览器,真香!
javascript·llm·gpu
Eloudy3 天前
一键构建 pytorch cpp lib 前端和 wheel
人工智能·pytorch·gpu
Eloudy4 天前
从 vega 64 到 MI 100 ,AMD GPU 的裂变历史
人工智能·深度学习·gpu
Eloudy5 天前
ubuntu 22.04 -cuda12.8.2- holoscan-sdk-4.5-doca-ofed
gpu·rdma·roce
Smoothcloud润云8 天前
GPU租赁数据安全怎么做?
人工智能·算法·ai·aigc·gpu算力·gpu
对象存储与RustFS8 天前
别再只怪 GPU 了:2026 年 AI 训练/推理的存储瓶颈,以及 7 个被忽视的真相
开源·ai编程·gpu