PTT推薦

Re: [情報] Windows 10將會使用新的DirectStorage API

看板PC_Shopping標題Re: [情報] Windows 10將會使用新的DirectStorage API作者
s25g5d4
(function)
時間推噓22 推:22 噓:0 →:39

來自微軟的部落格文章

https://devblogs.microsoft.com/directx/directstorage-is-coming-to-pc/


TL;DR:

1. 透過平行化與批次處理減少 IO 請求,進而減少多餘的請求成本
(提高 throughput)
2. 減少 IO 請求完成通知,避免浪費寶貴的 CPU/GPU time 在上面
3. 跳過非必要 IO 請求步驟以減少請求成本
4. 可能會有新的壓縮 / 解壓縮技術
5. 僅適用 NVMe,因為 NVMe 有特別的資料佇列
6. 明年推出預覽版


首段廢話我就不翻了



## 儲存科技進化與現代遊戲 IO 特徵

近年來 SSD 與 PCIe 科技的進步,或更精確的說 NVMe 科技,令個人電腦儲存裝置頻寬遠超過舊時硬碟科技。比起過往的數十 MB/s,現代儲存裝置,例如即將到來的 Xbox
Series X 主機所採用之客製 NVMe,可以在一秒內傳輸數 GB 的資料。

電腦遊戲的運作機制也更進步了。現代遊戲載入所需的資料比起過往都來得多,載入的方式也比以前更聰明。為了載入更大量的資料已填滿記憶體,這些讀取最佳化技巧是必要的。現代遊戲將貼圖材質等遊戲資源分拆成小部分,過去曾採用的多量少次讀取機制,已被當代主流的少量多次機制取代,僅載入繪製畫面所需的資源。這種方法可以帶來更佳的記憶體使用效率,及更好的場景繪製,但也會產生更多的 IO 請求。

不幸的是,現代儲存介面並沒有針對如此高的 IO 數量最佳化,造成瓶頸而無法用光
NVMe 裝置所有的高頻寬,限制了現代遊戲的發展。即使採用再高級的遊戲主機與 NVMe
裝置,僅使用現有的介面也無法滿足所有 IO 管線而浪費了寶貴的頻寬。

這是為什麼我們將 DirectStorage 帶來個人電腦上。這項新技術便是針對現代越來越進步的儲存科技與遊戲 IO 而來。DirectStorage 將會支援滿足特定條件的系統與 NVMe 裝置,並將遊戲體驗提升至更高的境界。但即使你的系統不支援 DirectStorage,這並不會令你無法進行遊戲。

## DirectStorage 將會如何改變我的遊戲體驗?

新介面將會帶來兩點主要特性:減少過往令人惱火的載入時間,並提升遊戲細節與廣度。

雖然兩項特性看起來天差地遠,兩者皆是受益於 DirectStorage 帶來的 IO 系統升級。不管是角色服裝的貼圖材質,或是遠景的高山,皆與從儲存裝置載入資料至顯示卡息息相關。前者可以在場景轉換間的載入時間讀取,而後者則是在開放世界遊戲中隨著角色人物移動,隨著遠景變成近景而動態載入。

在上述兩種場景中,舊世代遊戲僅有 50 MB/s 左右的速度以載入連續不中斷的遊戲資源,僅可達每秒百次、每次 64KB 的 IO 請求。若放到現今頻寬動輒數 GB 每秒的 NVMe 裝置上,要完全用完可用頻寬,將會使 IO 數量爆增至每秒數萬次。以 Series X 的
2.4GB/s 儲存裝置來說,一樣使用 64KB 區塊大小,若要用完頻寬,必須處理每秒超過
35000 次的 IO 請求。

現有的介面令應用程式必須手動處理從發起、等待到結束的過程,且一次一個請求。每次請求成本雖然不太大,對跑在慢速儲存裝置上的舊有遊戲來說不是問題,但當規模放大到數萬次每秒時,過多的請求成本成為當代遊戲對 NVMe 裝置頻寬的使用瓶頸。

除了上述限制,這些儲存在裝置上的遊戲資源還處於壓縮狀態。當處理器或顯示卡需要這些資源時,這些資源必須先被解壓縮才能使用。執行中的電腦遊戲可以從磁碟取得任意數量的資料,但需要更有效率的解壓縮方法並傳輸到顯示卡以繪製畫面。DirectStore 可以讓遊戲採用當代最新,及未來可能發展的解壓縮技術。

當一款遊戲需要載入並解壓縮數千區塊資料以繪製下個畫面時,現有每次一個請求的模型是沒有效率的。DirectStorage 技術介面將改善上述問題,並最大化吞吐量以餵滿整個
NVMe 裝置所有 IO 管線,並直送至顯示卡。

DirectStorage 將採用下述方法:減少每個 NVMe 請求的成本、批次處理平行 IO 請求以最佳化資料傳輸至顯示卡的效率、賦予遊戲更細微的控制粒度以掌控 IO 請求完成通知,避免每次收到一點資料就必須響應通知。

透過這些方式,開發者將能夠以數倍於過往的超高效率處理 IO 請求,最終得以最小化遊戲載入時間,帶給玩家隨著角色移動同時載入更大、更細緻的虛擬世界。

## 為什麼是 NVMe?

NVMe 裝置除了擁有極高的頻寬,獨有的硬體資料存取管線(NVMe 佇列)更特別適合遊戲運作方式。為了從儲存裝置取得資料,作業系統向裝置送出請求,而請求的資料將透過此佇列傳輸至應用程式中。每個 NVMe 裝置具有多個佇列,且每個佇列可以同時儲存多個請求資料。這個模型完美符合現代遊戲載入資料的平行化、批次處理運作方式。
DirectStorage 作業模式本質上即是給予開發者直接控制這些高度最佳化裝置的能力。

在此之上,現有介面造成從應用程式發起請求、到儲存裝置處理完畢之間,多了不少多餘的步驟,而產生不必要的請求成本。這些多餘的步驟包含了 IO 操作中間的各種資料變換。但是,這些步驟不見得在每一個請求、每一個 NVMe 裝置、每個遊戲主機中都是必要的。透過支援的 NVMe 裝置與配置正確的主機,DirectStorage 可以自動偵測並跳過這些非必要的檢查與操作,使每個 IO 請求成本降低。

上述這些理由便是為何 NVMe 儲存科技是 DirectStorage 與新世代高效能遊戲 IO 最適合的選擇。

## 什麼時候可以取得更近一步的細節?

每個的 DirectX 家族功能,微軟都會與最好的遊戲工業廠商探討並立下標準,讓遊戲開發者得以取用,最終帶到玩家的遊戲主機中。

我們已經開始 DirectStorage 的開發程序,並與我們的產業夥伴合作以完成設計介面與伴隨的組件。我們的目標是明年將 DirectStorage 開發者預覽版交至遊戲開發者手中。

--

可以討論的點

1. 沒提到 DMA,雖然 NV 說有

2. SSD 是否需要特別支援 DS

3. 是否有分支援程度,以後或有 DS-ready SSD 跟顯卡

3. SATA 墓上的草都長得跟我妹一樣高了,我還在用 MX500

4. 不對我沒有妹妹 QQ

--

dkchronos :招喚obov 04/16 19:23
cesar0909 :樓下obov04/16 19:42
SNGoMMX :樓下obov 04/16 21:50
y3k :上面好多obov 樓下繼續當obov 04/16 21:53
obov :恩 沒問題 繼續當obov04/16 22:20

--

※ PTT留言評論
※ 發信站: 批踢踢實業坊(ptt.cc), 來自: 59.127.39.149 (臺灣)
PTT 網址

justin09113609/04 14:12學長安安 ><

SungHyun 09/04 14:24用 mac os 不就一勞永逸了嗎...windows就是愛自找

SungHyun 09/04 14:24一堆麻煩 花錢買罪受

https://imgur.com/wFoeyIg

真的,真香

school4303 09/04 14:29在mac上玩遊戲 花錢買罪受的是誰啊 ㄏ

https://imgur.com/z0ROnfw

我大 ROG

※ 編輯: s25g5d4 (59.127.39.149 臺灣), 09/04/2020 14:33:17

a1234567289 09/04 14:32他的意思是用mac os就不用打遊戲 一勞永逸吧

arrenwu 09/04 14:33我沒有用過那麼高規的SSD,想問一下板上用NVMe SSD

arrenwu 09/04 14:33的板友,現在你們玩遊戲會遇到那個「惱人的讀取」嗎

coox 09/04 14:34用mac os甚麼事情都不能做就不會想東想西浪費時間了

arrenwu 09/04 14:35不過從這個文章看起來,像是現在的讀取可能很快,但

arrenwu 09/04 14:35以後那些過場會變成「秒讀」的樣子

friedpig 09/04 14:37讀多慢都有方法去處理 這是遊戲設計的一環

