衡阳派盒市场营销有限公司

0
  • 聊天消息
  • 系統消息
  • 評論與回復
登錄后你可以
  • 下載海量資料
  • 學習在線課程
  • 觀看技術視頻
  • 寫文章/發帖/加入社區
會員中心
創作中心

完善資料讓更多小伙伴認識你,還能領取20積分哦,立即完善>

3天內不再提示

使用NVIDIA RTX MU提供壓縮和子分配解決方案

星星科技指導員 ? 來源:NVIDIA ? 作者:NVIDIA ? 2022-04-22 10:56 ? 次閱讀

加速結構在空間上組織幾何體以加速光線跟蹤遍歷性能。創建加速結構時,會分配保守的內存大小。

在初始構建時,圖形運行時不知道幾何體如何最佳地適應超大的加速結構內存分配。

GPU 上執行構建之后,圖形運行時報告加速結構可以容納的最小內存分配。

這個過程稱為壓縮加速結構,它對于減少加速結構的內存開銷非常重要。

減少記憶的另一個關鍵因素是對加速結構的子分配。子分配通過使用比圖形 API 所要求的內存對齊方式更小的內存對齊方式,使加速結構能夠在內存中緊密地打包在一起。

通常,緩沖區分配對齊最小為 64 KB ,而加速結構內存對齊要求僅為 256 B 。使用許多小加速結構的游戲從子分配中受益匪淺,使許多小分配能夠緊密打包。

NVIDIA RTX 內存實用程序( RTX MU ) SDK 旨在降低與加速結構優化內存管理相關的編碼復雜性。 RTX MU 為 DXR 和 Vulkan 光線跟蹤提供壓縮和子分配解決方案,同時客戶端管理加速結構構建的同步和執行。 SDK 為這兩個 API 提供了子分配器和壓縮管理器的示例實現,同時為客戶機實現自己的版本提供了靈活性。

有關壓縮和子分配在減少加速結構內存開銷方面為何如此重要的更多信息,請參見 提示:加速結構壓實 。

為什么使用 RTX MU ?

RTX MU 允許您將加速結構內存縮減技術快速集成到他們的游戲引擎中。下面是這些技術的總結,以及使用 RTX MU 的一些關鍵好處

減少加速結構的內存占用,包括壓縮和子分配代碼,實現起來并不簡單。 RTX MU 可以完成繁重的工作。

抽象了底層加速結構( blase )的內存管理,但也足夠靈活,允許用戶根據引擎的需要提供自己的實現。

管理壓縮大小回讀和壓縮副本所需的所有屏障。

將句柄傳遞回引用復雜 BLAS 數據結構的客戶端。這可以防止對 CPU 內存的任何管理不當,包括訪問已經釋放或不存在的 BLAS 。

有助于將 BLAS 內存減少 50% 。

通過將更多的 BLASE 打包到 64 KB 或 4 MB 頁中,可以減少翻譯查找緩沖區( TLB )未命中。

RTX MU 設計

RTX MU 有一種設計理念,可以降低大多數開發人員的集成復雜性。該設計理念的主要原則如下:

所有函數都是線程安全的。如果同時訪問發生,它們將被阻塞。

客戶機傳入客戶機擁有的命令列表, RTX MU 填充它們。

客戶機負責同步命令列表執行。

API 函數調用

RTX MU 抽象了與壓縮和子分配相關的編碼復雜性。本節中詳細介紹的函數描述了 RTX MU 的接口入口點。

Initialize – 指定子分配程序塊大小。

PopulateBuildCommandList – 接收 D3D12_BUILD_RAYTRACING_ACCELERATION_STRUCTURE_INPUTS 數組并返回加速結構句柄向量,以便客戶端稍后在頂級加速結構( TLAS )構造期間獲取加速結構 GPU VAs ,依此類推。

PopulateUAVBarriersCommandList –接收加速度結構輸入并為其放置 UAV 屏障

PopulateCompactionSizeCopiesCommandList –執行拷貝以傳遞任何壓縮大小數據

PopulateUpdateCommandList – 接收 D3D12_BUILD_RAYTRACING_ACCELERATION_STRUCTURE_INPUTS 數組和有效的加速結構句柄,以便記錄更新。

PopulateCompactionCommandList – 接收有效的加速結構句柄數組,并記錄壓縮命令和屏障。

RemoveAccelerationStructures – 接收一個加速結構句柄數組,該數組指定可以完全釋放哪個加速結構。

