Skip to content

[Test] Baseline benchmarks for async collectors and DreamerV3 - #4312

Merged
vmoens merged 4 commits into
mainfrom
async-collector-benchmark
Sep 9, 2026
Merged

vmoens merged 4 commits into
mainfrom
async-collector-benchmark

Conversation

@vmoens

@vmoens vmoens commented Sep 9, 2026 •

Copy link
Copy Markdown
Contributor

No description provided.

vmoens and others added 3 commits September 9, 2026 09:35
…orkflow

The Ubuntu snapshot mirror answers 502/503 intermittently. When the install
failed, the step still succeeded, git was missing, and every later step of the
push-triggered run failed before any measurement. Retry the update and install
up to six times and fail the step early when git is still absent.

Co-Authored-By: Claude Fable 5.1 <noreply@anthropic.com>
async-process-slots-integrated is the cumulative curve of the process-slot
pipeline, the counterpart of async-shm-integrated: static inference batches
on GPU when available and 64 transitions per worker message once the
collector accepts transition_chunk_size. Until then it matches
async-process-slots, and every point records its configuration.

Co-Authored-By: Claude Fable 5.1 <noreply@anthropic.com>
The DreamerV3 example runs unmodified in a child process on a fixed fake
pixel workload; throughput is read from its metrics log after two warm-up
rounds, so setup, replay warm-up and shutdown stay outside the measurement.
Two train ratios separate the collection path from the learner, replay
sampling and write-back; the process inference series skips until the
example exposes collector.inference_backend. The pinned async lock, the full
suite and the PR benchmark lock gain hydra-core and omegaconf for the
example; no other series imports them.

Co-Authored-By: Claude Fable 5.1 <noreply@anthropic.com>
@pytorch-bot

pytorch-bot Bot commented Sep 9, 2026 •

Copy link
Copy Markdown

🔗 Helpful Links

🧪 See artifacts and rendered test results at hud.pytorch.org/pr/pytorch/rl/4312

Note: Links to docs will display an error until the docs builds have been completed.

This comment was automatically generated by Dr. CI and updates every 15 minutes.

@meta-cla meta-cla Bot added the CLA Signed This label is managed by the Facebook bot. Authors need to sign the CLA before a PR can be reviewed. label Sep 9, 2026
@github-actions github-actions Bot added Benchmarks rl/benchmark changes CI Has to do with CI setup (e.g. wheels & builds, tests...) labels Sep 9, 2026
@vmoens vmoens added the benchmarks/trigger Run the full benchmark suite on main right after this PR merges label Sep 9, 2026
@vmoens vmoens changed the title [Benchmark] Continuous series for the direct-transport pipeline and the DreamerV3 training loop [Test] Baseline benchmarks for async collectors and DreamerV3 Sep 9, 2026
@github-actions github-actions Bot added the Tests Incomplete or broken unit tests label Sep 9, 2026
@vmoens
vmoens merged commit db7c2e9 into main Sep 9, 2026
103 of 105 checks passed
@vmoens

vmoens commented Sep 9, 2026 •

Copy link
Copy Markdown
Contributor Author

Branch validation run with the current head (skip-upload): https://github.com/pytorch/rl/actions/runs/34331912977. Reporting validation, CPU and GPU benchmark jobs and the summary step all passed; 31 series per repeat on GPU, three fresh-process repeats.

New series on GPU (median of the three run medians, run range, execution recorded in the JSON):

Series frames/s Run range Execution
test_async_collection_pixels[async-process-slots-integrated-uniform] 991.7 989.5-998.5 graph; 1 envs/worker; process acting
test_async_collection_pixels[async-process-slots-integrated-slow-reset] 995.2 991.9-996.1 graph; 1 envs/worker; process acting
test_dreamer_v3_async_training[thread-ratio2] 85.2 84.8-85.6 eager learner on cuda:0; thread inference; train ratio 2; 8 envs; inference batch <= 1; 0.33 learner updates/s
test_dreamer_v3_async_training[thread-ratio16] 53.1 53.1-53.7 same with train ratio 16; 1.66 learner updates/s

async-process-slots-uniform (eager) measured 995.9 frames/s in the same run, so the integrated series matches the fixed one on this revision as intended. Run-to-run spread of the new series is about 1 percent. The process DreamerV3 series skipped as designed (no collector.inference_backend on this revision).

Cost: each pytest repeat took 17.3 minutes on the GPU runner; the two DreamerV3 series account for 105 s (ratio2) and 156 s (ratio16) of that, about 13 minutes per job over the three repeats. Startup and shutdown of the example are about 20 s per test; the rest is the seven 1,024-step rounds. With inference limited to one request per batch, the ratio2 series moves about 85 frames/s across 8 environments, that is roughly 90 ms per environment step, so its level is set by per-request policy latency rather than by the batched pipeline.

@vmoens
vmoens deleted the async-collector-benchmark branch September 22, 2026 14:24
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

benchmarks/trigger Run the full benchmark suite on main right after this PR merges Benchmarks rl/benchmark changes CI Has to do with CI setup (e.g. wheels & builds, tests...) CLA Signed This label is managed by the Facebook bot. Authors need to sign the CLA before a PR can be reviewed. Tests Incomplete or broken unit tests

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant