Isaac Gym: High Performance GPU-Based Physics Simulation For Robot Learning
作者: Viktor Makoviychuk, Lukasz Wawrzyniak, Yunrong Guo, Michelle Lu, Kier Storey, Miles Macklin, David Hoeller, Nikita Rudin, Arthur Allshire, Ankur Handa, Gavriel State · arXiv 2021
授權條款
- 開放取用
- 論文: CC BY 4.0
以下內容皆依據論文全文,依其 CC BY 4.0 授權條款使用;圖表已標示作者。
一句話摘要
Isaac Gym 透過 PyTorch 張量 API,在一張 GPU 上執行 PhysX 模擬、觀測、獎勵與 PPO 訓練;Shadow Hand 的立方體重新定向從 CPU 叢集上的 30 h 縮短到不到 1 h。
為何重要
過去需要 CPU 叢集的任務,可以在單張 GPU 上以幾分鐘到幾小時訓練完成,縮短了運動與靈巧操作研究的迭代週期。作者也把以這種方式訓練的策略轉移到崎嶇地形上的真實 ANYmal,以及一台遠端的真實 TriFinger,顯示模擬的接觸物理能支援從模擬到真實的工作。
問題
機器人 RL 通常在 CPU 上模擬物理、在 GPU 上訓練網路,因此每一步資料都要在裝置之間搬移,而模擬速度限制了訓練。例如,OpenAI 的 Shadow Hand 立方體研究使用了 384 台機器、6144 個 CPU 核心加上 8 張 V100 GPU,耗時 30 小時,其後續的魔術方塊(Rubik's Cube)研究則使用了將近 30,000 個 CPU 核心。
提出的方法
Isaac Gym 在 GPU 上執行 NVIDIA PhysX,並加入兩項功能:不再於每一步之後把模擬結果取回 CPU,以及以直接的 GPU API 在 GPU 緩衝區中讀取狀態並施加控制。這些緩衝區不經複製就被包裝成 PyTorch 張量,因此數千個平行環境的步進、觀測、獎勵計算與訓練(使用 rl_games 的 PPO 實作)都在一張 GPU 上完成,機器人則從 URDF 或 MJCF 載入。
關鍵見解
- 把物理狀態、觀測與獎勵計算以及策略訓練都留在 GPU 上,就能免除限制傳統 RL 流程的 CPU-GPU 複製。
- 更多的平行環境能縮短訓練時間,直到每個環境的時域變得太短為止:在時域 32 下,Humanoid 超過 4096 個環境就沒有收益,還會學到較差的步態,但時域加倍後,它在 8192 與 16384 個環境下都能學會。
- 模擬吞吐量隨模型複雜度下降:在一張 A100 上,Ant 最高約每秒 700K 個環境步,Humanoid 約 200K,Shadow Hand 約 150K。
- 非對稱 actor-critic(critic 取得模擬器的特權狀態,策略只取得真實機器人上可用的觀測)用於 Shadow Hand OpenAI 與 TriFinger 的設定,以便從模擬轉移到真實。
- 可活動的手腕有助於重新定向:Allegro Hand 手腕固定、手指稍長,儘管自由度較少,連續成功次數仍少於 Shadow Hand。
主要結果
- 在單張 A100 上:Ant 在 20 s 內獎勵超過 3000,Humanoid 在不到 4 min 內學會奔跑(獎勵 5000),ANYmal 在不到 2 min 內學會跟隨速度目標,Franka 立方體堆疊在不到 25 min 內收斂。
- 使用 OpenAI 觀測與領域隨機化的 Shadow Hand:不到 1 h 達到超過 20 次連續成功(前饋網路),略少於 6 h 達到 37 次(LSTM),相較之下 OpenAI 在 6144 個 CPU 核心加 8 張 V100 GPU 上分別需要 30 h 與約 17 h;最佳的 LSTM 隨機種子在 2.5 h 內達到 37 次。
- Shadow Hand Standard(無隨機化):不到 35 min 達到 20 次連續成功;把環境數從 256 提高到 16384,訓練時間從 5×10⁴ s(約 14 h)縮短到 3×10³ s(約 1 h)。
- AMP 人形角色動畫:以 4096 個環境在約 6 min 內取得約 3900 萬個樣本,相較於 PyBullet 在 16 個 CPU 核心上約需 30 h,報告為 300× 的提升。
- 從模擬到真實:ANYmal 崎嶇地形策略在一張 RTX A6000 上以不到 20 min 訓練完成並轉移到真實機器人;真實的 TriFinger 達到 55% 的平均成功率,轉移以遠端方式進行。
- 相互矛盾的加速數字:v1 摘要稱相較於以 CPU 模擬器訓練提升 1-2 個數量級,而 v1 的引言與 Fig. 2 稱 100×-1000×;目前的 arXiv 摘要則稱 2-3 個數量級。
限制
- Shadow Hand 實驗只在模擬中進行;不同於 OpenAI 的研究,並未嘗試把手的策略從模擬轉移到真實,且隨機化省略了動作延遲與馬達背隙。
- Shadow Hand Standard 使用的觀測在真實機器人上可能無法取得,因此作者表示它不適合從模擬轉移到真實。
- Ingenuity 是簡化的模型:力直接施加在兩個旋翼上,而非模擬空氣動力學。
- 使用 FleX 引擎時只能用到有限的張量 API 功能,場景設定在 CPU 上執行,而隨附的範例使用 PyTorch,整合 TensorFlow 需要進一步客製化。
- 一旦時域變短,增加環境就不再有幫助:Ant 從 8192 增加到 16384 個環境沒有收益,而 Humanoid 在時域 32 下超過 4096 個環境後訓練變慢,並學到次佳的步態。
對領域的影響
1469 次引用。論文以從 NVIDIA 下載(developer.nvidia.com/isaac-gym)的形式釋出 Isaac Gym,其中包含一個基本的 PPO 實作與一套 RL 任務系統,並在專案網站上提供結果與影片。
摘要
Isaac Gym 提供一個高效能的學習平台,可直接在 GPU 上為各式各樣的機器人任務訓練策略。物理模擬與神經網路策略訓練都位於 GPU 上,透過把資料從物理緩衝區直接傳給 PyTorch 張量來溝通,完全不經過任何 CPU 瓶頸。這讓複雜機器人任務在單張 GPU 上的訓練時間極快,相較於使用以 CPU 為基礎的模擬器、並以 GPU 執行神經網路的傳統 RL 訓練,提升了 2-3 個數量級。我們在 https://sites.google.com/view/isaacgym-nvidia 提供結果與影片,isaac gym 可從 https://developer.nvidia.com/isaac-gym 下載。
連結
- arXiv 2108.10470: https://arxiv.org/abs/2108.10470
- DOI https://doi.org/10.48550/arxiv.2108.10470: https://doi.org/https://doi.org/10.48550/arxiv.2108.10470
- PDF: https://arxiv.org/pdf/2108.10470v1
- 專案頁面: https://sites.google.com/view/isaacgym-nvidia