friedpig 09/04 14:38當初PS5發表的時候 忘了在哪個板就有看到遊戲設計的

friedpig 09/04 14:38分享了 以前讀很慢的時候 就是多塞一些無意義的長廊

friedpig 09/04 14:39之類的 增加你移動時間 去偷讀取時間 遊戲設計師

arrenwu 09/04 14:39但我對於他講的那個 50MB/s 挺有疑問的

friedpig 09/04 14:39設計的好 就算多爛的讀取都不一定有感 但如果能讀

arrenwu 09/04 14:39現在遊戲讀取還是這種速度嗎?

friedpig 09/04 14:40很快 遊戲設計又能有更多操作空間 影響最大的應該

friedpig 09/04 14:40是開放世界

friedpig 09/04 14:42舊世代(XBOX PS4)是HDD 小檔讀寫差不多啊

arrenwu 09/04 14:43喔喔 我了解了 我還想說大家都在用SSD怎麼會那麼慢

friedpig 09/04 14:44SSD要不要特規 官方QA有提到 不用 API更新以後就可

friedpig 09/04 14:45以 沒掛保證的只有HDD會不會進這個協定

friedpig 09/04 14:47https://bit.ly/3jIQq1O 官方QA

commandoEX 09/04 14:48目前NVME SSD主要還是用在系統碟吧,等到用到遊戲

friedpig 09/04 14:49QA裡面也有提到一點Cuda Double的設計

commandoEX 09/04 14:49碟後才知道吧

friedpig 09/04 14:50用在哪你自己的決定吧 我就拿NVME去給遊戲碟阿 系統

friedpig 09/04 14:50拉在快有點無感了

friedpig 09/04 14:51而且系統小檔讀寫居多 nvme跟Sata的也沒差到很多

arrenwu 09/04 14:53但就算是用 SATA SSD,也會比那個50MB/s快很多吧

friedpig 09/04 14:55快不一定有用阿 遊戲設計師一定是以常態去設計

friedpig 09/04 14:55所以你再怎麼快遊戲可能還是做成一堆偷讀取時間的內

friedpig 09/04 14:55

arrenwu 09/04 14:56https://bit.ly/2Z74Pgh 這裡有篇文章響應 friedpig

arrenwu 09/04 14:56對系統SSD的看法。NVMe是有比較快,但其實差別很小

friedpig 09/04 14:57我不用nvme當系統碟還有另一個點 nvme都有夠熱 又快

friedpig 09/04 14:57我對他壽命信心度比較低 遊戲碟死了就算了 系統碟死

friedpig 09/04 14:57了麻煩的要死 寧願用SATA的SSD做系統

chen5512 09/04 15:21並不是所有的NVME SSD都很熱也有溫度很低的機型,不

chen5512 09/04 15:21過我NVME SSD都習慣加上散熱器

arrenwu 09/04 15:22現在NVMe SSD通常都會再裝散熱鰭片了

kuninaka 09/04 15:22偷渡問題 nvme ssd 螺絲不見了 要去哪買?

MK47 09/04 15:25網拍隨便都有

crow0801 09/04 15:39微軟推這API 等於把NVMe當主流規格了

kuninaka 09/04 15:44現在遊戲機很少人不裝NVME了吧

kira925 09/04 15:47NB也是NVMe居多

arrenwu 09/04 15:47實際上NVMe價格也降到跟SATA差不多了

SPDY 09/04 15:57不只是把NVMe當主流而已 業界已視為未來多年的重點

SPDY 09/04 16:01像是WD 已推出透過網路存取的NVMe-oF產品了呢

hcwang1126 09/04 17:00如果遊戲設計都會基於此 那真的nvme會大賣

hcwang1126 09/04 17:01PS5的遊戲不會在因為讀取 而設計不必要的場景

hcwang1126 09/04 17:03SATA的遊戲體驗會差太多

kuninaka 09/04 17:19NVMe應該早就大賣了吧

chen5512 09/04 17:20NVME SSD螺絲網拍有在賣

friedpig 09/04 17:46反正兩大廠都確定NVMe高速介面了 這就一定是未來標

friedpig 09/04 17:46準也沒啥好討論的 未來開發者一定要照這個設計

ImCasual 09/04 18:24Linux可以期待ㄇ

Void956 09/05 05:51電子材料行 M2螺絲

kuninaka 09/05 10:43感謝各位版友回答

HotDogCC 09/07 03:49Nemv還是讀到吐血