[Perf] Qwen-Image Nightly Performance CI Improvement (#2111)
Signed-off-by: Didan Deng <33117903+wtomin@users.noreply.github.com>
This commit is contained in:
1 parent
5c14757ef0
commit
c39225724d
7 files changed
+477
-201
No files matched your search
@@ -253,11 +253,11 @@ steps:
|
||||
if: build.env("NIGHTLY") == "1"
|
||||
commands:
|
||||
- export VLLM_WORKER_MULTIPROC_METHOD=spawn
|
||||
- export DIFFUSION_BENCHMARK_DIR=tests/perf/results
|
||||
- export DIFFUSION_BENCHMARK_DIR=tests/dfx/perf/results
|
||||
- export CACHE_DIT_VERSION=1.3.0
|
||||
- pytest -s -v tests/perf/scripts/run_diffusion_benchmark.py --config-file tests/perf/tests/test_qwen_image_vllm_omni.json
|
||||
- buildkite-agent artifact upload "tests/perf/results/benchmark_results_*.json"
|
||||
- buildkite-agent artifact upload "tests/perf/results/logs/*.log"
|
||||
- pytest -s -v tests/dfx/perf/scripts/run_diffusion_benchmark.py --config-file tests/dfx/perf/tests/test_qwen_image_vllm_omni.json
|
||||
- buildkite-agent artifact upload "tests/dfx/perf/results/benchmark_results_*.json"
|
||||
- buildkite-agent artifact upload "tests/dfx/perf/results/logs/*.log"
|
||||
agents:
|
||||
queue: "mithril-h100-pool"
|
||||
plugins:
|
||||
|
||||
+6
-9
@@ -8,8 +8,8 @@ Supports two server backends:
|
||||
benchmarks with diffusion_benchmark_serving.py --backend sglang
|
||||
|
||||
A config JSON file is REQUIRED via --config-file:
|
||||
pytest run_diffusion_benchmark.py --config-file tests/perf/tests/test_qwen_image_vllm_omni.json
|
||||
pytest run_diffusion_benchmark.py --config-file tests/perf/tests/test_qwen_image_sglang_diffusion.json
|
||||
pytest run_diffusion_benchmark.py --config-file tests/dfx/perf/tests/test_qwen_image_vllm_omni.json
|
||||
pytest run_diffusion_benchmark.py --config-file tests/dfx/perf/tests/test_qwen_image_sglang_diffusion.json
|
||||
|
||||
JSON config entries are distinguished by a "server_type" field ("vllm-omni" or "sglang").
|
||||
sglang entries support two additional fields under server_params:
|
||||
@@ -50,7 +50,7 @@ _DEFAULT_RESULT_DIR = Path(__file__).parent.parent / "results"
|
||||
BENCHMARK_RESULT_DIR = Path(os.environ.get("DIFFUSION_BENCHMARK_DIR", str(_DEFAULT_RESULT_DIR)))
|
||||
|
||||
BENCHMARK_SCRIPT = str(
|
||||
Path(__file__).parent.parent.parent.parent / "benchmarks" / "diffusion" / "diffusion_benchmark_serving.py"
|
||||
Path(__file__).parent.parent.parent.parent.parent / "benchmarks" / "diffusion" / "diffusion_benchmark_serving.py"
|
||||
)
|
||||
|
||||
# Single aggregated result file for the entire benchmark session.
|
||||
@@ -76,11 +76,8 @@ def _get_config_file_from_argv() -> str | None:
|
||||
|
||||
CONFIG_FILE_PATH = _get_config_file_from_argv()
|
||||
if CONFIG_FILE_PATH is None:
|
||||
raise ValueError(
|
||||
"--config-file is required. Pass the path to a benchmark config JSON, e.g.:\n"
|
||||
" pytest run_diffusion_benchmark.py "
|
||||
"--config-file tests/perf/tests/test_qwen_image_vllm_omni.json"
|
||||
)
|
||||
print("No config file provided, using default config file: tests/dfx/perf/tests/test_qwen_image_vllm_omni.json")
|
||||
CONFIG_FILE_PATH = "tests/dfx/perf/tests/test_qwen_image_vllm_omni.json"
|
||||
|
||||
# ---------------------------------------------------------------------------
|
||||
# Config loading
|
||||
@@ -149,7 +146,7 @@ def pytest_addoption(parser: pytest.Parser) -> None:
|
||||
default=None,
|
||||
help=(
|
||||
"Path to the benchmark config JSON file (required). "
|
||||
"Example: --config-file tests/perf/tests/test_qwen_image_vllm_omni.json"
|
||||
"Example: --config-file tests/dfx/perf/tests/test_qwen_image_vllm_omni.json"
|
||||
),
|
||||
)
|
||||
|
||||
@@ -0,0 +1,241 @@
|
||||
[
|
||||
{
|
||||
"test_name": "test_sglang_qwen_image_single_device",
|
||||
"description": "sglang: single-device baseline (no parallelism)",
|
||||
"server_type": "sglang",
|
||||
"server_params": {
|
||||
"model": "Qwen/Qwen-Image",
|
||||
"serve_args": {
|
||||
"num-gpus": 1,
|
||||
"dit-cpu-offload": false,
|
||||
"text-encoder-cpu-offload": false,
|
||||
"vae-cpu-offload": false
|
||||
}
|
||||
},
|
||||
"benchmark_params": [
|
||||
{
|
||||
"name": "512x512_steps20",
|
||||
"dataset": "random",
|
||||
"task": "t2i",
|
||||
"width": 512,
|
||||
"height": 512,
|
||||
"num-inference-steps": 20,
|
||||
"num-prompts": 10,
|
||||
"max-concurrency": 1,
|
||||
"enable-negative-prompt": true,
|
||||
"baseline": {
|
||||
"throughput_qps": 0.001,
|
||||
"latency_p99": 1000.0,
|
||||
"peak_memory_mb_max": 400000,
|
||||
"peak_memory_mb_mean": 400000
|
||||
}
|
||||
},
|
||||
{
|
||||
"name": "1536x1536_steps35",
|
||||
"dataset": "random",
|
||||
"task": "t2i",
|
||||
"width": 1536,
|
||||
"height": 1536,
|
||||
"num-inference-steps": 35,
|
||||
"num-prompts": 10,
|
||||
"max-concurrency": 1,
|
||||
"enable-negative-prompt": true,
|
||||
"baseline": {
|
||||
"throughput_qps": 0.001,
|
||||
"latency_p99": 1000.0,
|
||||
"peak_memory_mb_max": 400000,
|
||||
"peak_memory_mb_mean": 400000
|
||||
}
|
||||
},
|
||||
{
|
||||
"name": "mixed_resolution",
|
||||
"dataset": "random",
|
||||
"task": "t2i",
|
||||
"num-inference-steps": 20,
|
||||
"num-prompts": 10,
|
||||
"max-concurrency": 1,
|
||||
"enable-negative-prompt": true,
|
||||
"random-request-config": [
|
||||
{"width": 512, "height": 512, "num_inference_steps": 20, "weight": 0.15},
|
||||
{"width": 768, "height": 768, "num_inference_steps": 20, "weight": 0.25},
|
||||
{"width": 1024, "height": 1024, "num_inference_steps": 25, "weight": 0.45},
|
||||
{"width": 1536, "height": 1536, "num_inference_steps": 35, "weight": 0.15}
|
||||
],
|
||||
"baseline": {
|
||||
"throughput_qps": 0.001,
|
||||
"latency_p99": 1000.0,
|
||||
"peak_memory_mb_max": 400000,
|
||||
"peak_memory_mb_mean": 400000
|
||||
}
|
||||
}
|
||||
]
|
||||
},
|
||||
|
||||
{
|
||||
"test_name": "test_sglang_qwen_image_ulysses2_cfg2_vae_patch4",
|
||||
"description": "sglang: USP=2 + CFG-parallel=2 + VAE patch parallel via --use-parallel-tiling",
|
||||
"server_type": "sglang",
|
||||
"server_params": {
|
||||
"model": "Qwen/Qwen-Image",
|
||||
"serve_args": {
|
||||
"num-gpus": 4,
|
||||
"sp-degree": 2,
|
||||
"ulysses-degree": 2,
|
||||
"enable-cfg-parallel": true,
|
||||
"use-parallel-tiling": true,
|
||||
"dit-cpu-offload": false,
|
||||
"text-encoder-cpu-offload": false,
|
||||
"vae-cpu-offload": false
|
||||
}
|
||||
},
|
||||
"benchmark_params": [
|
||||
{
|
||||
"name": "512x512_steps20",
|
||||
"dataset": "random",
|
||||
"task": "t2i",
|
||||
"width": 512,
|
||||
"height": 512,
|
||||
"num-inference-steps": 20,
|
||||
"num-prompts": 10,
|
||||
"max-concurrency": 1,
|
||||
"enable-negative-prompt": true,
|
||||
"baseline": {
|
||||
"throughput_qps": 0.001,
|
||||
"latency_p99": 1000.0,
|
||||
"peak_memory_mb_max": 400000,
|
||||
"peak_memory_mb_mean": 400000
|
||||
}
|
||||
},
|
||||
{
|
||||
"name": "1536x1536_steps35",
|
||||
"dataset": "random",
|
||||
"task": "t2i",
|
||||
"width": 1536,
|
||||
"height": 1536,
|
||||
"num-inference-steps": 35,
|
||||
"num-prompts": 10,
|
||||
"max-concurrency": 1,
|
||||
"enable-negative-prompt": true,
|
||||
"baseline": {
|
||||
"throughput_qps": 0.001,
|
||||
"latency_p99": 1000.0,
|
||||
"peak_memory_mb_max": 400000,
|
||||
"peak_memory_mb_mean": 400000
|
||||
}
|
||||
},
|
||||
{
|
||||
"name": "mixed_resolution",
|
||||
"dataset": "random",
|
||||
"task": "t2i",
|
||||
"num-inference-steps": 20,
|
||||
"num-prompts": 10,
|
||||
"max-concurrency": 1,
|
||||
"enable-negative-prompt": true,
|
||||
"random-request-config": [
|
||||
{"width": 512, "height": 512, "num_inference_steps": 20, "weight": 0.15},
|
||||
{"width": 768, "height": 768, "num_inference_steps": 20, "weight": 0.25},
|
||||
{"width": 1024, "height": 1024, "num_inference_steps": 25, "weight": 0.45},
|
||||
{"width": 1536, "height": 1536, "num_inference_steps": 35, "weight": 0.15}
|
||||
],
|
||||
"baseline": {
|
||||
"throughput_qps": 0.001,
|
||||
"latency_p99": 1000.0,
|
||||
"peak_memory_mb_max": 400000,
|
||||
"peak_memory_mb_mean": 400000
|
||||
}
|
||||
}
|
||||
]
|
||||
},
|
||||
|
||||
{
|
||||
"test_name": "test_sglang_qwen_image_ulysses2_cfg2_cache_dit",
|
||||
"description": "sglang: USP=2 + CFG-parallel=2 + Cache-DiT via YAML config (--cache-dit-config)",
|
||||
"server_type": "sglang",
|
||||
"server_params": {
|
||||
"model": "Qwen/Qwen-Image",
|
||||
"cache_dit_config": {
|
||||
"cache_config": {
|
||||
"Fn_compute_blocks": 1,
|
||||
"Bn_compute_blocks": 0,
|
||||
"max_warmup_steps": 4,
|
||||
"residual_diff_threshold": 0.24,
|
||||
"max_continuous_cached_steps": 3,
|
||||
"enable_taylorseer": false,
|
||||
"taylorseer_order": 1,
|
||||
"scm_steps_mask_policy": "none",
|
||||
"scm_steps_policy": "dynamic"
|
||||
},
|
||||
"parallelism_config": {
|
||||
"ulysses_size": 2,
|
||||
"attention_backend": "native"
|
||||
}
|
||||
},
|
||||
"serve_args": {
|
||||
"num-gpus": 4,
|
||||
"sp-degree": 2,
|
||||
"ulysses-degree": 2,
|
||||
"enable-cfg-parallel": true,
|
||||
"dit-cpu-offload": false,
|
||||
"text-encoder-cpu-offload": false,
|
||||
"vae-cpu-offload": false
|
||||
}
|
||||
},
|
||||
"benchmark_params": [
|
||||
{
|
||||
"name": "512x512_steps20",
|
||||
"dataset": "random",
|
||||
"task": "t2i",
|
||||
"width": 512,
|
||||
"height": 512,
|
||||
"num-inference-steps": 20,
|
||||
"num-prompts": 10,
|
||||
"max-concurrency": 1,
|
||||
"enable-negative-prompt": true,
|
||||
"baseline": {
|
||||
"throughput_qps": 0.001,
|
||||
"latency_p99": 1000.0,
|
||||
"peak_memory_mb_max": 400000,
|
||||
"peak_memory_mb_mean": 400000
|
||||
}
|
||||
},
|
||||
{
|
||||
"name": "1536x1536_steps35",
|
||||
"dataset": "random",
|
||||
"task": "t2i",
|
||||
"width": 1536,
|
||||
"height": 1536,
|
||||
"num-inference-steps": 35,
|
||||
"num-prompts": 10,
|
||||
"max-concurrency": 1,
|
||||
"enable-negative-prompt": true,
|
||||
"baseline": {
|
||||
"throughput_qps": 0.001,
|
||||
"latency_p99": 1000.0,
|
||||
"peak_memory_mb_max": 400000,
|
||||
"peak_memory_mb_mean": 400000
|
||||
}
|
||||
},
|
||||
{
|
||||
"name": "mixed_resolution",
|
||||
"dataset": "random",
|
||||
"task": "t2i",
|
||||
"num-inference-steps": 20,
|
||||
"num-prompts": 10,
|
||||
"max-concurrency": 1,
|
||||
"enable-negative-prompt": true,
|
||||
"random-request-config": [
|
||||
{"width": 512, "height": 512, "num_inference_steps": 20, "weight": 0.15},
|
||||
{"width": 768, "height": 768, "num_inference_steps": 20, "weight": 0.25},
|
||||
{"width": 1024, "height": 1024, "num_inference_steps": 25, "weight": 0.45},
|
||||
{"width": 1536, "height": 1536, "num_inference_steps": 35, "weight": 0.15}
|
||||
],
|
||||
"baseline": {
|
||||
"throughput_qps": 0.001,
|
||||
"latency_p99": 1000.0,
|
||||
"peak_memory_mb_max": 400000,
|
||||
"peak_memory_mb_mean": 400000
|
||||
}
|
||||
}
|
||||
]
|
||||
}
|
||||
]
|
||||
@@ -0,0 +1,226 @@
|
||||
[
|
||||
{
|
||||
"test_name": "test_qwen_image_single_device",
|
||||
"description": "Single-device baseline (no parallelism)",
|
||||
"server_type": "vllm-omni",
|
||||
"server_params": {
|
||||
"model": "Qwen/Qwen-Image",
|
||||
"serve_args": {
|
||||
"enable-diffusion-pipeline-profiler": true
|
||||
}
|
||||
},
|
||||
"benchmark_params": [
|
||||
{
|
||||
"name": "512x512_steps20",
|
||||
"dataset": "random",
|
||||
"task": "t2i",
|
||||
"width": 512,
|
||||
"height": 512,
|
||||
"num-inference-steps": 20,
|
||||
"num-prompts": 10,
|
||||
"max-concurrency": 1,
|
||||
"enable-negative-prompt": true,
|
||||
"baseline": {
|
||||
"throughput_qps": 0.40,
|
||||
"latency_p99": 2.55,
|
||||
"peak_memory_mb_max": 67000,
|
||||
"peak_memory_mb_mean": 67000
|
||||
}
|
||||
},
|
||||
{
|
||||
"name": "1536x1536_steps35",
|
||||
"dataset": "random",
|
||||
"task": "t2i",
|
||||
"width": 1536,
|
||||
"height": 1536,
|
||||
"num-inference-steps": 35,
|
||||
"num-prompts": 10,
|
||||
"max-concurrency": 1,
|
||||
"enable-negative-prompt": true,
|
||||
"baseline": {
|
||||
"throughput_qps": 0.037,
|
||||
"latency_p99": 27.0,
|
||||
"peak_memory_mb_max": 74000,
|
||||
"peak_memory_mb_mean": 74000
|
||||
}
|
||||
},
|
||||
{
|
||||
"name": "mixed_resolution",
|
||||
"dataset": "random",
|
||||
"task": "t2i",
|
||||
"num-inference-steps": 20,
|
||||
"num-prompts": 10,
|
||||
"max-concurrency": 1,
|
||||
"enable-negative-prompt": true,
|
||||
"random-request-config": [
|
||||
{"width": 512, "height": 512, "num_inference_steps": 20, "weight": 0.15},
|
||||
{"width": 768, "height": 768, "num_inference_steps": 20, "weight": 0.25},
|
||||
{"width": 1024, "height": 1024, "num_inference_steps": 25, "weight": 0.45},
|
||||
{"width": 1536, "height": 1536, "num_inference_steps": 35, "weight": 0.15}
|
||||
],
|
||||
"baseline": {
|
||||
"throughput_qps": 0.14,
|
||||
"latency_p99": 25.0,
|
||||
"peak_memory_mb_max": 74000,
|
||||
"peak_memory_mb_mean": 74000
|
||||
}
|
||||
}
|
||||
]
|
||||
},
|
||||
|
||||
{
|
||||
"test_name": "test_qwen_image_ulysses2_cfg2_vae_patch4",
|
||||
"description": "Ulysses SP=2 + CFG-parallel=2 + VAE Patch Parallel=4",
|
||||
"server_type": "vllm-omni",
|
||||
"server_params": {
|
||||
"model": "Qwen/Qwen-Image",
|
||||
"serve_args": {
|
||||
"ulysses-degree": 2,
|
||||
"cfg-parallel-size": 2,
|
||||
"vae-patch-parallel-size": 4,
|
||||
"vae-use-tiling": true,
|
||||
"enable-diffusion-pipeline-profiler": true
|
||||
}
|
||||
},
|
||||
"benchmark_params": [
|
||||
{
|
||||
"name": "512x512_steps20",
|
||||
"dataset": "random",
|
||||
"task": "t2i",
|
||||
"width": 512,
|
||||
"height": 512,
|
||||
"num-inference-steps": 20,
|
||||
"num-prompts": 10,
|
||||
"max-concurrency": 1,
|
||||
"enable-negative-prompt": true,
|
||||
"baseline": {
|
||||
"throughput_qps": 0.43,
|
||||
"latency_p99": 2.34,
|
||||
"peak_memory_mb_max": 61000,
|
||||
"peak_memory_mb_mean": 61000
|
||||
}
|
||||
},
|
||||
{
|
||||
"name": "1536x1536_steps35",
|
||||
"dataset": "random",
|
||||
"task": "t2i",
|
||||
"width": 1536,
|
||||
"height": 1536,
|
||||
"num-inference-steps": 35,
|
||||
"num-prompts": 10,
|
||||
"max-concurrency": 1,
|
||||
"enable-negative-prompt": true,
|
||||
"baseline": {
|
||||
"throughput_qps": 0.11,
|
||||
"latency_p99": 9.1,
|
||||
"peak_memory_mb_max": 61000,
|
||||
"peak_memory_mb_mean": 61000
|
||||
}
|
||||
},
|
||||
{
|
||||
"name": "mixed_resolution",
|
||||
"dataset": "random",
|
||||
"task": "t2i",
|
||||
"num-inference-steps": 20,
|
||||
"num-prompts": 10,
|
||||
"max-concurrency": 1,
|
||||
"enable-negative-prompt": true,
|
||||
"random-request-config": [
|
||||
{"width": 512, "height": 512, "num_inference_steps": 20, "weight": 0.15},
|
||||
{"width": 768, "height": 768, "num_inference_steps": 20, "weight": 0.25},
|
||||
{"width": 1024, "height": 1024, "num_inference_steps": 25, "weight": 0.45},
|
||||
{"width": 1536, "height": 1536, "num_inference_steps": 35, "weight": 0.15}
|
||||
],
|
||||
"baseline": {
|
||||
"throughput_qps": 0.29,
|
||||
"latency_p99": 8.5,
|
||||
"peak_memory_mb_max": 61000,
|
||||
"peak_memory_mb_mean": 61000
|
||||
}
|
||||
}
|
||||
]
|
||||
},
|
||||
|
||||
{
|
||||
"test_name": "test_qwen_image_ulysses2_cfg2_cache_dit",
|
||||
"description": "Ulysses SP=2 + CFG-parallel=2 + CacheDiT acceleration",
|
||||
"server_type": "vllm-omni",
|
||||
"server_params": {
|
||||
"model": "Qwen/Qwen-Image",
|
||||
"serve_args": {
|
||||
"ulysses-degree": 2,
|
||||
"cfg-parallel-size": 2,
|
||||
"cache-backend": "cache_dit",
|
||||
"cache-config": {
|
||||
"Fn_compute_blocks": 1,
|
||||
"Bn_compute_blocks": 0,
|
||||
"max_warmup_steps": 4,
|
||||
"residual_diff_threshold": 0.24,
|
||||
"max_continuous_cached_steps": 3,
|
||||
"enable_taylorseer": false,
|
||||
"taylorseer_order": 1,
|
||||
"scm_steps_mask_policy": null,
|
||||
"scm_steps_policy": "dynamic"
|
||||
},
|
||||
"enable-diffusion-pipeline-profiler": true
|
||||
}
|
||||
},
|
||||
"benchmark_params": [
|
||||
{
|
||||
"name": "512x512_steps20",
|
||||
"dataset": "random",
|
||||
"task": "t2i",
|
||||
"width": 512,
|
||||
"height": 512,
|
||||
"num-inference-steps": 20,
|
||||
"num-prompts": 10,
|
||||
"max-concurrency": 1,
|
||||
"enable-negative-prompt": true,
|
||||
"baseline": {
|
||||
"throughput_qps": 0.52,
|
||||
"latency_p99": 2.36,
|
||||
"peak_memory_mb_max": 67000,
|
||||
"peak_memory_mb_mean": 67000
|
||||
}
|
||||
},
|
||||
{
|
||||
"name": "1536x1536_steps35",
|
||||
"dataset": "random",
|
||||
"task": "t2i",
|
||||
"width": 1536,
|
||||
"height": 1536,
|
||||
"num-inference-steps": 35,
|
||||
"num-prompts": 10,
|
||||
"max-concurrency": 1,
|
||||
"enable-negative-prompt": true,
|
||||
"baseline": {
|
||||
"throughput_qps": 0.17,
|
||||
"latency_p99": 6.15,
|
||||
"peak_memory_mb_max": 74000,
|
||||
"peak_memory_mb_mean": 74000
|
||||
}
|
||||
},
|
||||
{
|
||||
"name": "mixed_resolution",
|
||||
"dataset": "random",
|
||||
"task": "t2i",
|
||||
"num-inference-steps": 20,
|
||||
"num-prompts": 10,
|
||||
"max-concurrency": 1,
|
||||
"enable-negative-prompt": true,
|
||||
"random-request-config": [
|
||||
{"width": 512, "height": 512, "num_inference_steps": 20, "weight": 0.15},
|
||||
{"width": 768, "height": 768, "num_inference_steps": 20, "weight": 0.25},
|
||||
{"width": 1024, "height": 1024, "num_inference_steps": 25, "weight": 0.45},
|
||||
{"width": 1536, "height": 1536, "num_inference_steps": 35, "weight": 0.15}
|
||||
],
|
||||
"baseline": {
|
||||
"throughput_qps": 0.41,
|
||||
"latency_p99": 5.33,
|
||||
"peak_memory_mb_max": 74000,
|
||||
"peak_memory_mb_mean": 74000
|
||||
}
|
||||
}
|
||||
]
|
||||
}
|
||||
]
|
||||
@@ -1,57 +0,0 @@
|
||||
[
|
||||
{
|
||||
"name": "512x512_steps20",
|
||||
"dataset": "random",
|
||||
"task": "t2i",
|
||||
"width": 512,
|
||||
"height": 512,
|
||||
"num-inference-steps": 20,
|
||||
"num-prompts": 10,
|
||||
"max-concurrency": 1,
|
||||
"enable-negative-prompt": true,
|
||||
"baseline": {
|
||||
"throughput_qps": 0.001,
|
||||
"latency_p99": 1000.0,
|
||||
"peak_memory_mb_max": 400000,
|
||||
"peak_memory_mb_mean": 400000
|
||||
}
|
||||
},
|
||||
{
|
||||
"name": "1536x1536_steps35",
|
||||
"dataset": "random",
|
||||
"task": "t2i",
|
||||
"width": 1536,
|
||||
"height": 1536,
|
||||
"num-inference-steps": 35,
|
||||
"num-prompts": 10,
|
||||
"max-concurrency": 1,
|
||||
"enable-negative-prompt": true,
|
||||
"baseline": {
|
||||
"throughput_qps": 0.001,
|
||||
"latency_p99": 1000.0,
|
||||
"peak_memory_mb_max": 400000,
|
||||
"peak_memory_mb_mean": 400000
|
||||
}
|
||||
},
|
||||
{
|
||||
"name": "mixed_resolution",
|
||||
"dataset": "random",
|
||||
"task": "t2i",
|
||||
"num-inference-steps": 20,
|
||||
"num-prompts": 10,
|
||||
"max-concurrency": 1,
|
||||
"enable-negative-prompt": true,
|
||||
"random-request-config": [
|
||||
{"width": 512, "height": 512, "num_inference_steps": 20, "weight": 0.15},
|
||||
{"width": 768, "height": 768, "num_inference_steps": 20, "weight": 0.25},
|
||||
{"width": 1024, "height": 1024, "num_inference_steps": 25, "weight": 0.45},
|
||||
{"width": 1536, "height": 1536, "num_inference_steps": 35, "weight": 0.15}
|
||||
],
|
||||
"baseline": {
|
||||
"throughput_qps": 0.001,
|
||||
"latency_p99": 1000.0,
|
||||
"peak_memory_mb_max": 400000,
|
||||
"peak_memory_mb_mean": 400000
|
||||
}
|
||||
}
|
||||
]
|
||||
@@ -1,73 +0,0 @@
|
||||
[
|
||||
{
|
||||
"test_name": "test_sglang_qwen_image_single_device",
|
||||
"description": "sglang: single-device baseline (no parallelism)",
|
||||
"server_type": "sglang",
|
||||
"server_params": {
|
||||
"model": "Qwen/Qwen-Image",
|
||||
"serve_args": {
|
||||
"num-gpus": 1,
|
||||
"dit-cpu-offload": false,
|
||||
"text-encoder-cpu-offload": false,
|
||||
"vae-cpu-offload": false
|
||||
}
|
||||
},
|
||||
"benchmark_params": {"$ref": "benchmark_params.json"}
|
||||
},
|
||||
|
||||
{
|
||||
"test_name": "test_sglang_qwen_image_ulysses2_cfg2_vae_patch4",
|
||||
"description": "sglang: USP=2 + CFG-parallel=2 + VAE patch parallel via --use-parallel-tiling",
|
||||
"server_type": "sglang",
|
||||
"server_params": {
|
||||
"model": "Qwen/Qwen-Image",
|
||||
"serve_args": {
|
||||
"num-gpus": 4,
|
||||
"sp-degree": 2,
|
||||
"ulysses-degree": 2,
|
||||
"enable-cfg-parallel": true,
|
||||
"use-parallel-tiling": true,
|
||||
"dit-cpu-offload": false,
|
||||
"text-encoder-cpu-offload": false,
|
||||
"vae-cpu-offload": false
|
||||
}
|
||||
},
|
||||
"benchmark_params": {"$ref": "benchmark_params.json"}
|
||||
},
|
||||
|
||||
{
|
||||
"test_name": "test_sglang_qwen_image_ulysses2_cfg2_cache_dit",
|
||||
"description": "sglang: USP=2 + CFG-parallel=2 + Cache-DiT via YAML config (--cache-dit-config)",
|
||||
"server_type": "sglang",
|
||||
"server_params": {
|
||||
"model": "Qwen/Qwen-Image",
|
||||
"cache_dit_config": {
|
||||
"cache_config": {
|
||||
"Fn_compute_blocks": 1,
|
||||
"Bn_compute_blocks": 0,
|
||||
"max_warmup_steps": 4,
|
||||
"residual_diff_threshold": 0.24,
|
||||
"max_continuous_cached_steps": 3,
|
||||
"enable_taylorseer": false,
|
||||
"taylorseer_order": 1,
|
||||
"scm_steps_mask_policy": "none",
|
||||
"scm_steps_policy": "dynamic"
|
||||
},
|
||||
"parallelism_config": {
|
||||
"ulysses_size": 2,
|
||||
"attention_backend": "native"
|
||||
}
|
||||
},
|
||||
"serve_args": {
|
||||
"num-gpus": 4,
|
||||
"sp-degree": 2,
|
||||
"ulysses-degree": 2,
|
||||
"enable-cfg-parallel": true,
|
||||
"dit-cpu-offload": false,
|
||||
"text-encoder-cpu-offload": false,
|
||||
"vae-cpu-offload": false
|
||||
}
|
||||
},
|
||||
"benchmark_params": {"$ref": "benchmark_params.json"}
|
||||
}
|
||||
]
|
||||
@@ -1,58 +0,0 @@
|
||||
[
|
||||
{
|
||||
"test_name": "test_qwen_image_single_device",
|
||||
"description": "Single-device baseline (no parallelism)",
|
||||
"server_type": "vllm-omni",
|
||||
"server_params": {
|
||||
"model": "Qwen/Qwen-Image",
|
||||
"serve_args": {
|
||||
"enable-diffusion-pipeline-profiler": true
|
||||
}
|
||||
},
|
||||
"benchmark_params": {"$ref": "benchmark_params.json"}
|
||||
},
|
||||
|
||||
{
|
||||
"test_name": "test_qwen_image_ulysses2_cfg2_vae_patch4",
|
||||
"description": "Ulysses SP=2 + CFG-parallel=2 + VAE Patch Parallel=4",
|
||||
"server_type": "vllm-omni",
|
||||
"server_params": {
|
||||
"model": "Qwen/Qwen-Image",
|
||||
"serve_args": {
|
||||
"ulysses-degree": 2,
|
||||
"cfg-parallel-size": 2,
|
||||
"vae-patch-parallel-size": 4,
|
||||
"vae-use-tiling": true,
|
||||
"enable-diffusion-pipeline-profiler": true
|
||||
}
|
||||
},
|
||||
"benchmark_params": {"$ref": "benchmark_params.json"}
|
||||
},
|
||||
|
||||
{
|
||||
"test_name": "test_qwen_image_ulysses2_cfg2_cache_dit",
|
||||
"description": "Ulysses SP=2 + CFG-parallel=2 + CacheDiT acceleration",
|
||||
"server_type": "vllm-omni",
|
||||
"server_params": {
|
||||
"model": "Qwen/Qwen-Image",
|
||||
"serve_args": {
|
||||
"ulysses-degree": 2,
|
||||
"cfg-parallel-size": 2,
|
||||
"cache-backend": "cache_dit",
|
||||
"cache-config": {
|
||||
"Fn_compute_blocks": 1,
|
||||
"Bn_compute_blocks": 0,
|
||||
"max_warmup_steps": 4,
|
||||
"residual_diff_threshold": 0.24,
|
||||
"max_continuous_cached_steps": 3,
|
||||
"enable_taylorseer": false,
|
||||
"taylorseer_order": 1,
|
||||
"scm_steps_mask_policy": null,
|
||||
"scm_steps_policy": "dynamic"
|
||||
},
|
||||
"enable-diffusion-pipeline-profiler": true
|
||||
}
|
||||
},
|
||||
"benchmark_params": {"$ref": "benchmark_params.json"}
|
||||
}
|
||||
]
|
||||
Reference in new issue
Block a user