GarbageCollection – 接收一個加速結構句柄數組,該數組指定可以釋放生成資源(暫存和結果緩沖區內存)。

GetAccelStructGPUVA – 接收加速結構句柄并根據狀態返回結果或壓縮緩沖區的 GPU VA 。

Reset – 釋放與當前加速結構句柄關聯的所有內存。

子分配程序 DXR 設計

BLAS 子分配程序通過將小的 BLAS 分配放在較大的內存堆中,來滿足 64kb 和 4mb 的緩沖區對齊要求。 BLAS 子分配程序仍然必須滿足 BLAS 分配所需的 256B 對齊。

如果應用程序請求 4mb 或更大的子分配塊,那么 RTX MU 使用具有堆的已放置資源,這些堆可以提供 4mb 對齊。

如果應用程序請求的子分配塊少于 4MB ,那么 RTX MU 將使用提交的資源,它只提供 64KB 的對齊。

BLAS 子分配程序通過維護空閑列表重用塊中的空閑子分配。如果內存請求大于子分配程序塊大小,則會創建一個無法子分配的分配。

壓實 DXR 設計

如果構建請求壓縮,那么 RTX MU 請求將壓縮大小寫入視頻內存塊。壓縮大小從視頻內存復制到系統內存后, RTX MU 分配一個子分配的壓縮緩沖區,用作壓縮復制的目的地。

壓縮拷貝獲取包含未使用的內存段的原始構建,并將其截短到可以容納的最小內存占用。壓縮完成后,原始的非壓縮構建和暫存內存將釋放回子分配程序。唯一需要擔心的是傳入 allow compression 標志并用 BLAS 句柄調用 GetGPUVA 。 GPU VA 可以是原始版本,也可以是壓縮版本,這取決于 BLAS 處于什么狀態。

如何使用 RTX MU

在本節中,我將詳細介紹 RTX MU 序列循環和同步。

RTX MU 序列環路

圖 1 顯示了 RTX MU 的正常使用模式。客戶機管理命令列表的執行,而其他一切都是對 RTX MU 的調用

首先,通過傳入子分配程序塊大小和負責分配子分配塊的設備來初始化 RTX MU 。在每一幀中,引擎構建新的加速結構,同時也壓縮先前幀中構建的加速結構。

在 RTX MU 填充客戶機的命令列表之后,客戶機就可以自由地執行和管理初始構建到最終壓縮拷貝構建的同步。在調用 PopulateCompactionCommandList 之前,確保每個加速結構構建都已完全執行,這一點很重要。這是留給客戶妥善管理。

當加速結構最終達到壓縮狀態時,客戶機可以選擇調用 GarbageCollection ,它通知 RTX MU 可以釋放暫存和原始加速結構緩沖區。如果引擎執行大量的資產流,那么客戶端可以通過使用有效的加速結構句柄調用 RemoveAS 來釋放所有加速結構資源。

pYYBAGJiGVeAanG8AAH-8s14IW8959.png

圖 1 描述客戶機和 RTX MU 代碼的典型用例的 RTX MU 流程圖

客戶端加速結構生成同步

圖 2 顯示了客戶端正確管理壓縮就緒工作負載所需的同步。這里的示例是一個三幀緩沖循環,其中客戶端最多可以有三個異步幀構建在 CPU 上并在 GPU 上執行。

若要獲取 CPU 側可用的壓縮大小,生成 0 必須已在 GPU 上執行完畢。在客戶端接收到來自 GPU 的 fence 信號后,客戶端可以調用 RTX MU 來開始壓縮命令列表記錄。

管理加速結構的壓縮同步的一種有用方法是使用某種類型的鍵/值對數據結構,它跟蹤 RTX MU 給定的每個加速結構句柄的狀態。加速度結構的四種基本狀態可描述如下:

Prebuilt – 生成命令記錄在命令列表中,但尚未在 GPU 上完成執行。

Built – 初始構建已在 GPU 上執行,并準備好執行壓縮命令。

Compacted – 壓縮拷貝已經在 GPU 上完成,并且準備好讓 GarbageCollection 釋放暫存和初始構建緩沖區。

Released – 客戶端從內存中釋放加速結構,因為它不再在場景中。此時,與加速結構句柄相關的所有內存都被釋放回操作系統

poYBAGJiGViAAK0TAAA3Gz1Ij2s900.jpg

圖 2 。客戶機代碼只能在初始加速結構構建完成在 GPU 上的執行之后啟動壓縮工作負載。

