# Template: resolve model and GPU IDs with ../prepare_h100.py before running.
experiment:
  name: h100-large-model
  output_dir: /var/tmp/vllm-optimizer-h100/runs
  seed: 42
server:
  model: /replace/with/your/model
  host: 127.0.0.1
  port: 8100
  dtype: auto
  seed: 42
  tensor-parallel-size: 2
  gpu-memory-utilization: 0.9
  max-model-len: 4096
  enable-chunked-prefill: true
  max-num-seqs: 128
  max-num-batched-tokens: 8192
env:
  CUDA_VISIBLE_DEVICES: 0,1
tune:
  max-num-seqs:
    values:
    - 32
    - 64
    - 128
    - 256
  max-num-batched-tokens:
    values:
    - 2048
    - 4096
    - 8192
    - 16384
benchmark:
  engine: vllm
  warmup_repeats: 1
  repeats: 4
  min_repeats: 4
  max_failure_percentage: 0
  runs:
  - name: interactive
    args:
      dataset-name: random
      random-input-len: 512
      random-output-len: 256
      num-prompts: 512
      max-concurrency: 16
      request-rate: inf
      seed: 42
      temperature: 0
      ignore-eos: true
      percentile-metrics: ttft,tpot,itl,e2el
      metric-percentiles: 50,95,99
  - name: batch-generation
    args:
      dataset-name: random
      random-input-len: 1024
      random-output-len: 512
      num-prompts: 512
      max-concurrency: 128
      request-rate: inf
      seed: 42
      temperature: 0
      ignore-eos: true
      percentile-metrics: ttft,tpot,itl,e2el
      metric-percentiles: 50,95,99
  - name: long-prompt
    args:
      dataset-name: random
      random-input-len: 3072
      random-output-len: 256
      num-prompts: 256
      max-concurrency: 32
      request-rate: inf
      seed: 42
      temperature: 0
      ignore-eos: true
      percentile-metrics: ttft,tpot,itl,e2el
      metric-percentiles: 50,95,99
baseline:
  enabled: true
optimization:
  maximize: output_tokens_per_second
  sampler: grid
analysis:
  drift_threshold: 0.05
timeouts:
  startup: 1800s
  benchmark: 900s
execution:
  mode: sequential
  retry:
    max_attempts: 1
