NVIDIA GeForce RTX 30的RTX IO讓硬碟資料直送顯示卡

NVIDIA GeForce RTX 30的RTX IO讓硬碟資料直送顯示卡

在GeForce RTX 30系列顯示卡發表之後,NVIDIA也額外舉辦了技術研討會,就讓我們一起看看這些應用於新顯示卡的技術。在系列文章的第1篇中,筆者將說明RTX IO的運作概念以及所能帶來的優勢。

ADVERTISEMENT

減緩處理器IO瓶頸

簡單地說,RTX IO就是DirectStorage在NVIDIA顯示卡的實作,我們先前已經在GeForce RTX 30系列顯示卡發表會的文章中,提到RTX IO的技術概念,並在另一篇文章介紹了Microsoft DirectStorage API的特色,建議讀者可以先閱讀下列2篇文章。

延伸閱讀:
NVIDIA新品終於亮相,GeFocre RTX 3090多項全新黑科技技術公開
Microsoft說明DirectStorage特色,看懂GeForce 30系列RTX IO技術有何優勢

隨著現在遊戲畫質不斷提升,解析度也逐步從1080p推向4K甚至8K,因此開發者往往需要準備解析度更高的材質貼圖,並在畫面上使用更多使用貼圖,以繪製更加逼真的遊戲畫面。這除了增加顯示卡繪圖方面的運算負載、顯示記憶體使用量之外,也會因為系統需要更頻繁讀取容量龐大的貼圖,進而增加儲存裝置的工作負擔。

在過去遊戲解析度比較低的時期,貼圖的總容量並不會太大,存取效能為50MB/s的傳統硬碟可能就足以應付遊戲需求。然而隨著顯示卡的效能不斷提升,能夠繪製更細膩的3D圖像的同時,使用的貼圖也隨之增加,對於儲存裝置效能的需求也越來越高,甚至超過SATA或是PCIe Gen3介面固態硬碟的頻寬。

《末日之戰》需佔用10GB儲存空間,當時已經是「重量級」的遊戲,而現在的遊戲動輒超過100GB。另一方面儲存裝置的存取效能傳統硬碟的100MB/s,成長到SATA固態硬碟的500MB/s、PCIe Gen3固態硬碟的3,500MB/s,到了PCIe Gen4固態硬碟甚至衝上7,000MB/s。

大幅提升遊戲載入速度

為了增加讀取貼圖的效率,將資料壓縮便成為解決方法之一。若從頻寬為7GB/s的PCIe Gen4介面固態硬碟讀取壓縮貼圖檔案的話,解壓縮後大概等同於具有12GB/s的讀取效能,但這將佔用約24個處理器核心的資源,將造成另一個嚴重的效能瓶頸。

RTX IO的2大優勢是能讓顯示卡直接讀取儲存在固態硬碟中的資料,並在在顯示卡上進行解壓縮。相較於傳統作法需要

1. 透過處理器安排讀取佇列
2. 將資料讀取至主記憶體
3. 透過處理器解壓縮
4. 將資料傳送至顯示記憶體

而RTX IO則只需

1. 透過處理器安排讀取佇列
2. 直接資料讀取至顯示記憶體
3. 透過顯示卡解壓縮

兩者相比,可以發現傳統做法相當耗費系統資源,而RTX IO不但僅需使用大約0.5個處理器核心資源(安排讀取佇列佔用資源極低,僅需1個執行緒即可),還可省下反覆傳輸資料所耗費的時間。另一方面Microsoft DirectX Developer Blog的《DirectStorage is coming to PC》一文也指出,「DirectStorage能夠支援當下以及未來的解壓縮技術」,言下之意除了代表DirectStorage能夠支援多種解壓縮演算法之外,也暗示了可能可以使用其他廠商的軟、硬體解壓縮方案。

NVIDIA技術行銷經理蘇家興在回覆筆者的問題中提到,在RTX IO進行解壓縮的過程中,大約只會佔用1組SM(Streaming Multiprocessor)的運算資源。雖然還是會佔用到顯示卡的資源,但只會對效能造成些許影響(筆者註:若考量到GeForce RTX 3080總共具有68組SM,只佔用1組真的對效能的衝擊有限),相較之下若以純粹以處理器進行解壓縮,推估需要佔用24個處理器核心,可能已經超過許多電腦所能負荷,因此使用顯示卡進行解壓縮有其實用價值。

最基本讀取材質貼圖的方式,就是讓處理器將未壓縮的資料讀到主記憶體,然後在傳送至顯示記憶體,過程中充滿不同的效能瓶頸。

這種方式雖然不需花費額外運算資源,但整體傳輸效能受到儲存裝置頻寬限制。

若改為讀取壓縮資料,則多了處理器需進行解壓縮的步驟,過程中需將資料從主記憶體讀出,解壓縮後寫回主記憶體,最後才傳送至顯示記憶體。

這樣雖然可以增加資料吞吐量,但也需要花費大量處理器資源進行解壓縮。

RTX IO則是可以直接將資料送進顯示記憶體。

RTX IO也能將解壓縮的工作負載轉移至顯示卡,如此一來大概只需花費0.5個處理器核心與1組SM的資源。

讓遊戲讀取更快、畫面更讚

RTX IO的優勢之一,就是能大幅縮短遊戲的讀取時間,雖然目前市面上還沒有實際支援RTX IO或DirectStorage的遊戲,但NVIDIA已經在Marbles at Night技術展示中導入RTX IO。

在使用傳統硬碟搭配無壓縮資料的情況下,讀取時間長達62.13秒,若改為NVMe固態硬碟搭配壓縮資料,讀取時間則可縮短至5.25秒,而使用RTX IO搭配NVMe固態硬碟與壓縮資料,則可再縮短至1.62秒,可見RTX IO對讀取時間的最佳化有莫大幫助。

另一方面,RTX IO也能讓無縫開放世界遊戲更快速地讀取材質貼圖,進而讓開發者能在遊戲中安排更細膩的貼圖,以發揮提升遊戲畫質的效果,這點也是《DirectStorage is coming to PC》一文提到DirectStorage的附加效果之一。

對於這點蘇家興也在回覆筆者的過程中,透露或許未來遊戲開發者會在開發過程中準備支援與關閉RTX IO的版本,若玩家的電腦支援RTX IO,則會讀取更大量的材質貼圖,提供玩家更逼真的視覺體驗。

▲Marbles at Night技術展示範例程式是Marbles的升級版,加入了更多光源變化,並導入多項GeForce RTX 30系列顯示卡的新技術。

RTX IO能大幅縮短Marbles at Night的讀取時間。(官方在研討會中使用的投影片包含動態影片,但提供給筆者的檔案卻只有靜態圖片,請見諒)

與使用傳統硬碟搭配無壓縮資料相比,RTX IO能將讀取時間從62.13秒縮短至1.62秒。

RTX IO除了可以縮短,也能讓開發者在遊戲中使用更大量的材質貼圖,達到提升遊戲畫質的效果。

目前RTX IO與DirectStorage都還處於相當初期的開發階段,尚無遊戲導入這項技術,而Microsoft預計到2021年才會將PC版DirectStorage開發者預覽版交至遊戲開發者手中,想要搶先體驗這類技術的玩家,可能需要先在Xbox Series X主機上聞香。

使用 Facebook 留言

發表回應

謹慎發言,尊重彼此。按此展開留言規則