RTX MU 測試場景

RTX MU 使用六個文本場景進行了測試,以提供有關壓縮和子分配的好處的真實用例數據。下面的圖只顯示了一些場景。

RTX MU 積分結果

在測試場景中, NVIDIA RTX 卡上的壓縮平均減少了 52% 的加速度結構。壓縮記憶降低的標準差為 2 。 8% ,比較穩定。

pYYBAGJiGViALSGmAACyAOVYQ4M683.png

圖 6 。 ZVK3] RTX 3000 系列 GPU s 上壓縮打開與關閉的比較條形圖

在 NVIDIA 和 AMD-HW 上啟用壓縮時, NVIDIA HW 上的內存節省比 AMD 上的內存節省大得多。在啟用壓縮時, NVIDIA 的加速結構內存平均比 AMD 小 3 。 26 倍。在 NVIDIA 上如此巨大的內存占用減少的原因是沒有壓縮的 AMD 使用的內存是 NVIDIA 的兩倍。壓縮還將 NVIDIA 內存平均再減少 50% ,而 AMD 傾向于只減少 75% 的內存。

poYBAGJiGVmAME5qAACz4qcP67Q449.png

圖 7 。 NVIDIA 3000 系列與 AMD 6000 系列 GPU s 的壓縮比較條形圖

子分配在這里講述了一個稍有不同的故事,其中有許多小加速結構的場景(如零日)受益匪淺。子分配帶來的平均內存節省最終為 123MB ,但標準差在 153MB 時相當大。從這些數據中,我們可以斷言子分配高度依賴于場景幾何體,并受益于數千個小三角形計數的 BLAS 幾何體。

pYYBAGJiGVqAJ_rRAACGTxYsAT4202.png

圖 8 。顯示特定場景子分配節省內存的條形圖

源代碼

NVIDIA 是一個開源的 RTX MU SDK ,以及一個集成 RTX MU 的示例應用程序。在 GitHub 上將 RTX MU 作為一個開源項目進行維護可以幫助開發人員理解邏輯流程并提供修改底層實現的訪問。 RT Bindless 示例應用程序提供了一個 RTX MU 集成的示例 Vulkan 光線跟蹤和 DXR 后端。

下面是如何構建和運行集成 RTX MU 的示例應用程序。您必須擁有以下資源:

Windows 、 Linux 或支持 DXR 或 Vulkan 光線跟蹤的操作系統

克馬克 3.12

C ++ 17

Git

首先,使用以下命令克隆存儲庫:

git clone --recursive https://github.com/NVIDIAGameWorks/donut_examples.git

接下來,打開 CMake 。對于 源代碼在哪里 ,輸入 /donut_examples 文件夾。在 /donut_examples 文件夾中創建生成文件夾。對于 在哪里構建二進制文件 ,輸入 new build 文件夾。選擇 cmake 變量 NVRHI \ u ,并將“ RTX MU ”設置為“開”,選擇“配置”,等待其完成,然后單擊“生成”。

如果要使用 Visual Studio 進行構建,請選擇 2019 和 x64 version 。在 visualstudio 中打開 donut_examples.sln 文件并生成整個項目。

在 /Examples/Bindless Ray 跟蹤下找到 rt_bindless 應用程序文件夾,選擇項目上下文(右鍵單擊)菜單,然后選擇 啟動項目 。

默認情況下,無綁定光線跟蹤在 DXR 上運行。要運行 Vulkan 版本,請在項目中添加 -vk 作為命令行參數

Summary

RTX MU 結合了壓縮和子分配技術來優化和減少任何 DXR 或 Vulkan 光線跟蹤應用程序的加速結構的內存消耗。數據表明,使用 RTX MU 可以顯著減少加速結構的內存。這使您可以向光線跟蹤場景添加更多幾何體,或將額外內存用于其他資源。

關于作者

Peter Morley 在 NVIDIA 擔任高級開發技術工程師。他的大部分工作集中在將 DXR 集成到 AAA 游戲引擎上。他以前的工作包括在 AMD 的驅動程序堆棧中實現 DXR1.0 和 1.1 。他于 2017 完成了羅德島大學的 MSC ,并幫助使用隱馬爾可夫模型研究體素空間光線跟蹤狀態估計。當他不玩游戲時,他喜歡和家人一起玩足球。

