Repolode
sail-sg

sail-sg/envpool

スレッドプールで多数のGym形式環境を並列実行する、強化学習向けのC++バッチ環境プール。

スター
1,533
フォーク
147
未解決の Issue
16
最終コミット
16 日前

これは何?

EnvPoolは、強化学習環境向けの並列実行エンジンです。C++のスレッドプールで環境群を管理し、pybind11を通じてPythonに公開するため、1回の呼び出しで多数の環境をまとめてstepできます。Gymnasiumとdm_env形式のAPIに対応し、同期・非同期モードのどちらでも、デフォルトでバッチ処理による環境とのやり取りが可能です。

Atari、MuJoCo、DeepMind Control Suite、Box2D、ViZDoom、Procgen、Minigrid、MPE2、MetaWorld、PGX、Jumanjiなど、幅広い環境ファミリーに対応しています。C++の開発者向けインターフェースを使って環境を追加することもできます。バッチ化したRGB配列へのレンダリングと、JAX jitによるXLAサポートも利用できます。Linux、macOS、Windows向けのビルド済みwheelがPyPIで公開されています。

リポジトリ内のベンチマークでは、CPUコア数が12〜256のマシンで、Pythonのsubprocessベースのベクトル環境やforループとスループットを比較しています。

主な機能

  • 01C++スレッドプールとpybind11バインディングによる、環境のバッチstep。
  • 02Gymnasiumおよびdm_envのAPIに対応。
  • 03単一プレイヤーと複数プレイヤーの環境を含む、同期・非同期実行に対応。
  • 04Atari、MuJoCo、DeepMind Control、Procgenなど、多数の環境ファミリーを網羅。
  • 05バッチ化したrgb_arrayレンダリングと、JAX jitによるXLAサポート。

ユースケース

  • マルチコアマシンでの強化学習トレーニングにおけるデータ収集の高速化。
  • Stable-Baselines3、Tianshou、CleanRLなどのライブラリでAtariやMuJoCoの実験を実行。
  • 高スループットなC++実装で独自環境を追加。

クイックスタート

  1. 1

    PyPI から EnvPool をインストールします

    pip install envpool
  2. 2

    Python コンソールを開き、envpool をインポートしてインストールが正常に完了したことを確認します

使う前に知っておきたいこと

  • Linux で MuJoCo のレンダリングを行うには、システムの EGL/OpenGL ランタイムが必要です。Ubuntu では、libegl1、libopengl0、libgl1-mesa-dri などが該当します。
  • Linux で Procgen 環境を使用するには、別途システムの Qt 5 ランタイムをインストールする必要があります。ソースからビルドする場合も Qt 5 が必要です。

収録されている特集

トピック

#reinforcement-learning#parallel-processing#gym#simulation#cpp#python-bindings#vectorized-environment#atari-games#box2d#cpp17

よくある質問

envpool とは?
スレッドプールで多数のGym形式環境を並列実行する、強化学習向けのC++バッチ環境プール。 EnvPoolは、強化学習環境向けの並列実行エンジンです。C++のスレッドプールで環境群を管理し、pybind11を通じてPythonに公開するため、1回の呼び出しで多数の環境をまとめてstepできます。Gymnasiumとdm_env形式のAPIに対応し、同期・非同期モードのどちらでも、デフォルトでバッチ処理による環境とのやり取りが可能です。
envpool は無料で使えますか?ライセンスは?
envpool は Apache-2.0 ライセンスのオープンソースです。商用製品で使う前にライセンス条件を確認してください。
envpool は今もメンテナンスされていますか?
活発にメンテナンス中。envpool の最終コミットは 2026年10月21日 です。
envpool は何に使えますか?
マルチコアマシンでの強化学習トレーニングにおけるデータ収集の高速化。 Stable-Baselines3、Tianshou、CleanRLなどのライブラリでAtariやMuJoCoの実験を実行。 高スループットなC++実装で独自環境を追加。
envpool のインストール方法は?
PyPI から EnvPool をインストールします: pip install envpool Python コンソールを開き、envpool をインポートしてインストールが正常に完了したことを確認します
envpool はどこで入手できますか?
ソースコードとインストール手順は GitHub にあります:https://github.com/sail-sg/envpool

概要はプロジェクトの README をもとに AI が生成しています。GitHub の数値は毎日更新されます。

関連プロジェクト