한국어English日本語简体中文繁體中文DeutschไทยTiếng ViệtРусскийPortuguês (Brasil)EspañolBahasa Indonesia

遊戲 Lag 白皮書 › L2 用戶端 OS 與裝置

顯示記憶體(VRAM)不足 VRAM over-commit

原因 ID co-vram · 主要負責 遊戲開發團隊(用戶端開發) · 協同 外部(外部)

在含圖解與實驗的完整版中開啟卡片 →

畫質選項需要的記憶體比顯示卡記憶體還大時,OS 會把貼圖移到電腦的主記憶體再搬回來,因此出現卡頓。

為什麼 高貼圖選項,加上人多的地方各式各樣的裝備與特效,讓顯示卡記憶體全滿 → 於是 OS 把暫時沒用到的貼圖移到電腦的主記憶體,需要時再透過較慢的 PCIe 匯流排搬回來 → 畫面上 每次出現新場景或新角色都會頓一下,貼圖有一段時間是模糊的

症狀
卡頓, 定格
因素
停滯
誰會遇到
只有我
何時
人潮湧入時, 移動中/切換地圖時
負責單位
主要負責 遊戲開發團隊(用戶端開發) · 協同 外部(外部)
遊戲開發團隊要做的事
依顯示卡記憶體大小設定選項預設值、超出記憶體預算時自動調低貼圖品質、人多的地方簡化角色貼圖。
外部要做的事
引導玩家調低貼圖選項,同時開兩個用戶端時要把選項調得更低。
數值參考
顯示卡記憶體每秒可讀取數百 GB,但與電腦主記憶體之間往來的 PCIe 匯流排依世代約為每秒 16~64GB,慢了十倍以上。
圖表上
碰到上限後持平 · 專用 GPU 記憶體、共用 GPU 記憶體
查看位置
把工作管理員「效能」索引標籤 GPU 項目中的專用 GPU 記憶體、共用 GPU 記憶體圖表(也可以在「詳細資料」索引標籤加上各處理程序的欄位)跟 PresentMon 畫格時間一起查看
符合的跡象
專用 GPU 記憶體貼著上限持平、共用 GPU 記憶體持續增加的期間經常頓一下,調低貼圖選項後就消失
不符合的跡象
專用記憶體還有餘裕時,是「儲存裝置太慢,資源串流跟不上」或「主執行緒同步載入、著色器編譯」
確認方式
在玩家端環境確認
深入了解
Windows 工作管理員的 GPU 項目中,「專用 GPU 記憶體」全滿、「共用 GPU 記憶體」增加,就是這個狀態。在同一台電腦上開兩個用戶端會更快用滿(見「記憶體/VRAM 不足導致串流失敗」項目)。

出處

  1. Residency Microsoft
    處理程序可使用的顯示記憶體有預算,超出時 kernel 會把獨立 GPU 的部分 heap 移到電腦主記憶體(這是最後手段,建議做好預算管理)
  2. GPUs in the task manager Microsoft
    工作管理員的專用 GPU 記憶體是顯示卡的 VRAM,共用 GPU 記憶體是 GPU 與 CPU 共用的電腦主記憶體
  3. CUDA C++ Best Practices Guide NVIDIA
    顯示記憶體頻寬(V100 為 898GB/s)遠大於 PCIe x16 第 3 代(16GB/s),因此建議減少與電腦主記憶體之間的傳輸
  4. PresentMon Capture Application (README-CaptureApplication.md) Intel
    以 FrameTime(畫格之間的 CPU 時間)錄下每個畫格的時間

相關原因

同一層:L2 用戶端 OS 與裝置

同一症狀(卡頓)在其他層的原因

查看含圖解與實驗的完整版卡片