为什么需要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...

更多学习资源

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


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

相关推荐
Thanks_ks18 小时前
计算机组成原理核心剖析:CPU、存储、I/O 与总线系统全解
计算机组成原理·计算机技术·存储系统·cpu 结构·i/o 设备·总线系统·硬件原理
扫地的小何尚1 天前
NVIDIA Dynamo:数据中心规模的分布式推理服务框架深度解析
人工智能·分布式·microsoft·链表·语言模型·gpu
探索云原生2 天前
开源 vGPU 方案:HAMi,实现细粒度 GPU 切分
ai·云原生·kubernetes·gpu
apcipot_rain3 天前
【计算机组成原理 第5版】白、戴编著 第三章多层次的存储器 题型总结2 cache部分
缓存·计算机组成原理
r0ysue_4 天前
02.上帝之心算法用GPU计算提速50倍
算法·gpu
爱串门的小马驹6 天前
VScode编译调试debug,gpu的cuda程序,Nsight
vscode·gpu·cuda
啊阿狸不会拉杆9 天前
[特殊字符]《计算机组成原理》第 8 章 - CPU 的结构和功能
java·开发语言·计算机组成原理
岑梓铭14 天前
考研408《计算机组成原理》复习笔记,第二章(3)数值数据的运算和存储(定点数计算)
笔记·考研·408·计算机组成原理
摩尔线程15 天前
推测解码算法在 MTT GPU 的应用实践
算法·语言模型·大模型·gpu算力·gpu·摩尔线程
2301_8018217115 天前
实验-设计一个应用系统(计算机组成原理)
cpu·risc-v·计算机组成原理·logisim