顯示卡 PCIe 降速點解?x16 變 x8/x4 原因、檢查同修復
重點摘要
顯示卡連結顯示做八線或者四線,未必係故障。先喺負載下讀取連結狀態,再對照顯示卡本身規格同主機板手冊,先至好判斷。
PCIe 連結點樣傾出嚟
PCIe 連結係一條點對點序列連接,由一至十六條通道組成。封包數據會分佈喺各條通道上面傳送,最高傳輸能力會跟住通道數目而改變。通道數目會喺裝置初始化期間自動協商,由兩端共同決定,而且可以受任何一端限制。一張單通道顯示卡插落多通道插槽,會自動協商到雙方都支援嘅最高通道數目。如果有通道唔可靠,連結可以動態降到較少通道,呢個係標準入面嘅容錯設計。標準定義嘅連結闊度包括一線、二線、四線、八線同十六線。
協商過程由連結訓練同狀態機負責,狀態包括偵測、輪詢、設定同埋完全運作嘅 L0。喺訓練期間,狀態機會協商連結闊度同連結速度。如果連結變得唔穩定,狀態機會進入回復狀態,重新同步時脈,或者將速度降級,去維持穩定連接。
協商嘅原則好簡單:取兩端都支援嘅最高值。新一代顯示卡插落舊一代插槽,會以舊嗰邊嘅速度運行;PCIe 向下兼容,較新型號產品會同之前各代保持互通。舉例嚟講,一張第五代顯示卡插落第三代插槽,可以正常運作,但通訊速度會受限於第三代嘅頻寬。
另外有一個結構重點:插槽外觀長度,唔等於實際接線通道數目。一條睇落係全長嘅插槽,實際可能只係接咗八線或者四線。呢個係成篇文章最重要嘅結構事實,好多「降速」個案,其實只係插錯咗一條本身就係八線或者四線嘅插槽。
仲有一個概念叫分叉,即係將一條十六線插槽或者連結,拆成較細嘅組合,例如八線加八線,或者四組四線。分叉只會喺中央處理器同主機板韌體都支援拆分嘅情況下先至成立。
唔同世代嘅速度:點睇張表
下表列出唔同 PCIe 世代,每條通道嘅傳輸速率同單向可用傳輸量。單向嘅意思,係一個方向嘅傳輸量,編碼開銷已經扣除。讀表嘅時候,唔好將呢啲單向數字,同廠方有時公佈嘅雙向總數撈埋一齊。
| 世代 | 編碼 | 每線傳輸速率 | 單向可用傳輸量(每秒吉字節) |
|---|---|---|---|
| 第一代 | 8b/10b | 2.5 GT/s | 一線 0.25/四線 1/八線 2/十六線 4 |
| 第二代 | 8b/10b | 5.0 GT/s | 一線 0.5/四線 2/八線 4/十六線 8 |
| 第三代 | 128b/130b | 8.0 GT/s | 一線 0.985/四線 3.938/八線 7.877/十六線 15.754 |
| 第四代 | 128b/130b | 16.0 GT/s | 一線 1.969/四線 7.877/八線 15.754/十六線 31.508 |
| 第五代 | 128b/130b | 32.0 GT/s | 一線 3.938/四線 15.754/八線 31.508/十六線 63.015 |
| 第六代 | PAM-4,242B/256B FLIT | 64.0 GT/s | 一線 7.563/四線 30.25/八線 60.5/十六線 121 |
| 第七代 | PAM-4 | 128.0 GT/s | 一線 15.125/四線 60.5/八線 121/十六線 242 |
由上表可以直接做幾個等值對照,全部都係純算術推導,講明係「相同理論單向頻寬」:第四代八線等於第三代十六線,即係每秒 15.754 吉字節;第五代八線等於第四代十六線,即係每秒 31.508 吉字節;第三代八線等於第二代十六線,即係每秒 7.877 吉字節;第四代四線等於第三代八線,即係每秒 7.877 吉字節。呢啲等值關係好有用,因為佢解釋咗點解「降到八線」未必代表慢咗一半,要睇埋世代。
要注意,PCI-SIG 公佈嘅標題數字,例如第六代每秒 256 吉字節、第五代每秒 128 吉字節,係雙向總數,即係單向十六線數字乘二之後再取整。文章唔會將呢啲雙向數字,同上表嘅單向數字並排比較而唔講明方向。
GPU-Z 點讀:先睇負載下嘅數
檢查連結狀態,最常用嘅工具係 GPU-Z。佢嘅「匯流排介面」欄會顯示兩個數值:第一個係顯示卡支援嘅最高值,第二個係現時協商到嘅狀態。例如「PCIe x16 3.0 @ x8 1.1」,意思係張卡支援十六線第三代,現時運行緊八線第一點一代。好多人只睇第二個數就嚇親,其實第一個數先係判斷基準。
GPU-Z 有一個內置渲染測試:撳匯流排介面旁邊嘅問號,再撳開始渲染測試。測試會令顯示卡使用率去到大約九成九至百分之一百,令連結離開閒置省電狀態,等讀者可以讀到真正協商到嘅最高值。
呢一步咁重要,係因為閒置降速係最常見嘅誤診來源。喺顯示卡負載低嘅時候,PCIe 匯流排會以較低速度運行去慳電;負載上升之後,就會切換去高頻寬狀態。例如有資料指出,喺低負載時,十六線匯流排一般會行十六線第一點一代,負載增加之後,就會去到高頻寬狀態,一般係十六線第三代。現代顯示卡喺閒置時,會將 PCIe 連結動態降到第一代去慳電;一有工作負載,連結就會重新協商返去最高訓練世代。喺第五代插槽上面,閒置時見到第一代,屬於預期行為,唔係故障。
背後機制係主動狀態電源管理:當無流量嘅時候,PCIe 序列連結會被關閉。低功耗模式包括單向嘅 L0s 同成條連結連參考時脈一齊休眠嘅 L1,代價係喚醒延遲。視窗系統入面,電源選項進階設定有「PCI Express 連結狀態電源管理」,選項包括關閉、中等省電同最高省電。
但係有一個細節要講清楚:有充分文件記載嘅閒置行為,係世代下降,例如十六線第三代變成十六線第一點一代。至於閒置時闊度會唔會同時下降,例如十六線變成八線或者二線,就因平台同顯示卡而異。有論壇用家報告過呢類情況,但研究入面無權威來源將佢定為通用規則。所以文章嘅寫法只會係:「喺負載下讀取連結狀態;閒置讀數喺任何方向都證明唔到啲咩。」唔會聲稱閒置一定會降闊度,亦唔會聲稱閒置一定唔會降闊度。
判斷規則可以歸納做一句:如果喺負載下,讀數由例如八線第一點一代,升返去十六線第三代,連結就無問題。如果升到八線第三代,或者只係停留喺十六線第一點一代,就有嘢要跟進。
除咗 GPU-Z,Linux 用家亦有對照方法。lspci 指令嘅詳細輸出,會顯示連結能力同現時協商狀態,例如能力係速度八 GT/s、闊度八線,現時狀態都係速度八 GT/s、闊度八線。顯示卡驅動工具亦可以查詢連結世代同闊度嘅現時值同最高值。主機板插槽資訊亦可以用系統工具確認,作為輔助檢查。
正常降速:以下情況唔係故障
好多「x16 變 x8」嘅個案,其實係設計使然,唔係故障。
第一,插槽本身分工唔同。好多主機板上面,第一條十六線插槽會以最高頻寬運行,即係十六線,而第二條全長插槽只會行八線。某啲主機板手冊會寫明,八線插槽同十六線插槽共用頻寬;當八線插槽插咗裝置,十六線插槽就會以最高八線模式運作;晶片組插槽就跑四線。另一款主機板手冊亦有類似寫法,並且提醒,如果只安裝一張顯示卡,應該裝喺十六線插槽,先至有最佳表現。
第二,M.2 插槽分頻寬。部分英特爾插座主機板,會將原本留俾顯示卡嘅十六線連結拆開,去支援一條第五代 M.2 固態硬碟。由於唔存在十二線呢個選項,顯示卡就只剩返八線。但係同一個來源亦指出,如果將第五代 M.2 插槽留空,改將固態硬碟裝喺中央處理器直連嘅第四代 M.2 插槽,就唔會掂到顯示卡連接,顯示卡可以跑十六線。喺超微插座主機板上面,第五代 M.2 插槽係直接接去處理器,安裝硬碟並唔會扣減十六線顯示卡插槽嘅通道。呢啲規則係逐塊板唔同嘅,唯一可靠嘅來源,就係嗰塊主機板嘅手冊同規格頁上面「共用頻寬」嘅附註。千祈唔好寫成通用規則,例如話任何 M.2 固態硬碟都會令顯示卡變八線。一個只適用於個別主機板嘅用家報告,可以講明呢個概念:喺華碩 ROG Crosshair X870E Hero 上面,喺 M.2_2 或者 M.2_3 安裝第二隻 PCIe 5.0 硬碟,會令 PCIEX16_1 跌到八線,而 M.2_4 同 M.2_5 行 PCIe 4.0,唔會影響顯示卡插槽。呢個報告只適用於嗰塊板,唔係通用規則。
第三,中央處理器通道預算有限。有二手來源提到,某啲新一代桌面處理器可以處理最多二十四條通道,其中二十條第五代直接接去中央處理器,四條第四代經晶片組連結;另一代處理器就有十六條第五代加八條第四代,其中十六條由顯示卡插槽同中央處理器直連 M.2 插槽共用,插咗嗰個 M.2 插槽,顯示卡就會變八線。同一個來源亦提醒,唔係每塊主機板都有呢個問題,要睇手冊。讀者應該將呢啲當成「要睇手冊」嘅提醒,唔好當成自己塊板嘅定論。
第四,雙卡共用。兩張卡一齊用嘅時候,會因為中央處理器十六線通道平均分配,而各自跑八線。呢個係設計使然。
第五,張卡本身就係原生八線。有啲顯示卡喺物理或者電氣上面本身就係八線卡,例如 RTX 5060 Ti 被 TechPowerUp 形容為原生 PCIe 5.0 八線。呢類卡就算喺全負載下顯示八線,都係正確行為。讀者喺判斷任何問題之前,一定要先查張卡自己嘅規格,睇佢嘅最高連結闊度。GPU-Z 第一個數字,就係張卡嘅最高值。
第六,插咗晶片組接線嘅下層插槽。如果張卡插咗喺一條由晶片組接線、本身只係四線嘅插槽,顯示四線係設計使然,唔代表十六線插槽壞咗。將張卡搬返去頂部插槽,就可以攞返全闊度。
第七,世代受舊平台限制。舊主機板或者舊中央處理器本身只支援較舊世代,顯示卡顯示較舊世代係正常,唔係故障。
| 情況 | 係咪故障 | 點做 |
|---|---|---|
| 閒置讀數低於最高值,負載下升返去最高值 | 唔係 | 唔使跟進,唔好用閒置截圖診斷 |
| 張卡本身原生八線,顯示八線 | 唔係 | 對照張卡自己嘅規格,確認最高值 |
| 第二條全長插槽或者共用 M.2 插槽插咗嘢,顯示卡變八線 | 唔係,設計使然 | 睇主機板手冊嘅共用頻寬附註,決定係咪要搬裝置 |
| 張卡喺晶片組四線插槽,顯示四線 | 唔係 | 搬返去頂部中央處理器直連插槽 |
| 負載下仍然低於張卡同主機板嘅額定最高值 | 有可能係 | 按下節檢查次序跟進 |
| 負載下仲係第一代或者第二代,或者伴隨死機、黑屏 | 有可能係 | 當成需要檢查嘅故障訊號 |
真降速:要跟進嘅原因
如果負載下仍然低於額定最高值,就要逐個可能性檢查。
韌體設定方面,主機板韌體可以強制 PCIe 世代。測試機構就係用韌體設定,將世代由第五代限制到第四代、第三代去做對比測試。部分主機板有選項,可以切換插槽模式,或者調整通道行為;部分可以將插槽喺不同模式之間切換。檢查時,應該睇下世代係咪被強制咗去舊一代,分叉或者插槽拆分設定係咪開咗,或者有冇其他異常嘅通道共用選項。一個實際做法,係將世代設定還原做自動;如果有用延長線,就將世代強制去延長線支援嘅世代。主機板韌體更新有時可以修復連結協商問題,值得向板廠查詢有冇更新。
實體接觸方面,重新插卡係一個有根據嘅步驟。有指南建議,將顯示卡拆出嚟,用異丙醇清潔插槽接腳,再正確裝返去;有時灰塵甚至保養貼紙碎片會黐喺接腳上面。插槽本身可以用氣泵清潔。如果傳送全十六線介面所需嘅數據針腳被遮住,顯示卡就會以較低頻寬介面運作,例如八線或者更低。用接點清潔劑或者高純度異丙醇清潔,再重新插實,係對應嘅做法。中央處理器或者插座針腳亦係一個可能性,雖然比較少見:如果其中一支針腳污糟,接觸唔好,中央處理器嘅 PCIe 通道可能唔齊,令顯示卡只能跑八線。不過重新安裝中央處理器係高成本操作,唔好一開始就做。
連結會因為壞通道而自動降級,呢個機制喺上文已經講過。重新插卡之後仍然維持八線或者四線,特別係伴隨唔穩定,係同通道層訊號問題一致嘅現象,例如污糟或者損壞嘅針腳、插槽損壞、接觸不良。不過要講明,呢個係由兩個事實推論出嚟嘅解讀,唔係直接嚟自來源嘅診斷聲稱。
延長線係另一個常見變數。將第四代顯示卡同主機板,配一條第三代延長線,系統會嘗試以第四代速度通訊然後失敗;必須先喺主機板韌體將插槽設為第三代,先至出到畫面。平價延長線喺第四代同第五代速度下,經常造成死機或者黑屏,而標準做法係喺韌體強制較低世代,用頻寬換穩定。測試延長線最直接嘅方法,係暫時唔用延長線,將顯示卡直接插落插槽,睇下問題係咪消失。有一個用家報告話,一條標示第四代嘅機箱附送延長線,令張卡只跑到八線;拎走延長線之後,張卡跑返十六線。呢個只係個別軼聞,文章唔會將「延長線一般會將闊度限制到八線」寫成定論;已經確立嘅延長線事實,係世代唔夾會導致黑屏或者唔穩定。
顯示卡本身嘅金手指或者卡本身故障,亦要用對照測試分開。將張卡拎去第二部電腦測試,如果仍然跑八線,張卡本身係可疑來源;將另一張卡放入同一個插槽,如果仍然跑八線,主機板或者插槽就可疑。
有一個講法要小心處理:有單一來源話,缺失或者故障嘅六針、八針電源接頭,有時會令張卡以低得多嘅速度運作。呢個係薄弱嘅單一來源聲稱,同一個來源亦承認,通常電腦根本開唔到機。文章唔會將佢寫成已經確立嘅八線成因,最多只會喺一般步驟入面提醒,檢查電源接頭係咪插實,而唔聲稱佢會改變連結闊度。
另外有一個舊款主機板選項,據一個來源講,某個加速傳輸選項會食咗中央處理器通道,令顯示卡只跑八線。呢個講法有特定主機板同年代背景,文章只會將佢當成「檢查自己塊板上有冇異常選項」嘅例子,唔會當成常見成因。
檢查次序:七步
綜合以上來源,建議按以下次序檢查,唔好跳步:
第一步,喺負載下檢查。開 GPU-Z,記低匯流排介面,撳問號,開始渲染測試,喺測試運行期間讀數。如果去到張卡嘅額定最高值,例如十六線第四代,就停低,乜都無問題。千祈唔好用閒置截圖去診斷。
第二步,檢查張卡自己嘅最高值。GPU-Z 第一個數字,同張卡嘅規格頁對照。原生八線嘅卡顯示八線,係正確。相關嘅 GPU-Z 同 HWiNFO 監測做法,可參考文章編號 108。
第三步,檢查插槽。張卡係咪喺頂部全長插槽,即係通常由中央處理器直連嘅十六線插槽?第二條全長插槽或者共用頻寬嘅 M.2 插槽係咪插咗嘢?讀自己嗰塊主機板手冊嘅共用頻寬附註,嗰啲附註先係自己塊板嘅權威。
第四步,檢查韌體。世代係咪被強制去舊一代?分叉或者插槽拆分設定係咪開咗?有冇異常嘅通道共用選項?試下將世代設返自動;如果用緊延長線,就將世代強制去延長線支援嘅世代。
第五步,檢查實體。關機之後,重新插卡,檢查金手指同插槽有冇塵、碎屑或者貼紙殘留,用異丙醇同氣泵清潔。如果用緊延長線,試下唔用延長線,將張卡直接插落插槽。
第六步,隔離測試。交叉測試:張卡去第二部電腦,仍然八線就懷疑張卡;另一張卡嚟呢個插槽,仍然八線就懷疑主機板或者插槽。向板廠查詢有冇韌體更新。
第七步,決定。如果喺第四代或者以上平台,維持喺八線,而遊戲同工作負載運行正常,實際影響通常細;但係持續四線、負載下仍然係第一代或者第二代、死機或者黑屏,就指向真正需要檢查或者維修嘅故障。
影響有幾大:唔好將一個測試數字推廣到所有卡
好多人最想知嘅問題,係降速到底會唔會令遊戲變慢。呢度唯一有硬數字嘅,係一個針對高階卡嘅測試,必須講明出處同限制。
根據 TechPowerUp 嘅測試,經 Club386 報道,用高階卡配高階處理器同主機板做對比:在一千零八十像素解像度,第四代十六線變第四代八線,大約損失百分之二表現;再變第四代四線,再損失大約百分之四,即係對比十六線總共大約百分之六;去到第三代四線,即係等同第四代二線,損失大約百分之二十一,明顯唔可以接受。喺二千五百六十乘一千四百四十像素同四千像素解像度,第四代嘅差異無咁大;第三代四線喺四千像素稍為好啲。同一個報道嘅結論係,只要張卡跑緊第四代四線或者以上,表現應該可以接受。
另一個報道同一測試嘅摘要亦話,嗰張高階卡喺第四代八線模式,損失嘅表現微不足道;第四代十六線同第三代十六線之間嘅差別亦幾乎可以忽略。佢亦提醒,流動顯示卡嘅限制可能更加明顯,因為通道數目可能只得四條,而唔係桌面顯示卡嘅八條。
必須強調,呢啲數字只適用於嗰個測試同嗰張卡,唔好將準確百分比推廣到所有卡。有單一作者網站認為,某款舊高階卡喺第三代八線,最高損失大約百分之一至二;喺第一點一代八線、第二代八線或者第三代四線,就會有明顯損失。呢個只係一個作者嘅睇法,唔係已經確立嘅事實,文章唔會將佢寫成定論。
定性嚟講,有來源話,對於全十六線顯示卡嚟講,將現代顯示卡由第四代轉去第五代,平均幀率最多改變幾個百分點,擔心大多數情況下都係誇大咗;但例外情況係真實存在嘅,例如通道數目減少嘅顯示卡配舊主機板,同埋顯示記憶體溢出嘅遊戲,兩者都會喺慢連結上面量度到表現損失。另一個來源亦話,喺好多實際遊戲場景,較新世代嘅八線仍然可以表現得好好,但要睇顯示卡同工作負載。
邊啲工作負載會比較食連結?任何需要在中央處理器、系統記憶體同顯示卡之間搬大量數據嘅工作,例如顯示記憶體溢出、要攞系統記憶體嚟頂嘅遊戲、要串流數據嘅顯示卡運算或者人工智能工作、影片擷取或者傳輸任務。呢個係定性講法,其中顯示記憶體溢出一點,有來源支持。
文章唔會聲稱「八線永遠無影響」,亦唔會聲稱「四線都無問題」,因為呢兩個講法都無支持。唯一有硬數字嘅,就係上面嗰個高階卡測試。
常見誤解
- 用閒置 GPU-Z 截圖做診斷。最常見嘅錯誤。
- 將八線當成故障,但張卡本身就係原生八線。
- 將設計使然嘅通道共用,例如第二插槽或者 M.2 共用,當成故障。主機板手冊已經講明會發生。
- 將晶片組接線嘅四線插槽,當成十六線插槽壞咗。
- 將舊主機板或者舊中央處理器造成嘅世代下降,當成故障。
- 假設延長線「點插都得」,唔理世代。第三代延長線配第四代系統,可以黑屏,除非韌體設返第三代。
- 假設重新插卡「唔會有用」。被遮住嘅針腳真係可以令闊度下降,但重新插卡亦唔會修復設計使然嘅共用。
- 撈亂 GPU-Z 入面兩個數字。第一個係最高值,第二個係現時值,只睇第二個數字會無故嚇親。
常見問題
問:GPU-Z 顯示「PCIe x16 4.0 @ x8 1.1」,係咪即係張卡降速咗?
答:唔一定。呢個讀數嘅意思,係張卡支援十六線第四代,現時運行緊八線第一點一代。如果呢個係閒置讀數,好可能只係省電降速。要喺渲染測試運行期間再讀一次,先至可以判斷。
問:喺負載下都係八線,係咪即係故障?
答:唔一定。要先對照三樣嘢:張卡自己嘅最高闊度係咪就係八線;張卡係咪喺頂部十六線插槽;第二插槽或者共用 M.2 插槽係咪插咗嘢。呢啲全部都係設計使然嘅可能性,要排除咗先至好當成故障。
問:將顯示卡由八線插槽搬去十六線插槽,係咪一定快咗?
答:唔一定。實際影響要睇世代、工作負載同顯示卡本身。上面引述嘅高階卡測試顯示,第四代八線對比十六線,喺嗰個測試入面損失細;但唔好將呢個數字推廣到所有卡同所有工作負載。顯示記憶體溢出或者大量數據傳輸嘅工作負載,對連結會敏感啲。
問:延長線會唔會令顯示卡變八線?
答:研究入面無受控測試證明延長線一般會將闊度限制到八線,只有一個用家軼聞。已經確立嘅延長線事實,係世代唔夾會導致黑屏或者唔穩定,解決方法係喺韌體將世代設去延長線支援嘅世代,或者暫時唔用延長線直接測試。
問:主機板手冊點解咁重要?
答:因為通道共用規則係逐塊板唔同嘅。有啲板插咗第二插槽會令第一插槽變八線,有啲板某個 M.2 插槽會分走顯示卡通道,有啲板就唔會。手冊上面「共用頻寬」嘅附註,先係自己嗰塊板嘅權威,唔好用網上其他型號嘅經驗去套落自己塊板。
問:咩情況應該搵人檢查?
答:如果喺持續負載下,連結仍然低於張卡同主機板嘅額定最高值,或者出現頻繁重新訓練、死機、黑屏、窒下窒下,就係需要檢查嘅訊號。可能原因包括延長線、插卡接觸、韌體唔夾,或者插槽本身出問題,應該按上文七步檢查次序逐步隔離,唔好直接當成顯示卡壞咗。
參考來源
- 維基百科 PCIe 連結表現:https://en.wikipedia.org/wiki/PCI_Express_3
- PCI-SIG PCIe 6.0 規格:https://pcisig.com/pci-express-6.0-specification
- GraphicsCardHub GPU-Z 讀數同重新插卡:https://graphicscardhub.com/gpu-pcie-running-x8/
- Baaz 顯示卡電源管理同 PCIe 連結:https://baaz.dev/blog/understanding-power-management-in-gpu-via-pcie
- Club386 報道 TechPowerUp 高階卡 PCIe 擴展測試:https://www.club386.com/geforce-rtx-4090-pcie-scaling-test-shows-impressive-performance-even-with-low-lane-count/
- GIGABYTE 主機板手冊共用頻寬說明:https://manuals.plus/gigabyte/z890-ai-top-motherboard-manual
- TechPowerUp 原生八線顯示卡評測:https://www.Techpowerup.com/review/nvidia-geforce-rtx-5060-ti-pci-express-x8-scaling/
相關文章:GPU-Z 同 HWiNFO 監測可參考文章編號 108;顯示卡認唔到嘅檢查可參考文章編號 106;VBIOS 相關內容可參考文章編號 104。