' x3 N1 ]) F# `0 U) a! k& d: f" d' \, ^: y- N' D
许多人都喜欢玩电脑游戏,而3D游戏里的每一帧画面都依赖于显卡的强大性能。显卡是现代PC里规模最庞大的核心组件,不仅能用于游戏和三维渲染,还在人工智能领域发挥着重要的作用。它有哪些结构,又如何生成游戏画面?本期我们将会带你从零开始认识显卡。我们在玩儿的电脑游戏,形态各异的建筑,细节丰富的车辆,一切都很真实,它们的本质其实是一个个不同位置的点,这些顶点在空间中相互连成线,形成无数个三角面,再经过贴图、光照、着色等复杂的渲染过程最终形成了我们看到的精美画面,从三角形的生成再到图像的输出,其中每一个步骤都需要显卡。作为电脑里进气管儿数量最多的核心组件,显卡有哪些结构,又是如何工作的?以这张ROG strix RTX4080猛禽为例,带你从零开始认识显卡。 ( U6 U: N0 Z, \8 Q- B2 G6 ]% j% U# x; u 0 b; t6 [0 [; E' G! `( P1 R* x& r' |: m% T! y: j" p 4 `0 N s9 R: B) M9 S$ ?( ^* ?; `/ [4 U& T! Z* M! y) U
, Z' f# v; F+ ^/ k! A
显卡的正面是散热风扇,底部的黄色长条是用于传输数据的PCIE接口$ O( s2 e1 I9 l$ z
7 `, B4 ~9 F3 z* s' U侧面是装饰用的logo和供电接口 ; H, b* m: X' G5 g8 U# C, [3 M: t4 ?1 T. E/ K+ l. }* A; ?2 O8 H
而尾部则是用来连接显示器的视频接口。 5 A; \9 C& U/ O9 z, E 2 r: ~; T. o- c* }. y: [* v# e/ E+ x显卡通常会以侧插的形式安装在主板接口上,此时风扇会朝向机箱底部,视频接口则会出现在机箱尾部,从机箱的侧面观察我们通常只会看到显卡的侧面和背板。; i/ {/ P4 N* c# W
! r# e% U t$ n3 b% l2 }一.显卡的供电: J) r# d% |. p7 S9 U8 b+ P
]) D! ~; G/ [0 {3 M: F
之前大部分显卡都使用8pin PCIE供电接口,能提供225W左右的供电,高功耗显卡则使用多个8pin才能满足需求。 2 H2 l D) I9 M* R. s% r# \% W7 u+ ]1 e* l& p f
这张4080猛禽使用了最新的12V-2x6接口,体积十分小巧,单个接口可提供高达600W的供电。3 K l7 y' W. H0 E0 ?5 @- d9 {
4 F6 S$ a9 \, t% M+ f& n$ s
华硕也设计出了无需外接供电线的背插显卡,可以直接从主板取电,安装以后会更加的简洁美观,但要搭配特定的主板或转接头才能使用。/ y, Z. |; B3 B2 B- s# j/ `6 ?! ?
% R" X/ M& X: q' o1 l/ p& w3 `1 U
二.显卡的散热 : a& q" E, Y$ l. F# m3 ]3 E9 f) P- B- I) C5 L) D
这张显卡在满载时的功耗可以达到360W,为了有效的排出热量,巨大的散热模组占据了整张显卡90%的体积。5 H9 m6 g# k4 Q+ [3 H5 N
+ n6 D1 k8 G$ E* i9 w1 P. Z4 G而最下面这张小小的电路板才是显卡的本体,也是热量的来源。! d, P1 D' W2 e* {. { ' V. ~1 V# H1 T. @% G5 B2 F* y$ K: p( S( d: d- h1 q
$ i( Q0 b2 [) k& R# {9 ^- y
散热模组由风扇,鳍片,热管与均热板构成,这里的核心是热管,热管的内壁是由粉末烧结成的多孔结构,在制造成型后,热管内部会填充少量的高纯水,并被抽成真空,以降低水的沸点和凝固点。 9 _+ s* C' v- C% d% q, ]# ]+ y, R/ S
散热原理:当热管一侧接触到热源,这一侧的水就会蒸发为水蒸气,往压强更低的另一侧飘荡,在温度更低的区域释放热量,重新凝结成液态水,而凝结的液滴,会在毛细作用下,沿着多孔的内壁回流,达成气液循环,通过气体液体的转化,实现热量的高效传导。# q$ A O+ ]5 ]+ y4 {! f7 D9 A b
! Q1 @( \$ s1 {7 S
为了提高导热效果,大部分显卡会使用多根热管来传递热量,但热管直接接触核心不仅会有空隙,还会有热管无法接触到GPU芯片。所以现在高端显卡一般会使用大铜底包裹热管进行均热,一些高端显卡会使用到能力更强的均热板取代大铜底。均热板,你可以理解为面积非常大的板状热管,同样采用气液转换传递热量,导热能力是纯铜底的数倍。2 q& ^6 @; i7 t6 Q. g7 ~
J- M3 b0 r& o 不过热管和均热板能提供的对流面积非常有限,因此还需要搭配大量的铝制散热鳍片,扩大散热面积,最后通过风扇加强空气对流,带走芯片上的热量。早期的显卡采用下压式风扇设计,从风扇面进风,从侧面出风。现在显卡为了提高散热效果,会采用贯穿式风道设计,热量可以直接从背板的隔栅处排出。4080猛禽的风扇还使用了特殊的设计,中间的风扇与左右两侧的风扇旋转方向不同,保证风扇之间的气流方向相同,从而更高效的排出热量并降低噪音。 8 q- V' p8 M, t7 G$ u0 Z( i/ U" S" K7 L
' U& o1 }; y+ N. H6 Q; _) k三.显卡的主板 # a1 }: G/ |$ _0 i 0 {. O, T2 E3 h+ @* u# G" Z 我们可以把这块电路板从外往里划分成四个部分:接口,供电,显存以及GPU。4 D0 `, \9 g( L8 B+ T! X- Z0 S
! \/ J+ s) N$ @7 b7 _+ z& T' x , p$ ~* h) `4 M6 Z 3 y- o# M2 C# C, Z+ A4 Z# s* y$ p$ R$ K- Z1 W) T/ g
GPU相当于显卡的大脑,负责几乎所有的运算任务。要注意,GPU并不等于显卡,GPU通常指的是最中间的这块儿芯片,而显卡指的是包括芯片、显存、供电接口、电路板以及散热模块的整体。1 x+ l' {, r- I" R8 g2 q) n
, b# P m+ \, d8 P+ U: Q: |% P GPU芯片主要由英特尔、AMD和Nvidia 三家厂商供应,而我们熟知的华硕等AIC厂商主要完成的是电路板与散热的设计和生产。 V0 n9 o: I B) D" S
" m/ R* }$ e" }" c/ _
就像主板上所有的元器件都是为CPU服务一样,显卡电路板上的所有元器件也都是为GPU而服务的。视频接口让显卡可以直接把运算好的图像发送给显示器显示。这张4080猛禽搭载了两个HDMI2.1和三个DP1.4接口,不同版本的视频接口能承载的分辨率和刷新率不同。 - R% A$ y2 G( F0 V" I! \3 i" Z) x0 p& ^1 U6 M$ h
PCIE接口让显卡能够通过主板和CPU、内存等其他原器件交互数据,它的数据传输能力和版本以及规则有关。比如说这张4080猛禽用的就是PCE4.0 x16接口,在主板同样支持PCE4.0的情况下,单条4.0通道每秒可以传输2GB的数据,16条总共可以传输每秒32GB的数据。& E L! I- \9 _7 C: ?: H
8 A" u4 \7 t. ?. p2 l* g- r9 ^
+ ~" k" V3 Q _2 {1 ?0 }, p 供电模块保证了显卡有充足的电力分配,它们分布在GPU和显存的外围,由PWM芯片、电容、电感和。MOS管组成电源会从右上方的供电接口输入+12伏的供电,之后再用供电模块儿降压至1.1伏与1.35伏,输送给GPU与显存。这张RT4080猛禽采用直出供电的设计,一个MOS管和一个电感就是一个供电项,总共有18项70A的GPU供电和三项50A的显存供电,即使显卡满载运转,也能提供持续稳定的电能。 " ]! A/ I* }& m: q4 v( O5 Z0 @# O2 b0 a, N$ w' [6 x9 n
CPU在计算时需要把数据临时存放在内存里,而高速运行的GPU同样需要把数据暂存在显存里,GPU周围黑色的小方块就是显存,这块4080猛禽使用的是最新的GDDR6X显存,频率1400兆赫兹,每颗显存都是2GB的容量,32bit的位宽,八颗一共16GB、256bit。图片6 ]7 z6 ~4 ^5 k% v
% ^# r1 T. ?7 O: l h 显存的总带宽是由频率、位宽还有显存类型共同决定的。显存的频率代表一秒钟可以传输多少个周期,位宽代表显存一次可以传输的数据量。GDDR6X显存每个周期内可以传输16倍的数据,把它们相乘,再把bit换算成Byte以后,就得到了716.8GB/s的总带宽,代表显存每秒能传输的数据量。 5 z/ s+ c" d6 V0 \, _8 `% X+ p$ Y& g* e. Q# Z4 ^4 ?- v
一般来说,游戏的分辨率越高,贴图和模型越精致,对显存容量和带宽的要求就越高,但在显存够用的情况下,显卡的性能还是由显卡的核心GPU来决定。这张RTX4080显卡搭载的GPU芯片叫做AD 103-301。它使用的是Nvidia最新的ADA-Lovelace架构,面积只有379平方毫米,不过一个矿泉水瓶盖儿大小,但内部却集成了整整459亿颗晶体管。之所以能有这么高的晶体管密度,靠的是台积电先进的5nm光刻工艺。6 @$ e3 N" T! ?$ G) M1 w
; S" |, `# O8 _! q
台积电会根据英伟达的设计方案,在一块儿12英寸的硅晶圆上,通过复杂的生产工艺刻制出复杂的电路图案。数量庞大的晶体管在GPU的内部组成了复杂的电路结构,就像一座微缩的城市,其中大部分的电路都可以用于图形运算。 / W4 A& `# Q5 W; ]( N# ]- n3 }2 f5 `* |, j: Z/ f
我们一般会用一张简化图来观察GPU结构:主要由SM流式多处理器、L2缓存、NENC视频编码器、NEC视频解码器、显存控制器和PCE控制器构成。 . e" o5 A2 O5 A+ }4 B& v, e' h. i" G7 z& Z [5 y
SM流式多处理器占据了GPU的大部面积,他负责了几乎所有的图形运算。这颗AD103-301核心里一共有76组SM单元,每组SM单元里包含128个流处理器,总共9728个流处理器。英伟达把这些流处理器叫做CUDA核心。 : P; c7 u% P/ _. l ) [3 K# N' A9 l( P( X7 O' W 显卡的流处理器数量越多,频率越高,性能就会越强。, ~' }* R& A2 N0 V7 V& Y; R9 Y
2 ~ Q: b( a' Y 如果把每组SM类比成一个CPU核心,那么这颗GPU就相当于一颗76核9728线程的处理器。不过,CPU核心就像经验丰富的数学家,能处理更加复杂的任务;而GPU核心更像是只会四则运算的小学生,适合做简单的并行计算。在AI模型的训练和推理、3D游戏里的图形渲染都是需要这样大量简单计算的场景。显卡核心的数量优势就比CPU核心的质量优势更加有效率。要理解为什么显卡更适合这样的运算,我们就需要了解一下游戏画面到底是如何渲染的?图片# _1 q6 o" X0 @7 f
* r7 N7 F' C; k- m2 R. j 认识图形渲染的基本流程,只需要知道我们看到的世界是由无数个带坐标的模型世界构成,想要观察这个世界,我们还需要一个虚拟摄像机,只有位于摄像机视野范围内的模型才会被渲染出来,同时这些模型相对于摄像机的位置也会被重新计算,得到新的坐标值。 1 {) h8 N J6 D M" p; g$ ` 3 c. A# y0 L0 C% Y7 ] 摄像机所捕获到的这些画面实际上是一个二维平面。三维空间中的模型是要通过投影的方式映射到这个平面上,最后我们需要将这个二维画面显示在由像素点构成的屏幕上。为了获得最终的渲染效果,我们还需要对每个像素点的纹理、光照和颜色等属性进行单独计算。经过这一系列复杂的运算,才能最终生成一帧在屏幕上显示的图像。& B( e& j/ x' `4 t) G
9 o* M/ K6 Y+ D) M. f! q7 T
在这个计算的过程中,构成三角面的顶点坐标会精确到小数点后七位,转换成计算机能理解的二进制,就是32为0和1,我们管这个叫做FP32单精度浮点数。$ j) G/ h2 }! b8 h
. m/ e% D4 {, j7 p: o9 p
流畅的画面需要每秒30帧甚至60帧以上的图像,而每一帧都需要大量精确的数据来计算,每秒钟能算的次数就是单精度浮点数算力,可以用来衡量图形渲染的性能。( f6 W' i' s3 ?0 d5 v
9 D& s$ Y5 `/ Z6 w$ E, C
RTX4080的GPU核心可以让9728个CUDA核心同时进行单精度浮点计算,在2800兆赫兹的频率下,可以提供大约54T pro4的单精度浮点算力,意味着每秒钟可以计算五十四万亿次。图片 - E4 h0 i& _4 @" g9 l0 ?- G2 L! L0 j* e( X# A) w/ d; I7 c
而像I9这样的高端CPU FT32的算力也只有2.5T Flops,对比之下你就会发现GPU比CPU更加适合图形渲染,单精度浮点主要影响的是游戏图像的渲染性能。 ! O. K) W+ Z, K. I: H; }8 C/ y& T . S+ P) m+ f6 ~; | 在这颗4080的GPU核心中,所有的CUDA都能计算单精度浮点数,除了能计算FP32之外,同时向下兼容精度更低的半精度浮点FP16和1/4精度浮点FP8,但只有一半的CUDA能支持整数计算。英伟达会把不同GPU支持的具体算力标注在官网上供大家查询。 . i' t$ e( D5 d! z2 M0 ~8 g ( I! H& p4 _3 H 这里要说明的是GPU的算力和架构有关,架构是GPU的设计方案,设计方案越先进,相同算力下的图形渲染效率就越高。比如GTX1660的GPU架构比GTX980更先进,虽然他们的FP32算力差不多,但1660的游戏性能却明显更强。所以Nvdia在官网标注算力的同时还会标注GPU的架构。( w' Y/ \$ N& ~0 s; Q, v