Jarvis McGee 是 NVIDIA 的高級開發技術工程師,致力于各種圖形技術的集成和優化 Vulkan 。 7 年來, Jarvis 一直在游戲行業內優化 AAA 游戲的渲染。他為 2K Games 和 Playstation 的各種游戲的發行做出了貢獻。他完成了在加利福尼亞南部加利福尼亞大學的 MSC ,并協助在美國南加州大學創新技術研究所展示數字人類的研究。在他的閑暇時間,你可以發現他在舊金山灣地區嘗試新的渲染技術和徒步旅行。

審核編輯:郭婷

聲明:本文內容及配圖由入駐作者撰寫或者入駐合作網站授權轉載。文章觀點僅代表作者本人,不代表電子發燒友網立場。文章及其配圖僅供工程師學習之用,如有內容侵權或者其他違規問題,請聯系本站處理。 舉報投訴
  • NVIDIA
    +關注

    關注

    14

    文章

    5076

    瀏覽量

    103731
  • API
    API
    +關注

    關注

    2

    文章

    1511

    瀏覽量

    62402
收藏 人收藏

    評論

    相關推薦

    技嘉科技發布GeForce RTX 5090 D 和RTX 5080系列顯卡

    旗艦散熱方案,釋放顯卡強勁性能 ?日前— 技嘉科技-主板、顯卡和硬件解決方案制造商,隆重推出搭載 NVIDIA? 革命性 Blackwell 架構的 GeForce RTX 5090
    的頭像 發表于 01-28 10:31 ?380次閱讀
    技嘉科技發布GeForce <b class='flag-5'>RTX</b> 5090 D 和<b class='flag-5'>RTX</b> 5080系列顯卡

    $1999 的 RTX 5090 來了

    “ ?NVIDIA 的 GeForce RTX 5090 將于1月30日發售,起價 $1999。雖然可能買不到,但如果可以把4090的價格打下來,那也是非常不錯的...... ? ” Geforce
    的頭像 發表于 01-13 10:03 ?582次閱讀
    $1999 的 <b class='flag-5'>RTX</b> 5090 來了

    NVIDIA推出面向RTX AI PC的AI基礎模型

    NVIDIA 今日發布能在 NVIDIA RTX AI PC 本地運行的基礎模型,為數字人、內容創作、生產力和開發提供強大助力。
    的頭像 發表于 01-08 11:01 ?245次閱讀

    技嘉于 CES 2025 首度亮相升級散熱設計與精實體積的 NVIDIA GeForce RTX 50 系列顯卡

    NVIDIA GeForce RTX? 50 系列顯示芯片設計的散熱系統,可大幅提升高負載需求的游戲表現。以 "Evolution of Ten" 為設計概念,技嘉新系列顯卡提升高達 10% 散熱效率,并減少 10% 整體體積,提供
    的頭像 發表于 01-07 17:57 ?233次閱讀

    NVIDIA和GeForce RTX GPU專為AI時代打造

    NVIDIA 和 GeForce RTX GPU 專為 AI 時代打造。
    的頭像 發表于 01-06 10:45 ?224次閱讀

    Supermicro推出直接液冷優化的NVIDIA Blackwell解決方案

    【2024年11月22日,加州圣何塞、佐治亞州亞特蘭大及超級計算大會訊】Supermicro, Inc. (NASDAQ:SMCI) 為AI、云端、存儲和5G/邊緣領域的全方位IT解決方案提供企業
    發表于 11-25 10:39 ?478次閱讀
    Supermicro推出直接液冷優化的<b class='flag-5'>NVIDIA</b> Blackwell<b class='flag-5'>解決方案</b>

    NVIDIA RTX AI套件簡化AI驅動的應用開發

    NVIDIA 于近日發布 NVIDIA RTX AI套件,這一工具和 SDK 集合能夠幫助 Windows 應用開發者定制、優化和部署適用于 Windows 應用的 AI 模型。該套件免費提供
    的頭像 發表于 09-06 14:45 ?523次閱讀

    RTX AI PC和工作站提供強大AI性能

    NVIDIA RTX 和 GeForce RTX 技術驅動的 AI PC 時代已經到來。在這一背景下,一種評估 AI 加速性能的新方法應運而生,同時還帶來了一套新術語,這套術語成了用戶選擇臺式電腦和筆記本電腦的參考標準。
    的頭像 發表于 08-23 16:57 ?719次閱讀

    Nvidia 再推出特供版顯卡 GeForce RTX 5090D

    ABSTRACT摘要NVIDIA正在準備另一款“D”版本RTX5090D,這將成為國內市場的旗艦GeForceRTX50系列顯卡。JAEALOT2024年7月4日NVIDIA正在準備另一款“D”版本
    的頭像 發表于 07-19 08:26 ?720次閱讀
    <b class='flag-5'>Nvidia</b> 再推出特供版顯卡 GeForce <b class='flag-5'>RTX</b> 5090D

    NVIDIA 通過 Holoscan 為 NVIDIA IGX 提供企業軟件支持

    Enterprise-IGX軟件現已在NVIDIA IGX平臺上正式可用,以滿足工業邊緣對實時 AI 計算日益增長的需求。它們將共同幫助醫療、工業和科學計算領域的解決方案提供商利用企業級軟件和支持來加快開發
    的頭像 發表于 06-04 10:21 ?568次閱讀

    NVIDIA推出用于支持在全新GeForce RTX AI筆記本電腦上運行的AI助手及數字人

    NVIDIA 宣布推出全新 NVIDIA RTX?技術,用于支持在全新 GeForce RTX AI 筆記本電腦上運行的 AI 助手及數字人。 ?
    的頭像 發表于 06-04 10:19 ?913次閱讀

    NVIDIA 通過 Holoscan 為 NVIDIA IGX 提供企業軟件支持,實現邊緣實時醫療、工業和科學 AI 應用

    醫療、工業和科學計算領域的解決方案提供商利用企業級軟件和支持來加快開發和部署邊緣 AI 解決方案。 ? NVIDIA AI Enterprise-IGX 是一款全新產品,其為企業的邊緣
    發表于 06-03 09:48 ?338次閱讀
      <b class='flag-5'>NVIDIA</b> 通過 Holoscan 為 <b class='flag-5'>NVIDIA</b> IGX <b class='flag-5'>提供</b>企業軟件支持,實現邊緣實時醫療、工業和科學 AI 應用

    英偉達考慮縮減RTX 5090 Founder版顯卡尺寸,配備雙槽雙風扇設計

    目前的NVIDIA GeForce RTX 4090及RTX 4080 Founders Edition GPU均為三插槽雙軸風扇設計,若此消息屬實,那么GeForce RTX 509
    的頭像 發表于 05-30 10:24 ?738次閱讀

    NVIDIA發布兩款新的專業顯卡RTX A1000、RTX A400

    NVIDIA今天發布了兩款新的專業顯卡RTX A1000、RTX A400,從編號就能看出來定位入門級,而且架構并非最新的Ada Lovelace,還是上一代的Ampere。
    的頭像 發表于 04-18 11:35 ?2545次閱讀
    <b class='flag-5'>NVIDIA</b>發布兩款新的專業顯卡<b class='flag-5'>RTX</b> A1000、<b class='flag-5'>RTX</b> A400

    NVIDIA RTX 5090痛失512位顯存!

    NVIDIA有望在今年底或明年初發布下一代RTX 50系列顯卡,大概率首發配備新一代GDDR7顯存,但是顯存位寬和之前的說法不太一樣。
    的頭像 發表于 03-11 16:02 ?954次閱讀
    <b class='flag-5'>NVIDIA</b> <b class='flag-5'>RTX</b> 5090痛失512位顯存!
    百家乐官网路单生| 百家乐官网博彩金| 百家乐怎样算大小| 百家乐官网真人游戏网上投注 | 百家乐双面数字筹码| 百家乐官网群sun811.com| 德州扑克qq| 赌百家乐到底能赌博赢| 百家乐官网网站东方果博| 德州扑克规则| 蓝盾百家乐代理打| 金榜百家乐官网的玩法技巧和规则 | 百家乐游戏| 百家乐庄9点| 反赌百家乐官网的玩法技巧和规则 | 丰都县| 世界德州扑克大赛| 天博百家乐的玩法技巧和规则| 百家乐庄闲机率| 赌场百家乐官网的玩法技巧和规则| 求购百家乐官网程序| 棋牌游戏代理| 百家乐加牌规| 扑克王百家乐的玩法技巧和规则| 百家乐连跳规律| 百家乐技巧心得| 百家乐官网是个什么样的游戏| 电玩城百家乐官网技巧| 金钱豹娱乐| 至尊国际| 新世纪娱乐城官方网站| 535棋牌游戏| 多多视频棋牌游戏| 大发888合营商| 百家乐官网路单破解软件| 百家乐官网娱乐城体育| 凯旋门百家乐官网现金网| 皇冠大全| 信阳市| 百家乐官网视频裸聊| 百家乐官网最长的缆|