Skip to content

Add --data_parallel option to benchmark for concurrent example processing - #210

Open
RobotSail wants to merge 1 commit into
v0from
claude/optimize-benchmark-performance-eOCEB
Open

Add --data_parallel option to benchmark for concurrent example processing#210
RobotSail wants to merge 1 commit into
v0from
claude/optimize-benchmark-performance-eOCEB

Conversation

@RobotSail

Copy link
Copy Markdown

The benchmark previously processed dataset examples sequentially, with each
call to scaling_alg.infer() creating a new asyncio event loop via asyncio.run().
For 500 examples x 4 budgets, this meant 2000 sequential inference calls with
2000 event loop creations - severely underutilizing GPU capacity on small models.

Refactored the benchmark loop to use a single async event loop with a semaphore-
bounded concurrency model. With --data_parallel N, N examples now run
concurrently via asyncio.gather, sharing a single event loop and directly
calling ainfer() instead of the sync wrapper. This keeps the vLLM server's
continuous batching pipeline full, which is especially impactful for fast
7-8B parameter models where per-call overhead dominates.

Default is 1 (sequential) for backward compatibility. Recommended: 8-32 for
local vLLM with small models.

Signed-off-by: Claude noreply@anthropic.com

…sing

The benchmark previously processed dataset examples sequentially, with each
call to scaling_alg.infer() creating a new asyncio event loop via asyncio.run().
For 500 examples x 4 budgets, this meant 2000 sequential inference calls with
2000 event loop creations - severely underutilizing GPU capacity on small models.

Refactored the benchmark loop to use a single async event loop with a semaphore-
bounded concurrency model. With --data_parallel N, N examples now run
concurrently via asyncio.gather, sharing a single event loop and directly
calling ainfer() instead of the sync wrapper. This keeps the vLLM server's
continuous batching pipeline full, which is especially impactful for fast
7-8B parameter models where per-call overhead dominates.

Default is 1 (sequential) for backward compatibility. Recommended: 8-32 for
local vLLM with small models.

Signed-off-by: Claude <noreply@anthropic.com>
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants