電腦科普

關於顯示卡GPU(資料取材於網路)

整理自網路上的 GPU 架構教材與圖形管線資料,重新編寫為白話版

顯示卡是電腦裡最像「另一台電腦」的零件:自己的處理器、自己的記憶體、自己的電源接頭。 它的處理器叫做 GPU。這篇文章把網路上的 GPU 架構教材改寫成白話版: 從「為什麼 GPU 要養幾千個笨核心」,講到「為什麼記憶體不夠會卡、為什麼換機箱溫度差十度」。

本文架構
  1. GPU 與 CPU 的差別
  2. 串流處理器與 SIMT
  3. 繪圖為何適合平行
  4. 顯示記憶體
  5. GDDR 與 DDR
  6. 光追與 AI 升頻
  7. 硬體編解碼器
  8. 功耗與散熱
  9. PCIe 介面與頻寬
  10. 怎麼挑顯卡
  11. 常見誤解釐清
  12. 結語:取捨

一、GPU 與 CPU 的差別

同樣是處理器,兩者哲學幾乎相反。 CPU 要「把一件事做到最快」:分支預測、亂序執行、深層管線、巨大快取。 GPU 要「同時把幾千件事做完」:數千個極精簡的運算單元,一個時脈只做一次乘加。

一張中高階顯卡可能有 60 到 80 個 SM,每個 SM 內含 128 個串流處理器, 共八千到一萬多個運算單元;桌上型 CPU 普遍只有 6 到 16 核。

CPU 晶片 CoreCore CoreCore CoreCore CoreCore 共享 L3 快取(面積占比極大) 記憶體控制器 8 個大核心:亂序執行、分支預測、超大快取 目標:把「一個」執行緒的等待時間壓到最低 vs GPU 晶片(相同面積) 每個 SM 內含 128 個簡單運算單元 數千個小核心:不做分支預測、不能獨立抓資料 目標:讓「幾千件事」在同一時間一起前進
圖一:同樣的晶片面積,CPU 拿去蓋大核心與大快取,GPU 拿去塞滿小核心
項目CPUGPU
核心數個位數到數十個數千到上萬個
單核複雜:亂序、分支預測簡單:一時脈一次乘加
面積大多給了快取與控制大多給了運算單元
擅長分支複雜的工作重複規律的運算
記憶體延遲要低頻寬要大

一句話記住: CPU 是幾位老師傅,疑難雜症都能接,但一次只能做幾件事; GPU 是幾千位作業員,只會簡單動作,同時開工時總產量卻驚人。 GPU 怕的不是工作難,而是工作不夠多、不夠整齊

二、串流處理器與 SIMT

GPU 的最小運算單位叫串流處理器,只做一件事: 一個時脈完成一次融合乘加(FMA),也就是 a × b + c。 正因為單純,才能做得又小又省電、塞進好幾千個。算力因此很好估: 核心數 × 2 × 時脈,以 8000 核、1.8 GHz 為例約 28.8 TFLOPS

warp:排程的最小單位

這幾千條執行緒不是各跑各的。硬體把它們每 32 條綁成一組,稱為一個 warp, 組內的執行緒(lane)共用同一份指令流:同一時脈、同一行指令,只是各自處理不同資料, 這叫 SIMT。副作用是分歧:如果一半 lane 走 if、一半走 else, 硬體只能先跑 if(遮住走 else 的),再跑 else——總時間是兩條路徑相加

一個 warp = 32 條執行緒(lane),共用同一份指令流 指令 A if 路徑 else 路徑 灰色 = 被遮罩(idle),這一輪它不做事,但也不能去做別的 總時間 = if 的指令 + else 的指令,而不是兩者取長 所以 GPU 程式設計的第一原則:讓同一個 warp 裡的執行緒盡量做一樣的事
圖二:warp 分歧——分支讓 32 條執行緒被迫分兩輪跑,效能直接打折

