8 z y' _7 _5 G+ Z, M+ \ ' ]; T' s' @, p7 d( x( P4 H 许多人都喜欢玩电脑游戏,而3D游戏里的每一帧画面都依赖于显卡的强大性能。显卡是现代PC里规模最庞大的核心组件,不仅能用于游戏和三维渲染,还在人工智能领域发挥着重要的作用。它有哪些结构,又如何生成游戏画面?本期我们将会带你从零开始认识显卡。我们在玩儿的电脑游戏,形态各异的建筑,细节丰富的车辆,一切都很真实,它们的本质其实是一个个不同位置的点,这些顶点在空间中相互连成线,形成无数个三角面,再经过贴图、光照、着色等复杂的渲染过程最终形成了我们看到的精美画面,从三角形的生成再到图像的输出,其中每一个步骤都需要显卡。作为电脑里进气管儿数量最多的核心组件,显卡有哪些结构,又是如何工作的?以这张ROG strix RTX4080猛禽为例,带你从零开始认识显卡。+ Z) P" a7 r" C
& J- r* u6 k0 O( y
6 |9 h# A$ H8 b" H
- V# K4 `$ Z, G; u
; d4 h: b0 u9 a0 [! a) x! W2 S" i9 R& A5 }5 a) F
显卡的正面是散热风扇,底部的黄色长条是用于传输数据的PCIE接口 & b* |2 }) y4 t/ P. a; \: Y, P% j( U6 c
侧面是装饰用的logo和供电接口4 C) q/ p" M( N) w" E
! p+ b$ Q; m" c* B/ J3 w而尾部则是用来连接显示器的视频接口。 ( n v; `3 ]0 P, a/ S, O7 T# S. U, ]4 W; a2 E6 P
显卡通常会以侧插的形式安装在主板接口上,此时风扇会朝向机箱底部,视频接口则会出现在机箱尾部,从机箱的侧面观察我们通常只会看到显卡的侧面和背板。 ! J: J. b: u1 y) _ Z( y1 B' _$ t* F+ R' [ R7 \% J( y
一.显卡的供电- b. C/ E4 \& \ e
1 ^# p' V$ w- x0 h4 T
之前大部分显卡都使用8pin PCIE供电接口,能提供225W左右的供电,高功耗显卡则使用多个8pin才能满足需求。 8 \+ F6 N# ?: P& \* c* J t: N( g: W/ O" K
这张4080猛禽使用了最新的12V-2x6接口,体积十分小巧,单个接口可提供高达600W的供电。 ( x9 q& ?. [7 q' L- D) w/ P3 C' b9 y- q1 u {
华硕也设计出了无需外接供电线的背插显卡,可以直接从主板取电,安装以后会更加的简洁美观,但要搭配特定的主板或转接头才能使用。 $ g3 c) {! j9 z9 n l; m0 ~ / H3 p7 Y! O5 _ X二.显卡的散热 \2 [" i/ N* ~( B! s
# s7 o9 S) L( j4 Z2 F' D* e, |
这张显卡在满载时的功耗可以达到360W,为了有效的排出热量,巨大的散热模组占据了整张显卡90%的体积。+ R& k3 Z8 C. B- R( U$ [* L% c# r
, l) a) x$ Y, r/ @9 t3 s- @/ p4 V7 I
而最下面这张小小的电路板才是显卡的本体,也是热量的来源。 + }1 [& w- i- q
$ a( W0 o4 t8 b: ?- L) t
' D3 G5 e' t3 m1 E9 }. t: |; x
! N1 W5 B+ j* A e
散热模组由风扇,鳍片,热管与均热板构成,这里的核心是热管,热管的内壁是由粉末烧结成的多孔结构,在制造成型后,热管内部会填充少量的高纯水,并被抽成真空,以降低水的沸点和凝固点。 # }' V9 T+ [1 n8 P2 s& J6 j6 b . _3 V0 l, r! I1 ^散热原理:当热管一侧接触到热源,这一侧的水就会蒸发为水蒸气,往压强更低的另一侧飘荡,在温度更低的区域释放热量,重新凝结成液态水,而凝结的液滴,会在毛细作用下,沿着多孔的内壁回流,达成气液循环,通过气体液体的转化,实现热量的高效传导。 9 H2 M& V) b& i; i/ n$ T" c1 W$ i
为了提高导热效果,大部分显卡会使用多根热管来传递热量,但热管直接接触核心不仅会有空隙,还会有热管无法接触到GPU芯片。所以现在高端显卡一般会使用大铜底包裹热管进行均热,一些高端显卡会使用到能力更强的均热板取代大铜底。均热板,你可以理解为面积非常大的板状热管,同样采用气液转换传递热量,导热能力是纯铜底的数倍。% H& t- a) _; B
s7 e) |( F7 O0 X1 o 不过热管和均热板能提供的对流面积非常有限,因此还需要搭配大量的铝制散热鳍片,扩大散热面积,最后通过风扇加强空气对流,带走芯片上的热量。早期的显卡采用下压式风扇设计,从风扇面进风,从侧面出风。现在显卡为了提高散热效果,会采用贯穿式风道设计,热量可以直接从背板的隔栅处排出。4080猛禽的风扇还使用了特殊的设计,中间的风扇与左右两侧的风扇旋转方向不同,保证风扇之间的气流方向相同,从而更高效的排出热量并降低噪音。7 A7 r1 Q& k4 A; [3 {* t
2 K: M) [& E" ~& @' [1 J/ o5 }$ g
三.显卡的主板 9 _6 S" x! u0 ~7 ~6 t# j9 t & Q( P% Y2 K' N4 R& D+ a1 r 我们可以把这块电路板从外往里划分成四个部分:接口,供电,显存以及GPU。' n) Z- |1 ]" r6 p% P7 b% f* X
3 K& c6 I g! o8 d9 g, v7 n5 q: h % Q' E3 z6 B5 F L) I5 H7 L6 [" t: { , r5 J1 L( b$ l/ k$ x: J1 N% o0 F1 ~. j6 x$ x
GPU相当于显卡的大脑,负责几乎所有的运算任务。要注意,GPU并不等于显卡,GPU通常指的是最中间的这块儿芯片,而显卡指的是包括芯片、显存、供电接口、电路板以及散热模块的整体。 * e# O7 _9 b# G; L, y9 R2 I# q& B R) O) n1 @; X# _; L9 Y+ [ GPU芯片主要由英特尔、AMD和Nvidia 三家厂商供应,而我们熟知的华硕等AIC厂商主要完成的是电路板与散热的设计和生产。$ M8 O2 J& Q% }
+ w3 L) m! v, z- Z
就像主板上所有的元器件都是为CPU服务一样,显卡电路板上的所有元器件也都是为GPU而服务的。视频接口让显卡可以直接把运算好的图像发送给显示器显示。这张4080猛禽搭载了两个HDMI2.1和三个DP1.4接口,不同版本的视频接口能承载的分辨率和刷新率不同。 ! H p, }# D. E2 Y [" h) F- t* Q' t% t q
PCIE接口让显卡能够通过主板和CPU、内存等其他原器件交互数据,它的数据传输能力和版本以及规则有关。比如说这张4080猛禽用的就是PCE4.0 x16接口,在主板同样支持PCE4.0的情况下,单条4.0通道每秒可以传输2GB的数据,16条总共可以传输每秒32GB的数据。 Y0 |6 ~ d6 ]7 v
) \+ W# Q) I3 [ q; r1 l
9 v: v i/ F4 J% t, `2 c+ m' E 供电模块保证了显卡有充足的电力分配,它们分布在GPU和显存的外围,由PWM芯片、电容、电感和。MOS管组成电源会从右上方的供电接口输入+12伏的供电,之后再用供电模块儿降压至1.1伏与1.35伏,输送给GPU与显存。这张RT4080猛禽采用直出供电的设计,一个MOS管和一个电感就是一个供电项,总共有18项70A的GPU供电和三项50A的显存供电,即使显卡满载运转,也能提供持续稳定的电能。) R! z2 t0 i- k/ v
, i8 x! s" o, \# \3 D' Q7 c4 w- S9 v
CPU在计算时需要把数据临时存放在内存里,而高速运行的GPU同样需要把数据暂存在显存里,GPU周围黑色的小方块就是显存,这块4080猛禽使用的是最新的GDDR6X显存,频率1400兆赫兹,每颗显存都是2GB的容量,32bit的位宽,八颗一共16GB、256bit。图片9 F1 ~4 ~* b0 ` d' E1 I
( \( o- I9 D9 m) X) g0 ] 显存的总带宽是由频率、位宽还有显存类型共同决定的。显存的频率代表一秒钟可以传输多少个周期,位宽代表显存一次可以传输的数据量。GDDR6X显存每个周期内可以传输16倍的数据,把它们相乘,再把bit换算成Byte以后,就得到了716.8GB/s的总带宽,代表显存每秒能传输的数据量。% D' X3 ^5 C4 D+ P7 {2 j
/ C) ~! b. o" R" z" B
一般来说,游戏的分辨率越高,贴图和模型越精致,对显存容量和带宽的要求就越高,但在显存够用的情况下,显卡的性能还是由显卡的核心GPU来决定。这张RTX4080显卡搭载的GPU芯片叫做AD 103-301。它使用的是Nvidia最新的ADA-Lovelace架构,面积只有379平方毫米,不过一个矿泉水瓶盖儿大小,但内部却集成了整整459亿颗晶体管。之所以能有这么高的晶体管密度,靠的是台积电先进的5nm光刻工艺。 ! T8 x6 K$ t$ V6 V5 r" e8 h W0 M0 E8 I' F! C4 s+ y* `. z0 [0 i
台积电会根据英伟达的设计方案,在一块儿12英寸的硅晶圆上,通过复杂的生产工艺刻制出复杂的电路图案。数量庞大的晶体管在GPU的内部组成了复杂的电路结构,就像一座微缩的城市,其中大部分的电路都可以用于图形运算。 * D) R6 i1 @* f1 A' ^2 m" u 8 g6 z8 Q" g6 \8 ^( m" _0 m 我们一般会用一张简化图来观察GPU结构:主要由SM流式多处理器、L2缓存、NENC视频编码器、NEC视频解码器、显存控制器和PCE控制器构成。1 [$ k0 R& o/ [1 y
: u( a8 c" {0 U! M* B, y SM流式多处理器占据了GPU的大部面积,他负责了几乎所有的图形运算。这颗AD103-301核心里一共有76组SM单元,每组SM单元里包含128个流处理器,总共9728个流处理器。英伟达把这些流处理器叫做CUDA核心。 x M3 ~+ k# h* S p5 `9 _) V- j6 ~3 _. e* S, |( R/ M3 x
显卡的流处理器数量越多,频率越高,性能就会越强。 : o' C+ X# i7 ?9 |1 H' Y' T1 V/ w$ J+ d
如果把每组SM类比成一个CPU核心,那么这颗GPU就相当于一颗76核9728线程的处理器。不过,CPU核心就像经验丰富的数学家,能处理更加复杂的任务;而GPU核心更像是只会四则运算的小学生,适合做简单的并行计算。在AI模型的训练和推理、3D游戏里的图形渲染都是需要这样大量简单计算的场景。显卡核心的数量优势就比CPU核心的质量优势更加有效率。要理解为什么显卡更适合这样的运算,我们就需要了解一下游戏画面到底是如何渲染的?图片 / ~6 ~1 O# ]0 R+ |8 c/ \' l, C' V5 O5 K
认识图形渲染的基本流程,只需要知道我们看到的世界是由无数个带坐标的模型世界构成,想要观察这个世界,我们还需要一个虚拟摄像机,只有位于摄像机视野范围内的模型才会被渲染出来,同时这些模型相对于摄像机的位置也会被重新计算,得到新的坐标值。8 ^! B8 R+ R8 \6 g+ C* P
7 j2 V2 ? D- \- ^ 摄像机所捕获到的这些画面实际上是一个二维平面。三维空间中的模型是要通过投影的方式映射到这个平面上,最后我们需要将这个二维画面显示在由像素点构成的屏幕上。为了获得最终的渲染效果,我们还需要对每个像素点的纹理、光照和颜色等属性进行单独计算。经过这一系列复杂的运算,才能最终生成一帧在屏幕上显示的图像。+ j% n8 V0 J9 R1 u: t% w
. ?$ E; S/ F; p/ e) [& R2 j
在这个计算的过程中,构成三角面的顶点坐标会精确到小数点后七位,转换成计算机能理解的二进制,就是32为0和1,我们管这个叫做FP32单精度浮点数。 8 f4 Y' ?) s) S% Q) R! ~9 D' \+ Z/ ]& j" B0 [! @0 @2 f0 X
流畅的画面需要每秒30帧甚至60帧以上的图像,而每一帧都需要大量精确的数据来计算,每秒钟能算的次数就是单精度浮点数算力,可以用来衡量图形渲染的性能。 2 ]! U8 ]% h+ M" K* f- x' f ?% h! I! q9 T+ F, c, `0 E
RTX4080的GPU核心可以让9728个CUDA核心同时进行单精度浮点计算,在2800兆赫兹的频率下,可以提供大约54T pro4的单精度浮点算力,意味着每秒钟可以计算五十四万亿次。图片 & |% \3 E, P& T$ c4 y' p4 G! H) v! a: _( x: N5 P
而像I9这样的高端CPU FT32的算力也只有2.5T Flops,对比之下你就会发现GPU比CPU更加适合图形渲染,单精度浮点主要影响的是游戏图像的渲染性能。 / q% ~1 E! q( g5 s2 B5 x0 V6 z 4 X% [4 e( y. m+ r: w2 p 在这颗4080的GPU核心中,所有的CUDA都能计算单精度浮点数,除了能计算FP32之外,同时向下兼容精度更低的半精度浮点FP16和1/4精度浮点FP8,但只有一半的CUDA能支持整数计算。英伟达会把不同GPU支持的具体算力标注在官网上供大家查询。 6 h; a5 r4 ~5 e+ }, U W* `, b. T+ {' Q! _7 O
这里要说明的是GPU的算力和架构有关,架构是GPU的设计方案,设计方案越先进,相同算力下的图形渲染效率就越高。比如GTX1660的GPU架构比GTX980更先进,虽然他们的FP32算力差不多,但1660的游戏性能却明显更强。所以Nvdia在官网标注算力的同时还会标注GPU的架构。 ) l: p e/ U: }4 @1 ?& c , m" T$ _' }& v* w7 [, b( L 单精度浮点算力和架构共同决定了GPU的游戏性能。 1 G& _" g( @3 F& C! ^, `# Y i0 k- b4 `3 l9 F- D
但现在的GPU除了玩游戏和做渲染建模之外,还承担了许多AI相关的任务,在CUDA核心的右边是第四代Tensor Core张量核心,它非常适合做AI相关的深度学习计算,所有的Tensor Core一共可以提供780 AI TOPS算力。比如说现在的AI绘图软件就可以调用Tensor Core,生成图片的速度远比纯CUDA要快很多。8 e" a. k; g; Y1 Q" B; m
) D$ E( }+ J# h P/ F- L: m
游戏里的DLSS功能同样可以调用Tensor Core,用更低的分辨率渲染,再通过AI上采样到更高的分辨率,从而提升游戏的流畅度。* w. ~% C4 K3 U! }$ d% Z
6 J* Y: m' [* I& |7 ?2 a
逼真的游戏画面还离不开真实的光照效果,而光线的反射和折射需要庞大的算力,这张4080的核心中,每组SM里都有一颗第三代RT Core光线追踪核心,专门用来加速光照和反射的计算,一共可以提供113 RT-TFLOPS光追算力,光线追踪可以明显提升画质,但也非常的吃性能,如果用的是低端显卡,开了光追以后就可能很卡顿,只有性能更强的高端显卡才适合开启光线追踪。/ [ g$ l$ }3 }% R