& T* b, Y/ B+ D7 J0 M0 Z8 O8 o) `* K2 [& }6 a+ z5 r8 N
许多人都喜欢玩电脑游戏,而3D游戏里的每一帧画面都依赖于显卡的强大性能。显卡是现代PC里规模最庞大的核心组件,不仅能用于游戏和三维渲染,还在人工智能领域发挥着重要的作用。它有哪些结构,又如何生成游戏画面?本期我们将会带你从零开始认识显卡。我们在玩儿的电脑游戏,形态各异的建筑,细节丰富的车辆,一切都很真实,它们的本质其实是一个个不同位置的点,这些顶点在空间中相互连成线,形成无数个三角面,再经过贴图、光照、着色等复杂的渲染过程最终形成了我们看到的精美画面,从三角形的生成再到图像的输出,其中每一个步骤都需要显卡。作为电脑里进气管儿数量最多的核心组件,显卡有哪些结构,又是如何工作的?以这张ROG strix RTX4080猛禽为例,带你从零开始认识显卡。 " u" o3 I2 B, ]; ~7 z, N) E+ |' M2 g' p2 g, l4 _( v
( I' \& }2 j% g" _# U, i; P! g 8 Z6 R8 @/ Q$ l- M) \ / h" k' q7 v9 @4 ^/ f1 n+ d" S' n* }- m+ Q9 t- T5 u, @" v
显卡的正面是散热风扇,底部的黄色长条是用于传输数据的PCIE接口 1 U3 ^/ D/ o1 X; U$ ^* i% c$ r $ F% ?, t5 d4 \5 e侧面是装饰用的logo和供电接口5 N+ r( C- p' K4 X4 U T' p2 J
- A6 t6 `! C4 F- h7 n
而尾部则是用来连接显示器的视频接口。4 J# V6 e) p. b) {$ k! ]
5 d. {% c+ g5 v) j% q
显卡通常会以侧插的形式安装在主板接口上,此时风扇会朝向机箱底部,视频接口则会出现在机箱尾部,从机箱的侧面观察我们通常只会看到显卡的侧面和背板。 , Q! d( d6 `0 w5 ? n; V0 W, ~* z8 j1 q
一.显卡的供电 9 t0 C! p% C. o/ S1 c$ X$ Z% Z. V" r$ F; h. r; s
之前大部分显卡都使用8pin PCIE供电接口,能提供225W左右的供电,高功耗显卡则使用多个8pin才能满足需求。 1 j+ ?4 \9 |7 l- B& S) s0 t& ]# c: m, g& I. `+ w6 \! V
这张4080猛禽使用了最新的12V-2x6接口,体积十分小巧,单个接口可提供高达600W的供电。4 c) r# \" k% ~3 z4 o
7 z' U! d$ O( P) e1 k8 D0 o& h华硕也设计出了无需外接供电线的背插显卡,可以直接从主板取电,安装以后会更加的简洁美观,但要搭配特定的主板或转接头才能使用。 8 U' K* \, n+ g, u( H1 ^3 O, `* h! v/ F- a J# @8 y( c
二.显卡的散热 5 c1 I/ s+ J2 E- V" v0 `3 o: \ , _. F/ H% @/ [- E! z9 }这张显卡在满载时的功耗可以达到360W,为了有效的排出热量,巨大的散热模组占据了整张显卡90%的体积。 ' G( v6 H8 ^( I2 L- z+ A+ C: W& t+ @ o6 _) W" B
而最下面这张小小的电路板才是显卡的本体,也是热量的来源。 1 l/ Q [! r8 C$ p# {0 Y 4 ~& T# A' k* n( w9 U0 F4 ^ 2 [/ M3 F' I8 V( S 0 n; @3 v) Z, h9 H4 c8 U散热模组由风扇,鳍片,热管与均热板构成,这里的核心是热管,热管的内壁是由粉末烧结成的多孔结构,在制造成型后,热管内部会填充少量的高纯水,并被抽成真空,以降低水的沸点和凝固点。 , D: H- `3 u5 z. N+ Y/ v) H" E" q1 X) I: W. t* f0 W9 @2 N3 p
散热原理:当热管一侧接触到热源,这一侧的水就会蒸发为水蒸气,往压强更低的另一侧飘荡,在温度更低的区域释放热量,重新凝结成液态水,而凝结的液滴,会在毛细作用下,沿着多孔的内壁回流,达成气液循环,通过气体液体的转化,实现热量的高效传导。5 @8 L4 p8 V( C2 }9 j8 T' c
5 F" N/ R7 d7 Y ~8 h2 j
为了提高导热效果,大部分显卡会使用多根热管来传递热量,但热管直接接触核心不仅会有空隙,还会有热管无法接触到GPU芯片。所以现在高端显卡一般会使用大铜底包裹热管进行均热,一些高端显卡会使用到能力更强的均热板取代大铜底。均热板,你可以理解为面积非常大的板状热管,同样采用气液转换传递热量,导热能力是纯铜底的数倍。 6 ^2 g/ N4 c: m* @, u ; |8 e" k1 t% b3 w. _7 S 不过热管和均热板能提供的对流面积非常有限,因此还需要搭配大量的铝制散热鳍片,扩大散热面积,最后通过风扇加强空气对流,带走芯片上的热量。早期的显卡采用下压式风扇设计,从风扇面进风,从侧面出风。现在显卡为了提高散热效果,会采用贯穿式风道设计,热量可以直接从背板的隔栅处排出。4080猛禽的风扇还使用了特殊的设计,中间的风扇与左右两侧的风扇旋转方向不同,保证风扇之间的气流方向相同,从而更高效的排出热量并降低噪音。 : z t; A% p) K/ c \7 `9 L. O2 h
: g: I# y% h* O9 r三.显卡的主板, k" S6 ]; e( K4 m
0 h' o. i; k+ p* f 我们可以把这块电路板从外往里划分成四个部分:接口,供电,显存以及GPU。% G% j* Q6 f: W& Y2 U2 I/ q. m% C6 E7 H
) T6 }: h6 z! @% w0 u0 c
9 I. j/ U, b: m6 V* p! f2 n. c
! A- K% s; c' k2 W# f0 O8 A& i/ z, S/ U
GPU相当于显卡的大脑,负责几乎所有的运算任务。要注意,GPU并不等于显卡,GPU通常指的是最中间的这块儿芯片,而显卡指的是包括芯片、显存、供电接口、电路板以及散热模块的整体。 + @. m% T4 Z! O# `: p( i0 U+ ~, t 6 c$ ^+ m& s/ k/ u2 m* N A GPU芯片主要由英特尔、AMD和Nvidia 三家厂商供应,而我们熟知的华硕等AIC厂商主要完成的是电路板与散热的设计和生产。/ O. c& k/ X4 M& G
6 v: L8 `& Y. u+ ~
就像主板上所有的元器件都是为CPU服务一样,显卡电路板上的所有元器件也都是为GPU而服务的。视频接口让显卡可以直接把运算好的图像发送给显示器显示。这张4080猛禽搭载了两个HDMI2.1和三个DP1.4接口,不同版本的视频接口能承载的分辨率和刷新率不同。 8 ~4 R2 I& }0 J% V+ d; @- K " { }7 |* _" D& d2 Q PCIE接口让显卡能够通过主板和CPU、内存等其他原器件交互数据,它的数据传输能力和版本以及规则有关。比如说这张4080猛禽用的就是PCE4.0 x16接口,在主板同样支持PCE4.0的情况下,单条4.0通道每秒可以传输2GB的数据,16条总共可以传输每秒32GB的数据。8 ^% G9 F# L; O! U& D0 D
& d3 y3 ]% e8 T
/ l; |' Q6 q- g* v e
供电模块保证了显卡有充足的电力分配,它们分布在GPU和显存的外围,由PWM芯片、电容、电感和。MOS管组成电源会从右上方的供电接口输入+12伏的供电,之后再用供电模块儿降压至1.1伏与1.35伏,输送给GPU与显存。这张RT4080猛禽采用直出供电的设计,一个MOS管和一个电感就是一个供电项,总共有18项70A的GPU供电和三项50A的显存供电,即使显卡满载运转,也能提供持续稳定的电能。 " Z! M# ^& `1 q' W2 j& I+ R & Y. Z% Q5 z% u/ W; b/ A CPU在计算时需要把数据临时存放在内存里,而高速运行的GPU同样需要把数据暂存在显存里,GPU周围黑色的小方块就是显存,这块4080猛禽使用的是最新的GDDR6X显存,频率1400兆赫兹,每颗显存都是2GB的容量,32bit的位宽,八颗一共16GB、256bit。图片 2 ? m) |% ?' [1 Z8 ?* L4 Z2 Y* I ' ]7 n& L5 X! {: a# y( Y 显存的总带宽是由频率、位宽还有显存类型共同决定的。显存的频率代表一秒钟可以传输多少个周期,位宽代表显存一次可以传输的数据量。GDDR6X显存每个周期内可以传输16倍的数据,把它们相乘,再把bit换算成Byte以后,就得到了716.8GB/s的总带宽,代表显存每秒能传输的数据量。+ f! N: \$ Q9 ?0 t( ~$ \/ g+ _
; w. S. ^9 [ i; @6 k& X/ z5 U8 y 一般来说,游戏的分辨率越高,贴图和模型越精致,对显存容量和带宽的要求就越高,但在显存够用的情况下,显卡的性能还是由显卡的核心GPU来决定。这张RTX4080显卡搭载的GPU芯片叫做AD 103-301。它使用的是Nvidia最新的ADA-Lovelace架构,面积只有379平方毫米,不过一个矿泉水瓶盖儿大小,但内部却集成了整整459亿颗晶体管。之所以能有这么高的晶体管密度,靠的是台积电先进的5nm光刻工艺。 1 w" [; y1 S9 T, @9 }7 @1 W# s: l, O$ `! X4 i* n
台积电会根据英伟达的设计方案,在一块儿12英寸的硅晶圆上,通过复杂的生产工艺刻制出复杂的电路图案。数量庞大的晶体管在GPU的内部组成了复杂的电路结构,就像一座微缩的城市,其中大部分的电路都可以用于图形运算。; w0 H! H' l! f3 B
Q1 E4 j6 ~& N: u, a# ?0 R 我们一般会用一张简化图来观察GPU结构:主要由SM流式多处理器、L2缓存、NENC视频编码器、NEC视频解码器、显存控制器和PCE控制器构成。" Q B1 ?5 T, F' ?! g$ i* n
+ L/ X3 B+ k: l; U
SM流式多处理器占据了GPU的大部面积,他负责了几乎所有的图形运算。这颗AD103-301核心里一共有76组SM单元,每组SM单元里包含128个流处理器,总共9728个流处理器。英伟达把这些流处理器叫做CUDA核心。 ! |1 @4 c8 g% Z 3 p! \( N3 ?. G1 |) w. ` 显卡的流处理器数量越多,频率越高,性能就会越强。 / v4 b: m# B; K8 l# Q; ^0 y ^6 N' T) g* }5 F# b% n
如果把每组SM类比成一个CPU核心,那么这颗GPU就相当于一颗76核9728线程的处理器。不过,CPU核心就像经验丰富的数学家,能处理更加复杂的任务;而GPU核心更像是只会四则运算的小学生,适合做简单的并行计算。在AI模型的训练和推理、3D游戏里的图形渲染都是需要这样大量简单计算的场景。显卡核心的数量优势就比CPU核心的质量优势更加有效率。要理解为什么显卡更适合这样的运算,我们就需要了解一下游戏画面到底是如何渲染的?图片3 U9 V- n6 `0 e* T% S
, P* q1 _" B3 C' [6 B$ F9 b3 x$ E 认识图形渲染的基本流程,只需要知道我们看到的世界是由无数个带坐标的模型世界构成,想要观察这个世界,我们还需要一个虚拟摄像机,只有位于摄像机视野范围内的模型才会被渲染出来,同时这些模型相对于摄像机的位置也会被重新计算,得到新的坐标值。 , r6 g7 f# ~4 [. w" m1 R! E5 V0 F V) ~ ]
摄像机所捕获到的这些画面实际上是一个二维平面。三维空间中的模型是要通过投影的方式映射到这个平面上,最后我们需要将这个二维画面显示在由像素点构成的屏幕上。为了获得最终的渲染效果,我们还需要对每个像素点的纹理、光照和颜色等属性进行单独计算。经过这一系列复杂的运算,才能最终生成一帧在屏幕上显示的图像。! U. {- V/ w/ t2 p& d
}. e3 ?; e. x4 h1 o- e 在这个计算的过程中,构成三角面的顶点坐标会精确到小数点后七位,转换成计算机能理解的二进制,就是32为0和1,我们管这个叫做FP32单精度浮点数。 3 f" A2 k5 H% H% C( W, V / I% c8 t F, G4 ?$ ^* Y 流畅的画面需要每秒30帧甚至60帧以上的图像,而每一帧都需要大量精确的数据来计算,每秒钟能算的次数就是单精度浮点数算力,可以用来衡量图形渲染的性能。: n8 P8 v& O) p; Y' ~/ `" X
0 g+ r$ x) s' _& L$ D3 U
RTX4080的GPU核心可以让9728个CUDA核心同时进行单精度浮点计算,在2800兆赫兹的频率下,可以提供大约54T pro4的单精度浮点算力,意味着每秒钟可以计算五十四万亿次。图片6 K5 H% j6 J6 Z E( U9 }7 }
2 V! l% ~/ f6 Z" h3 K 而像I9这样的高端CPU FT32的算力也只有2.5T Flops,对比之下你就会发现GPU比CPU更加适合图形渲染,单精度浮点主要影响的是游戏图像的渲染性能。 5 c% Y9 h& y. B V" }+ J % J3 S: t4 s$ ~* o- A6 t: p) I0 ] 在这颗4080的GPU核心中,所有的CUDA都能计算单精度浮点数,除了能计算FP32之外,同时向下兼容精度更低的半精度浮点FP16和1/4精度浮点FP8,但只有一半的CUDA能支持整数计算。英伟达会把不同GPU支持的具体算力标注在官网上供大家查询。 2 `& L% E+ S [0 A3 F* \3 t0 ?1 u! H- w
这里要说明的是GPU的算力和架构有关,架构是GPU的设计方案,设计方案越先进,相同算力下的图形渲染效率就越高。比如GTX1660的GPU架构比GTX980更先进,虽然他们的FP32算力差不多,但1660的游戏性能却明显更强。所以Nvdia在官网标注算力的同时还会标注GPU的架构。; q* {; \: k2 O& d5 g
4 z& x4 ^ i5 e+ X" a" v
单精度浮点算力和架构共同决定了GPU的游戏性能。 1 e$ M( I' J }/ z3 V a ^ x) g; E+ I+ Q/ J" M
但现在的GPU除了玩游戏和做渲染建模之外,还承担了许多AI相关的任务,在CUDA核心的右边是第四代Tensor Core张量核心,它非常适合做AI相关的深度学习计算,所有的Tensor Core一共可以提供780 AI TOPS算力。比如说现在的AI绘图软件就可以调用Tensor Core,生成图片的速度远比纯CUDA要快很多。 7 u' k; v" y" g% m/ C* V/ A9 K $ }0 P+ @8 y) \' o/ Q 游戏里的DLSS功能同样可以调用Tensor Core,用更低的分辨率渲染,再通过AI上采样到更高的分辨率,从而提升游戏的流畅度。+ j5 L+ u# s3 k- r& A% N) b
5 Z7 G0 |* C8 e X# n; g2 B 逼真的游戏画面还离不开真实的光照效果,而光线的反射和折射需要庞大的算力,这张4080的核心中,每组SM里都有一颗第三代RT Core光线追踪核心,专门用来加速光照和反射的计算,一共可以提供113 RT-TFLOPS光追算力,光线追踪可以明显提升画质,但也非常的吃性能,如果用的是低端显卡,开了光追以后就可能很卡顿,只有性能更强的高端显卡才适合开启光线追踪。: x d! z' B9 h a& X
( T2 I; r: W) @ 在SM单元之外,还有很多其他的单元,视频解码器让显卡能把0101的数据转换成连续播放的视频画面,解码器性能过弱,就可能在播放视频时出现卡顿掉帧。而视频编码器则可以让你把拍摄到的视频数据以新的编码方式压缩成期望的格式和大小。编码器性能过弱则会在剪辑视频导出时浪费过多的时间,显存控制器让GPU和显存得以顺利交互数据。PCIE控制器则让显卡能和主板上的CPU、内存、硬盘等其他元器件交互数据。4 N1 O' d9 Z3 X. X
2 J' I3 e# T* x+ b( D
除开上述内容,显卡的电路板上还有很多其他的附属芯片和接口,他们共同协作让显卡得以顺利运行。& \# m) Y. m" z( P, D0 ~' ~. f