為什麼 GPU 用「切換」而不是「快取」來等記憶體

從顯示記憶體讀一筆資料要等 400 到 800 個時脈週期。 CPU 的做法是想辦法不要等:大快取、亂序執行、分支預測。 GPU 反過來:不減少等待,而是用別人的工作把等待填滿。 每個 SM 同時駐留幾十個 warp,某個 warp 發出記憶體請求後停住, 排程器下一個時脈立刻換人上場,而且沒有切換成本;這個比例叫 occupancy(占用率)。 結論是:GPU 對延遲不敏感、對頻寬極度飢渴, 而且需要大量獨立的工作才餵得飽,工作太少就會閒著發呆。

用「換人做」填滿等待:每個時脈都有人可以上場 執行中 等記憶體 排程器 W0 W1 W2 W3 W0 W1 W2 W3 Warp 0 Warp 1 Warp 2 Warp 3 等待記憶體的那 320 個週期並沒有被浪費,只是換別人來用而已 這就是為什麼 GPU 的快取可以很小、暫存器檔卻要非常大
圖三:延遲隱藏——GPU 靠「很多條執行緒」而不是「很大的快取」

實務上的意思: 同一顆 GPU,跑「每個像素算一個顏色」可以滿載,跑「每一步都要等前一步」的遞迴運算可能只用不到一成算力—— GPU 的效能取決於工作有多平行,不是只看核心數。

三、為什麼繪圖適合平行

因為畫圖剛好是「大量、重複、彼此獨立」的工作。 1920×1080 有 207 萬個像素,每個像素用的都是同一段程式,只是輸入不同—— 這正是 SIMT 最理想的形狀。管線大致分成六個階段:

渲染管線:從三角形的三個點,到螢幕上的一個像素 ① 頂點著色 ② 圖元組裝與裁剪 ③ 光柵化 ④ 片段著色 ⑤ 輸出合併 ⑥ 顯示輸出 每個頂點獨立算:3D 座標 → 螢幕座標 把頂點湊成三角形,切掉畫面外的部分 把三角形打散成「片段」,決定覆蓋哪些像素 算每個片段的顏色:貼圖、光照、反射(最耗算) 深度測試與透明混合,寫進畫面緩衝區 掃描輸出到螢幕 可程式化(著色器,數千個核心在這裡工作) 固定功能電路(快、省電,但不能改)
圖四:六個階段中,①④ 是可程式化的著色器,也是 GPU 算力的主戰場

算一下真實的工作量

2560×1440 有 369 萬像素,跑 144 幀,光是最基本「每像素算一次」就需要每秒 5.3 億次片段著色; 加上物件重疊與陰影、後處理,真實次數常是像素數的 2 到 4 倍。 幾何端也一樣:精緻場景有 500 萬到 2000 萬個三角形,每秒要處理的頂點數可達數億到數十億個。 這些階段處理的都是「大量、形狀相同、彼此無關」的資料——這就是 GPU 為平行而生的理由。

四、顯示記憶體:容量與頻寬

顯示卡有自己專屬的記憶體 VRAM。為什麼不共用系統記憶體? 因為系統記憶體是為 CPU 的「低延遲」設計的,共用匯流排又會互相排隊。 所以顯示卡把記憶體直接焊在旁邊,走線短、位寬大、頻率高。有三個數字要分清楚:

頻寬 = 每腳資料速率(Gbps) × 位寬(bit) ÷ 8

位寬每腳速率頻寬常見定位
128-bit16 Gbps16 × 16 = 256 GB/s入門
192-bit16 Gbps16 × 24 = 384 GB/s中階
256-bit20 Gbps20 × 32 = 640 GB/s1440p 主力
384-bit20 Gbps20 × 48 = 960 GB/s高階、4K

看懂這張表,就看懂一半的顯卡規格: 同樣是 16 Gbps 的顆粒,位寬從 128-bit 加到 256-bit,頻寬直接翻倍。 位寬與資料速率一樣重要,不能只看其中一個。

