Repolode
sail-sg

sail-sg/envpool

스레드 풀로 Gym 스타일 환경을 다수 병렬 실행하는 강화 학습용 C++ 배치 환경 풀입니다.

스타
1,533
포크
147
열린 이슈
16
마지막 커밋
16일 전

어떤 프로젝트인가요?

EnvPool은 강화 학습 환경을 병렬 실행하는 엔진입니다. C++ 스레드 풀로 환경 풀을 관리하고 pybind11을 통해 Python에 제공하므로, 한 번의 호출로 여러 환경을 동시에 스텝할 수 있습니다. 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에 게시되어 있습니다.

저장소의 벤치마크는 12~256개의 CPU 코어를 갖춘 시스템에서 처리량을 Python subprocess 기반 벡터 환경 및 for 루프와 비교합니다.

핵심 기능

  • 01pybind11 바인딩을 통해 C++ 스레드 풀에서 환경을 배치 단위로 스텝합니다.
  • 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을 import하여 설치가 정상적으로 완료되었는지 확인합니다

사용 전 알아둘 점

  • 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에 제공하므로, 한 번의 호출로 여러 환경을 동시에 스텝할 수 있습니다. 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을 import하여 설치가 정상적으로 완료되었는지 확인합니다
envpool은(는) 어디서 받을 수 있나요?
소스 코드와 설치 방법은 GitHub에 있습니다: https://github.com/sail-sg/envpool

요약은 프로젝트 README를 바탕으로 AI가 작성했습니다. GitHub 통계는 매일 갱신됩니다.

관련 프로젝트