Goto

Collaborating Authors

 envpool


EnvPool: A Highly Parallel Reinforcement Learning Environment Execution Engine

Neural Information Processing Systems

There has been significant progress in developing reinforcement learning (RL) training systems. Past works such as IMPALA, Apex, Seed RL, Sample Factory, and others, aim to improve the system's overall throughput. In this paper, we aim to address a common bottleneck in the RL training system, i.e., parallel environment execution, which is often the slowest part of the whole system but receives little attention. With a curated design for paralleling RL environments, we have improved the RL environment simulation speed across different hardware setups, ranging from a laptop and a modest workstation, to a high-end machine such as NVIDIA DGX-A100. On a high-end machine, EnvPool achieves one million frames per second for the environment execution on Atari environments and three million frames per second on MuJoCo environments. When running EnvPool on a laptop, the speed is 2.8x that of the Python subprocess. Moreover, great compatibility with existing RL training libraries has been demonstrated in the open-sourced community, including CleanRL, rl_games, DeepMind Acme, etc. Finally, EnvPool allows researchers to iterate their ideas at a much faster pace and has great potential to become the de facto RL environment execution engine. Example runs show that it only takes five minutes to train agents to play Atari Pong and MuJoCo Ant on a laptop. EnvPool is open-sourced at https://github.com/sail-sg/envpool.


8caaf08e49ddbad6694fae067442ee21-Supplemental-Datasets_and_Benchmarks.pdf

Neural Information Processing Systems

Both typical step API and more low-level APIs recv, send are provided. And the workstation has 32 AMD CPU cores, with AMD Ryzen 9 5950X 16-Core Processor. EnvPool on these two configurations can demonstrate its effectiveness with small-scale experiments. The ActionBufferQueue can thus be tailored for our specific case for optimal performance. We use two atomic counters to keep track of the head and tail of the queue.



8caaf08e49ddbad6694fae067442ee21-Supplemental-Datasets_and_Benchmarks.pdf

Neural Information Processing Systems

Both typical step API and more low-level APIs recv, send are provided. And the workstation has 32 AMD CPU cores, with AMD Ryzen 9 5950X 16-Core Processor. EnvPool on these two configurations can demonstrate its effectiveness with small-scale experiments. The ActionBufferQueue can thus be tailored for our specific case for optimal performance. We use two atomic counters to keep track of the head and tail of the queue.



EnvPool: A Highly Parallel Reinforcement Learning Environment Execution Engine

Neural Information Processing Systems

There has been significant progress in developing reinforcement learning (RL) training systems. Past works such as IMPALA, Apex, Seed RL, Sample Factory, and others, aim to improve the system's overall throughput. In this paper, we aim to address a common bottleneck in the RL training system, i.e., parallel environment execution, which is often the slowest part of the whole system but receives little attention. With a curated design for paralleling RL environments, we have improved the RL environment simulation speed across different hardware setups, ranging from a laptop and a modest workstation, to a high-end machine such as NVIDIA DGX-A100. On a high-end machine, EnvPool achieves one million frames per second for the environment execution on Atari environments and three million frames per second on MuJoCo environments.


RLtools: A Fast, Portable Deep Reinforcement Learning Library for Continuous Control

Eschmann, Jonas, Albani, Dario, Loianno, Giuseppe

arXiv.org Artificial Intelligence

Deep Reinforcement Learning (RL) has been demonstrated to yield capable agents and control policies in several domains but is commonly plagued by prohibitively long training times. Additionally, in the case of continuous control problems, the applicability of learned policies on real-world embedded devices is limited due to the lack of real-time guarantees and portability of existing deep learning libraries. To address these challenges, we present RLtools, a dependency-free, header-only, pure C++ library for deep supervised and reinforcement learning. Leveraging the template meta-programming capabilities of recent C++ standards, we provide composable components that can be tightly integrated by the compiler. Its novel architecture allows RLtools to be used seamlessly on a heterogeneous set of platforms, from HPC clusters over workstations and laptops to smartphones, smartwatches, and microcontrollers. Specifically, due to the tight integration of the RL algorithms with simulation environments, RLtools can solve popular RL problems like the Pendulum-v1 swing-up about 7 to 15 times faster in terms of wall-clock training time compared to other popular RL frameworks when using TD3. We also provide a low-overhead and parallelized interface to the MuJoCo simulator, showing that our PPO implementation achieves state of the art returns in the Ant-v4 environment while being 25%-30% faster in terms of wall-clock training time. Finally, we also benchmark the policy inference on a diverse set of microcontrollers and show that in most cases our optimized inference implementation is much faster than even the manufacturer's DSP libraries. To the best of our knowledge, RLtools enables the first-ever demonstration of training a deep RL algorithm directly on a microcontroller, giving rise to the field of TinyRL. The source code is available through our project page at https://rl.tools.


EnvPool: A Highly Parallel Reinforcement Learning Environment Execution Engine

Weng, Jiayi, Lin, Min, Huang, Shengyi, Liu, Bo, Makoviichuk, Denys, Makoviychuk, Viktor, Liu, Zichen, Song, Yufan, Luo, Ting, Jiang, Yukun, Xu, Zhongwen, Yan, Shuicheng

arXiv.org Artificial Intelligence

There has been significant progress in developing reinforcement learning (RL) training systems. Past works such as IMPALA, Apex, Seed RL, Sample Factory, and others, aim to improve the system's overall throughput. In this paper, we aim to address a common bottleneck in the RL training system, i.e., parallel environment execution, which is often the slowest part of the whole system but receives little attention. With a curated design for paralleling RL environments, we have improved the RL environment simulation speed across different hardware setups, ranging from a laptop and a modest workstation, to a high-end machine such as NVIDIA DGX-A100. On a high-end machine, EnvPool achieves one million frames per second for the environment execution on Atari environments and three million frames per second on MuJoCo environments. When running EnvPool on a laptop, the speed is 2.8x that of the Python subprocess. Moreover, great compatibility with existing RL training libraries has been demonstrated in the open-sourced community, including CleanRL, rl_games, DeepMind Acme, etc. Finally, EnvPool allows researchers to iterate their ideas at a much faster pace and has great potential to become the de facto RL environment execution engine. Example runs show that it only takes five minutes to train agents to play Atari Pong and MuJoCo Ant on a laptop. EnvPool is open-sourced at https://github.com/sail-sg/envpool.