為什麼容量不夠會「卡」而不是「慢」

當場景需要的資源超過容量,驅動程式只能把一些貼圖暫時搬回系統記憶體,要用時再搬回來。 但這條路得穿過 PCIe:PCIe 4.0 x16 約 32 GB/s,VRAM 自己是 640 GB/s——差了 20 倍。 結果不是「平均幀率掉兩成」,而是「大部分時間正常,每隔幾十幀突然卡一下」: 平均幀率還好看,但 1% low 直接崩掉,而體感完全由後者決定。

同樣是「平均 60 幀」,體感可以天差地遠 VRAM 充足 16.7 ms 預算 VRAM 不足(資源溢出到系統記憶體) 每一幀都差不多,曲線平坦 偶爾冒出兩三倍高的尖峰 → 體感就是「卡一下」 紅色尖峰就是資源在 PCIe 上搬進搬出的那一幀——平均數字看不出來,眼睛看得出來
圖五:VRAM 不足的症狀是「週期性卡頓」,而不是整體變慢

容量是怎麼被吃掉的? 一張 4096×4096 的未壓縮貼圖就是 約 64 MB,加上 mipmap 再多三分之一; 一個場景有幾百張,再加上畫面緩衝區與光追的加速結構,容量就是這樣消失的。

五、GDDR 與 DDR 的差異

同樣是記憶體,為什麼顯示記憶體可以跑到 600 GB/s 以上,系統記憶體卻只有 100 GB/s 左右? 答案不是「顯示記憶體比較先進」,而是兩者的設計目標根本不同

DDR 要的是容量大、可擴充、延遲低:它做成可插拔模組, 但插槽與較長的走線會破壞訊號品質,頻率就推不高—— DDR5 每通道 64-bit、每腳 6400 Mbps,雙通道約 102 GB/s

GDDR 要的是頻寬極大,延遲隨便:它直接焊在顯卡上、控制器與顆粒點對點, 走線短、阻抗穩定,每腳能推到 16~20 Gbps 以上;加上顆粒每顆通常是 x16 或 x32 寬, 只要 8 顆 x32 就能湊出 256-bit 位寬,頻寬直接來到 640 GB/s

項目DDR(系統記憶體)GDDR(顯示記憶體)
封裝可插拔模組焊死在顯卡上
每顆寬度x4 / x8x16 / x32
連接方式多模組共用匯流排控制器與顆粒點對點
訊號速率受插槽與走線限制高很多,還用多電平調變
絕對延遲較低較高,但 GPU 不在意
能耗與發熱較低明顯較高
設計目標容量大、延遲低頻寬極大

代價在哪裡?

為了把速率推上去,GDDR 改用 PAM4(四電平)——一個符號帶 2 個位元, 不把時鐘推到極限就把位元率翻倍;代價是需要更複雜的等化與錯誤更正。 GDDR 的絕對延遲其實比 DDR 更高,但這對 GPU 不是問題:它有一大堆 warp 可以藏延遲, 「用延遲換頻寬」對 GPU 非常划算;而高頻擺動電壓也讓記憶體成為顯卡的一大熱源。

六、光柵化、光追與 AI 升頻

光柵化把三角形打散成像素再一個一個算顏色:快、可預測、容易平行, 但它算不出光線真正的行為——反射與軟陰影都是「模擬」的。 光線追蹤則從眼睛發射光線,真的去算它打到什麼、彈去哪裡; 一個像素可能要發射幾十到幾百條光線,每條都要跟幾百萬個三角形求交,運算量直接爆炸。

