You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
[envpool] stabilize manylinux release wheel builds (#339)
###### Why/Context/Summary
- Fix the new `manylinux_2_28_x86_64` release path so the `Release PyPI
Wheel` matrix can build wheels for Python `3.11`, `3.12`, and `3.13`
again.
- The failure surface has moved several times while exercising the real
release lane, so this PR now carries the minimal release-only fixes
needed to keep the matrix moving forward:
- remove `typed-ast` from `make auditwheel-install` for CPython `3.13`
- install the Perl `Compress::Zlib` dependency needed by NASM on
manylinux
- correct NASM feature detection for `stdbit.h` and `strlcpy`
- provide a CPU-only CUDA stub for release builds that do not have a
real CUDA toolkit
- force SDL2/OpenCV CMake installs to use `lib/` instead of `lib64/` so
`rules_foreign_cc` can find the expected static archives
- Keep the changes scoped to the release lane and release-time
third-party build glue; no runtime env logic changes are intended here.
###### Test plan
- local: `make auditwheel-install`
- GitHub Actions: watch PR `Release PyPI Wheel` matrix on every commit
(`pull_request` trigger enabled in this branch)
- current loop: keep fixing deterministic release blockers until the
full `3.11/3.12/3.13` wheel matrix succeeds, then validate the generated
wheels on `dev`
Copy file name to clipboardExpand all lines: README.md
+13-1Lines changed: 13 additions & 1 deletion
Display the source diff
Display the rich diff
Original file line number
Diff line number
Diff line change
@@ -72,7 +72,19 @@ The example scripts are under [examples/](https://github.com/sail-sg/envpool/tre
72
72
73
73
## Benchmark Results
74
74
75
-
We perform our benchmarks with ALE Atari environment `PongNoFrameskip-v4` (with environment wrappers from [OpenAI Baselines](https://github.com/openai/baselines/blob/master/baselines/common/atari_wrappers.py)) and Mujoco environment `Ant-v3` on different hardware setups, including a TPUv3-8 virtual machine (VM) of 96 CPU cores and 2 NUMA nodes, and an NVIDIA DGX-A100 of 256 CPU cores with 8 NUMA nodes. Baselines include 1) naive Python for-loop; 2) the most popular RL environment parallelization execution by Python subprocess, e.g., [gym.vector_env](https://github.com/openai/gym/blob/master/gym/vector/vector_env.py); 3) to our knowledge, the fastest RL environment executor [Sample Factory](https://github.com/alex-petrenko/sample-factory) before EnvPool.
75
+
The historical benchmark tables below were produced with ALE Atari environment
76
+
`PongNoFrameskip-v4` (with environment wrappers from [OpenAI
3) to our knowledge, the fastest RL environment executor [Sample
87
+
Factory](https://github.com/alex-petrenko/sample-factory) before EnvPool.
76
88
77
89
We report EnvPool performance with sync mode, async mode, and NUMA + async mode, compared with the baselines on different number of workers (i.e., number of CPU cores). As we can see from the results, EnvPool achieves significant improvements over the baselines on all settings. On the high-end setup, EnvPool achieves 1 Million frames per second with Atari and 3 Million frames per second with Mujoco on 256 CPU cores, which is 14.9x / 19.6x of the `gym.vector_env` baseline. On a typical PC setup with 12 CPU cores, EnvPool's throughput is 3.1x / 2.9x of `gym.vector_env`.
0 commit comments