在今天的文章中,我们继续谈论芯片。
小早君在之前的文章中说过,半导体芯片在业界通常分为数字芯片和模拟芯片。其中数字芯片的市场规模比较大,达到70%左右。
数字芯片可以进一步细分为逻辑芯片、存储芯片和微控制器(MCU)。
存储芯片和MCU将在后面介绍。今天小早君重点介绍逻辑芯片。
逻辑芯片实际上是一种计算芯片。它包含各种逻辑门,可以实现运算和逻辑判断的功能。它是最常见的芯片之一。
我们经常听到的CPU,GPU,FPGA,ASIC都是逻辑芯片。现在特别流行的AI用的所谓“AI芯片”,主要指的就是它们。
█CPU(中央处理器)
先说大家最熟悉的CPU,英文全称是Central Processing Unit。
CPU但是大家都知道CPU是电脑的心脏。
现代计算机都是基于20世纪40年代诞生的冯·诺依曼架构。在这种体系结构中,它包括算术单元(ALU)、控制器(CU)、存储器、输入设备、输出设备等部件。
冯诺依曼架构数据来了,会先放在内存里。然后,控制器会从内存中获取相应的数据,交给运算器进行运算。操作完成后,结果被返回到内存中。
这个过程有一个更有说服力的名字:“取-解码-执行-内存访问-写回”。
如你所见,CPU负责算术单元和控制器的两个核心功能。
具体来说,算术单元(包括加法器、减法器、乘法器和除法器)负责执行算术和逻辑运算,而且是真的在工作。负责从内存中读取、解码和执行指令的控制器正在指指点点。
除了运算器和控制器,CPU还包括时钟模块和寄存器(缓存)等部件。
时钟模块负责管理CPU的时间,为CPU提供稳定的时基。它驱动CPU中的所有操作,并通过定期发送信号来调度每个模块的工作。
寄存器是CPU中的高速存储器,用来临时存储指令和数据。它在CPU和内存(RAM)之间的“缓冲”比普通内存更快,避免内存“拖累”CPU的工作。
寄存器的容量和访问性能可以影响CPU对内存的访问次数,进而影响整个系统的效率。后面说到内存芯片的时候,我们也会提到。
CPU一般根据指令集架构来分类,包括x86架构和非x86架构。X86基本上是一个复杂指令集(CISC),而非x86基本上是一个精简指令集(RISC)。
PC和大部分服务器使用x86架构,Intel和AMD占主导地位。非x86架构的类型很多,近年来迅速崛起,主要有ARM、MIPS、Power、RISC-V、Alpha等。以后会介绍的。
█图形处理器
我们再来看看GPU。
GPU是显卡的核心部件,英文全称是Graphics Processing Unit,是一种图形处理单元。
GPU不能等同于显卡。除了GPU,显卡还包括显存、VRM稳压模块、MRAM芯片、总线、风扇、外设接口等。
显卡1999年,NVIDIA率先提出了GPU的概念。
之所以提出GPU,是因为90年代游戏和多媒体业务的快速发展。这些服务对计算机的3D图形处理和渲染能力提出了更高的要求。传统CPU无法处理,所以引入GPU来分担这项工作。
GPU按照形式可以分为独立GPU(dGPU)和集成GPU(iGPU),也就是常说的独立显示和集成显示。
GPU也是计算芯片。所以和CPU一样,它包括运算器、控制器和寄存器。
但由于GPU主要负责图形处理任务,其内部架构与CPU有很大不同。
如上图所示,CPU核心(包括ALU)数量相对较少,最多只有几十个。但是,CPU有大量的缓存和复杂的控制器(CU)。
之所以这样设计,是因为CPU是通用处理器。作为计算机的主要核心,它的任务非常复杂,不仅要处理不同类型的数据计算,还要响应人机交互。
复杂的条件和分支,以及任务之间的同步和协调,会带来大量的分支跳转和中断处理。它需要更大的缓存来保存各种任务状态,以减少任务切换的时延。它还需要更复杂的控制器来进行逻辑控制和调度。
CPU的强项是管理和调度。实操功能不强(ALU占5%~20%左右)。
如果把处理器看做一个餐厅,CPU就像一个全能餐厅,里面有几十个高级厨师。这家餐厅可以做各种菜系,但是因为菜系多,协调准备菜品要花很多时间,上菜速度也比较慢。
GPU完全不一样。
GPU是为图形处理而生的,任务非常明确单一。它要做的就是渲染图形。图形由大量像素组成,属于类型高度统一、相互独立的大规模数据。
所以GPU的任务就是在最短的时间内完成大量同质化数据的并行运算。所谓的调度协调“杂事”很少。
当然,并行计算需要更多的内核
如上图所示,GPU的核数远远超过CPU,可以达到几千甚至上万(因此得名“众核”)。
RTX4090有16384个核的流处理器GPU,称为流多处理器(SM),是一个独立的任务处理单元。
在整个GPU中,会划分成多个流处理区域。每个处理区域包含数百个内核。每个核,相当于一个简化版的CPU,有整数运算和浮点运算的功能,还有排队和结果收集的功能。
GPU的控制器功能简单,缓存少。其ALU比例可达80%以上。
虽然GPU单核的处理能力弱于CPU,但它的规模巨大,非常适合高强度的并行计算。在晶体管规模相同的情况下,其计算能力强于CPU。
还是以餐厅为例。GPU就像一个拥有数千名初级厨师的餐厅。只适合某个指定的菜系。但是因为厨师多,配菜简单,所以大家一起做饭上菜比较快。
CPU vs GPU█GPU和AI计算
众所周知,现在的AI计算正在抢购GPU。英威达也赚得盆满钵满。为什么会这样?
原因很简单,因为AI计算和图形计算一样,也包含了大量高强度的并行计算任务。
深度学习是目前最主流的人工智能算法。从过程上看,包括训练和推理两个环节。
在训练过程中,通过输入大量数据来训练复杂的神经网络模型。在推理过程中,我们利用训练好的模型和大量数据得出各种结论。
由于训练过程涉及海量的训练数据和复杂的深度神经网络结构,所需的计算规模非常大,对芯片的计算性能要求很高。在推理环节,对简单指定的重复计算和低延迟要求较高。
他们使用的具体算法,包括矩阵乘法、卷积、循环层、梯度运算等。,被分解成大量的并行任务,可以有效缩短任务完成时间。
GPU凭借其强大的并行计算能力和内存带宽,可以很好地应对训练和推理任务,成为深度学习领域的首选解决方案。
目前大部分企业使用英伟达的GPU集群进行AI训练。如果优化合理,一块GPU卡可以提供相当于几十到几百台CPU服务器的计算能力。
英伟达HGX A100 8 GPU组件然而,在推理过程中,GPU的市场份额并没有那么高。具体原因后面再说。
GPU应用于计算外部图形始于2003年。
那一年,gp GPU(GPU上的通用计算)的概念被首次提出。意味着利用GPU的计算能力,在非图形处理领域进行更通用、更广泛的科学计算。
GPGPU在传统GPU的基础上进一步优化,使其更适合高性能并行计算。
2009年,斯坦福的几位学者首次展示了用GPU训练深度神经网络的成果,引起了轰动。
几年后的2012年,神经网络之父杰弗里·辛顿(Geoffrey Hinton)的两个学生亚历克斯·克里热夫斯基(Alex Krizhevsky)和伊利亚苏·苏茨基弗(Andrew Sutskever)利用“深度学习+GPU”的方案,提出了深度神经网络AlexNet,将识别成功率从74%提高到85%,一举赢得了Image Net挑战赛。
左起:伊利亚苏·茨科沃、亚历克斯·克里切夫斯基和杰弗里·辛顿,彻底掀起了“AI+GPU”的浪潮。英伟达迅速跟进,投入大量资源,三年内将GPU性能提升了65倍。
除了硬件和硬计算能力,他们还积极围绕GPU构建开发生态。他们基于自己的GPU建立了CUDA(Compute Unified Device Architecture)生态系统,提供了完善的开发环境和方案,帮助开发者更轻松地使用GPU进行深度学习和开发或高性能计算。
这些早期的精心布局最终帮助英伟达在AIGC爆发时获得了巨大的红利。目前它们的市值高达1.22万亿美元(接近英特尔的6倍),是名副其实的“AI无冕之王”。
那么,AI时代的计算是GPU吗?我们经常听说的FPGA和ASIC,似乎也是不错的计算芯片。他们的区别和优势是什么?
敬请期待下集:什么是ASIC和FPGA。
参考资料:
1.《了解GPU的概念和工作原理》,开源LINUX;
2.AI芯片架构体系概述,Garvin Li,知乎;
3.GPU、FPGA、ASIC加速器有什么区别?“,智虎,胡说八道;
4.《带你深入了解GPU、FPGA、ASIC》,观察汽车行业一线;
5.《为什么GPU是AI时代计算能力的核心》,牧溪集成电路;
6.《自动驾驶三大主流芯片架构概述》,数字化转型;
7.《AIGC计算全景及趋势报告》,量子比特;
8.百度百科和维基百科。
本文来自微信微信官方账号:鲜枣课堂(ID: xzclasscom),作者小枣君。
投诉水文 我要纠错