兩種算法的差異:一個問「你蓋到哪些格子」,一個問「光從哪裡來」 光柵化:把三角形覆蓋的格子填滿 每格跑同一段著色程式 → 天生平行,速度極快 光線追蹤:從眼睛發射光線,真的去求交 眼睛 每一條都要跟幾百萬個三角形求交 → 運算量爆炸
圖六:光柵化算「哪些格子被蓋到」,光線追蹤算「光線打到什麼、又彈去哪裡」

硬體怎麼讓光線追蹤變成可能

關鍵是加速結構(BVH,包圍盒階層):把場景的三角形用一層層包圍盒組織起來, 求交時先測最大的盒子,不中就整批跳過,複雜度從「每條光線看過所有三角形」變成大約 O(log n)。 再加上 GPU 裡專門做求交與遍歷的固定功能電路,效率遠高於用一般著色器去算。 實務上幾乎沒有遊戲是純光線追蹤,而是混合式:光柵化打底,只把反射與陰影交給光追。

AI 升頻:用算力換解析度

既然渲染成本大致隨像素數線性成長,最直接的省力方式就是少算一點: 先用較低解析度渲染,再用類神經網路放大到 4K,幀率因此大幅提升。

但代價是:它靠前一幀與運動向量穩定畫面,所以快速移動的物件容易出現鬼影細節是推論出來的,極細的紋理可能被抹平;還需要遊戲引擎配合提供輔助資料。

七、硬體編解碼器

顯示卡上除了一大堆著色器,還有幾塊專門處理影片的固定功能電路, 統稱影音引擎:一塊負責解碼,一塊負責編碼

解碼:為什麼看 4K 影片需要它

純靠 CPU 軟解,一段 4K 60 幀的影片可能吃掉八核心處理器的一大半,筆電風扇狂轉、電池掉得飛快; 交給硬體解碼器,功耗只要幾瓦,還能同時處理好幾路。 實用的知識點是:硬體解碼器只支援特定格式,太舊的顯卡沒有新格式的解碼器, 就只能回頭交給 CPU 軟解。

編碼:直播與錄影的關鍵

直播必須即時把畫面壓成影片。用 CPU 軟體編碼,即使開到最快的預設, 1080p 60 幀也要吃掉好幾個核心,還會和遊戲搶資源;交給硬體編碼器, 對遊戲幀率的影響通常只剩個位數百分比。

項目軟體編碼(CPU)硬體編碼(影音引擎)
速度慢,看 CPU 核心數極快,可即時
功耗數十瓦到上百瓦幾瓦到十幾瓦
對遊戲影響大,會搶 CPU 資源幾乎不影響幀率
同 bitrate 畫質通常較好略差,但持續進步
彈性高,參數任你調低,只支援固定組合
適合場合離線轉檔直播、錄影

同一道選擇題: 影音引擎、光線追蹤單元、甚至整個 GPU 與 CPU 的差別,本質上都是「專用電路換效率」與「通用處理器換彈性」之間的選擇。

八、功耗、散熱與機箱風道

顯示卡的功耗上限通常寫成 TGP(整卡功耗), 指核心加上顯示記憶體的總功耗上限,必須由兩個來源合力滿足: 主機板的 PCIe 插槽,以及電源供應器拉過來的接頭。

供電預算:插槽與接頭各自有上限 150W 150W 8-pin 8-pin 顯示卡電路板 GPU 晶片 + 顯示記憶體 + 供電轉換電路 總功耗上限(TGP)= 設計時就要算好的數字 PCIe 插槽 75W PCIe 插槽 75W 8-pin × 2 300W 供電上限合計 375W 設計功耗 320W 的卡,用這組供電是夠的——但這只是「平均」的帳 真正的難題是瞬時尖峰:載入場景時可能出現 1.5~2 倍、持續幾毫秒的抽電
圖七:PCIe 插槽 75W、6-pin 接頭 75W、8-pin 接頭 150W,這是硬性上限

瞬時尖峰才是殺手: GPU 的功耗不是恆定的。遊戲載入新場景時,一張平均 300W 的卡可能在幾毫秒內抽到 450~600W, 電源若保護點設得太緊就會直接跳電關機。 所以「玩到一半突然黑畫面重開」常常不是顯卡壞了,而是電源餘裕不夠

散熱是一條熱阻鏈

熱從晶片到室外要經過好幾關: 晶片 → 散熱器底座 → 熱管或均熱板 → 鰭片 → 機箱內的空氣 → 室外, 每一段都有自己的熱阻,加起來就是整條鏈的熱阻:

晶片溫度 ≈ 進氣溫度 + 功耗 × 整條鏈的熱阻

散熱是一條熱阻鏈:每一段都在決定晶片溫度 晶片 均熱板 熱管 鰭片 機箱 內的空氣 室外 晶片溫度 ≈ 進氣溫度 + 功耗 × 整條鏈的熱阻 整條鏈的熱阻大約落在 0.15~0.25 °C/W(散熱器越大、風量越足,數字越小) 進氣 25°C、功耗 320W、熱阻 0.18 → 晶片約 83°C,剛好貼著溫度牆在跑 同一張卡,但機箱進氣被加熱到 40°C → 晶片約 98°C,撞牆降頻,效能白白掉一成
圖八:機箱風道不是玄學——它直接加在晶片溫度上,也就直接影響效能

GPU 通常有兩道限制:溫度牆(例如 83°C)與功耗牆(TGP), 碰到其中一道,時脈就會自動下修。所以同一張卡在通風良好的機箱裡跑得比悶箱子快, 不是錯覺,而是散熱能力直接決定了效能上限。 順帶一提,降壓之所以有效,是因為動態功耗大致與電壓平方成正比: 把電壓曲線壓低通常能省 10~20% 功耗,效能只掉 0~3%。

九、PCIe 介面與頻寬

顯示卡插在主機板的 PCIe 插槽上,這是它與系統之間唯一的通道:

世代每通道速率x16 原始頻寬x16 有效頻寬
PCIe 3.08 GT/s16 GB/s約 15.8 GB/s
PCIe 4.016 GT/s32 GB/s約 31.5 GB/s
PCIe 5.032 GT/s64 GB/s約 63 GB/s

那 PCIe 世代對遊戲影響大嗎?

大部分情況下不大,因為 PCIe 主要用來「載入」而不是「持續搬運」: 載入時把貼圖與模型送進 VRAM,之後每一幀都靠 VRAM 自己的 640 GB/s 在工作。 所以在 VRAM 充足時,PCIe 3.0 x16 與 4.0 x16 的差距通常只有 1~5%。但有三種情況會放大: VRAM 不足時資源不斷來回搬,PCIe 就從「閒置」變成「瓶頸」; 顯示卡只有 x8 或 x4 的電氣通道時,插在舊世代主機板上等於頻寬再砍一半; 以及需要大量串流資料的工作負載。 另外要記得,插槽的實體長度與實際通道數是兩回事—— 看起來很長的 x16 插槽可能只接了 x4 的線,標示 x16 的卡也可能是 x8 的電氣規格。

十、怎麼挑顯卡

顯示卡的效能由三個維度決定:核心效能、VRAM 容量、VRAM 頻寬。 預算有限時必須取捨,依據是你打算在什麼解析度、什麼刷新率下使用。

解析度像素數60 幀/秒的需求144 幀/秒的需求
1920×1080 207 萬 每秒 1.24 億像素 每秒 2.99 億像素
2560×1440 369 萬 每秒 2.21 億像素 每秒 5.31 億像素
3840×2160 829 萬 每秒 4.98 億像素 每秒 11.9 億像素

從 1080p 60 幀換到 1440p 144 幀,像素吞吐量需求是原來的 4.3 倍;換到 4K 60 幀則是原來的 4 倍。 所以「同一張卡在 1080p 很夠用、在 4K 卻很吃力」完全正常。

取捨一:容量 vs 核心

關鍵在於兩種不足的症狀不一樣容量不足是「隨機卡頓」,除了降低畫質幾乎無法補救; 核心不足是「幀率整體偏低」,還能靠調整畫質緩解。所以先守住容量門檻,再往上追核心比較安全: 粗略而言,1080p 約 8 GB 起、1440p 約 12 GB 起、4K 約 16 GB 以上比較從容。

取捨二:核心 vs 頻寬

高解析度對頻寬特別敏感。兩張卡在 1080p 可能只差 5%,到了 4K 可能拉開到 30% 以上, 原因就是其中一張的頻寬先撞到天花板。

取捨三:別忘了電源與機箱

長度與厚度:高階卡常超過 30 公分、佔 2.5 到 3 個插槽。 接頭與瓦數:確認 8-pin 數量足夠,並留三成瓦數餘裕。

最後一個建議: 不要為了「以後可能用到」而過度投資,顯示卡的價值在於「現在就跑得動你想跑的程式」。 先確定解析度、刷新率與最常跑的軟體,再回頭挑規格。

十一、常見誤解釐清

以下都是網路上很常出現的說法,值得逐一檢查:

1. 顯示記憶體越大,顯示卡就越快?

錯。容量只決定裝不裝得下,超過門檻後對幀率幾乎沒貢獻; 但低於門檻時懲罰極劇烈,所以仍是不能妥協的底線。

2. 顯示記憶體不夠時會用系統記憶體補上,所以沒差?

錯,這是體感最糟的誤解。要用時得穿過 PCIe 搬回來: 32 GB/s 對比 640 GB/s,差 20 倍,症狀是週期性卡頓

3. 顯示卡的記憶體可以自己加裝?

錯。直接焊在電路板上,沒有插槽也不支援擴充。

4. GPU 核心時脈越高就越強?

錯。還要看核心數量每時脈做多少事頻寬夠不夠餵

5. 玩遊戲只要顯卡強就好,CPU 不重要?

錯。CPU 來不及準備,GPU 再強也只能閒著等, 症狀是「降解析度也拉不上幀率」。

6. GPU 的幾千個核心,等於幾千顆 CPU 核心?

錯。GPU 核心不能獨立分支、不能獨立存取記憶體,還得湊成 warp 一起行動, 優勢是數量帶來的總吞吐量

7. 硬體編碼畫質一定比較差,直播就該用 CPU 編?

不盡然。同 bitrate 下軟體編碼通常較好, 但硬體勝在即時、省電、不搶遊戲資源,直播時往往更實際。

8. 開了光線追蹤只是畫面更好看,效能代價可以忽略?

錯。光追運算量遠高於光柵化,開啟後幀率明顯下降仍是常態, 所以實務上幾乎都採混合式

9. 換到更新的 PCIe 世代,遊戲效能就會大幅提升?

通常不會。VRAM 充足時 PCIe 只負責載入,世代差異通常只有 1~5%; 真正放大差距的是容量不足而溢出

10. 電源標示 750W,就代表電腦一直耗 750W?

錯。瓦數是上限。但挑電源仍要留三成餘裕, 因為顯卡的瞬時尖峰可達平均值的 1.5~2 倍。

十二、結語:取捨

回頭看,GPU 的每個設計決定背後都是一道取捨題:

理解這些取捨之後,規格表就不再是一堆難懂的數字,而是「這張卡為了什麼妥協了什麼」的說明書。

給一般讀者的一句話: 顯示卡是一台專門為了「同時做很多簡單事」而打造的平行電腦。 規格表上的「256-bit、20 Gbps、16 GB」,說的就是路有多寬、跑得多快、倉庫有多大

本文為科普整理,內容取材自網路上的 GPU 架構教材與圖形管線資料,經重新編寫與白話化而成。
文中數據與技術細節僅供理解參考,實際規格請以各廠商官方文件與相關標準組織的公開資料為準。