Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
381 changes: 381 additions & 0 deletions .github/configs/amd-master.yaml
Original file line number Diff line number Diff line change
Expand Up @@ -176,3 +176,384 @@ gptoss-fp4-mi355x-vllm:
- { tp: 1, conc-start: 4, conc-end: 128 }
- { tp: 4, conc-start: 4, conc-end: 4 }
- { tp: 8, conc-start: 4, conc-end: 8 }


dsr1-fp8-mi355x-sglang-disagg:
image: rocm/sgl-dev:sglang-0.5.6.post1-rocm700-mi35x-mori-1224
model: deepseek-ai/DeepSeek-R1-0528
model-prefix: dsr1
# NOTE: Until this cluster has more nodes, switch to a single runner because
# no oversubscription is needed.
runner: mi355x-amd_0
precision: fp8
framework: sglang-disagg
multinode: true
disagg: true
seq-len-configs:
- isl: 1024
osl: 1024
search-space:
# MTP configurations
# "Top of curve" (1 prefill worker at DEP8 and 1 decode worker at DEP16)
- spec-decoding: "mtp"
conc-list: [ 2048 ]
prefill:
num-worker: 1
tp: 1
ep: 8
dp-attn: true
additional-settings:
- "PREFILL_NODES=1"
decode:
num-worker: 1
tp: 1
ep: 16
dp-attn: true
additional-settings:
- "DECODE_NODES=2"
- "DECODE_MTP_SIZE=2"

# "Middle of curve" (1 prefill worker at DEP8 and 2 decode workers each at DEP8)
- spec-decoding: "mtp"
conc-list: [ 256, 512, 1024 ]
prefill:
num-worker: 1
tp: 1
ep: 8
dp-attn: true
additional-settings:
- "PREFILL_NODES=1"
decode:
num-worker: 2
tp: 1
ep: 8
dp-attn: true
additional-settings:
- "DECODE_NODES=2"
- "DECODE_MTP_SIZE=2"


# "Bottom of curve" (1 prefill worker at TEP8 and 2 decode workers at TEP8)
- spec-decoding: "mtp"
conc-list: [ 32, 64, 128 ]
prefill:
num-worker: 1
tp: 8
ep: 8
dp-attn: false
additional-settings:
- "PREFILL_NODES=1"

decode:
num-worker: 2
tp: 8
ep: 8
dp-attn: false
additional-settings:
- "DECODE_NODES=2"
- "DECODE_MTP_SIZE=2"

# non-MTP configurations
# "Top of curve" (1 prefill workers each at DEP8 and 1 decode workers at DEP16)
- spec-decoding: "none"
conc-list: [ 2048 ]
prefill:
num-worker: 1
tp: 1
ep: 8
dp-attn: true
additional-settings:
- "PREFILL_NODES=1"
decode:
num-worker: 1
tp: 1
ep: 16
dp-attn: true
additional-settings:
- "DECODE_NODES=2"
- "DECODE_MTP_SIZE=0"

# "Middle of curve" (1 prefill workers each at DEP8 and 2 decode workers at DEP8)
- spec-decoding: "none"
conc-list: [ 256, 512, 1024 ]
prefill:
num-worker: 1
tp: 1
ep: 8
dp-attn: true
additional-settings:
- "PREFILL_NODES=1"
decode:
num-worker: 2
tp: 1
ep: 8
dp-attn: true
additional-settings:
- "DECODE_NODES=2"
- "DECODE_MTP_SIZE=0"


# "Bottom of curve" (1 prefill worker at TEP8 and 2 decode workers at TEP8)
- spec-decoding: "none"
conc-list: [ 32, 64, 128 ]
prefill:
num-worker: 1
tp: 8
ep: 8
dp-attn: false
additional-settings:
- "PREFILL_NODES=1"

decode:
num-worker: 2
tp: 8
ep: 8
dp-attn: false
additional-settings:
- "DECODE_NODES=2"
- "DECODE_MTP_SIZE=0"

- isl: 8192
osl: 1024
search-space:
# MTP configurations
# "Top of curve" (1 prefill worker at DEP8 and 1 decode worker at DEP16)
- spec-decoding: "mtp"
conc-list: [ 2048 ]
prefill:
num-worker: 1
tp: 1
ep: 8
dp-attn: true
additional-settings:
- "PREFILL_NODES=1"
decode:
num-worker: 1
tp: 1
ep: 16
dp-attn: true
additional-settings:
- "DECODE_NODES=2"
- "DECODE_MTP_SIZE=2"

# "Middle of curve" (1 prefill worker at DEP8 and 2 decode workers each at DEP8)
- spec-decoding: "mtp"
conc-list: [ 256, 512, 1024 ]
prefill:
num-worker: 1
tp: 1
ep: 8
dp-attn: true
additional-settings:
- "PREFILL_NODES=1"
decode:
num-worker: 2
tp: 1
ep: 8
dp-attn: true
additional-settings:
- "DECODE_NODES=2"
- "DECODE_MTP_SIZE=2"


# "Bottom of curve" (1 prefill worker at TEP8 and 2 decode workers at TEP8)
- spec-decoding: "mtp"
conc-list: [ 32, 64, 128 ]
prefill:
num-worker: 1
tp: 8
ep: 8
dp-attn: false
additional-settings:
- "PREFILL_NODES=1"

decode:
num-worker: 2
tp: 8
ep: 8
dp-attn: false
additional-settings:
- "DECODE_NODES=2"
- "DECODE_MTP_SIZE=2"

# non-MTP configurations
# "Top of curve" (1 prefill workers each at DEP8 and 1 decode workers at DEP16)
- spec-decoding: "none"
conc-list: [ 2048 ]
prefill:
num-worker: 1
tp: 1
ep: 8
dp-attn: true
additional-settings:
- "PREFILL_NODES=1"
decode:
num-worker: 1
tp: 1
ep: 16
dp-attn: true
additional-settings:
- "DECODE_NODES=2"
- "DECODE_MTP_SIZE=0"

# "Middle of curve" (1 prefill workers each at DEP8 and 2 decode workers at DEP8)
- spec-decoding: "none"
conc-list: [ 256, 512, 1024 ]
prefill:
num-worker: 1
tp: 1
ep: 8
dp-attn: true
additional-settings:
- "PREFILL_NODES=1"
decode:
num-worker: 2
tp: 1
ep: 8
dp-attn: true
additional-settings:
- "DECODE_NODES=2"
- "DECODE_MTP_SIZE=0"

# "Bottom of curve" (1 prefill worker at TEP8 and 2 decode workers at TEP8)
- spec-decoding: "none"
conc-list: [ 32, 64, 128 ]
prefill:
num-worker: 1
tp: 8
ep: 8
dp-attn: false
additional-settings:
- "PREFILL_NODES=1"

decode:
num-worker: 2
tp: 8
ep: 8
dp-attn: false
additional-settings:
- "DECODE_NODES=2"
- "DECODE_MTP_SIZE=0"


- isl: 1024
osl: 8192
search-space:
# MTP configurations
# "Top of curve" (1 prefill workers each at DEP8 and 2 decode workers at DEP8)
- spec-decoding: "mtp"
conc-list: [ 2048 ]
prefill:
num-worker: 1
tp: 1
ep: 8
dp-attn: true
additional-settings:
- "PREFILL_NODES=1"
decode:
num-worker: 1
tp: 1
ep: 16
dp-attn: true
additional-settings:
- "DECODE_NODES=2"
- "DECODE_MTP_SIZE=2"


# "Middle of curve" (1 prefill worker at DEP8 and 2 decode workers each at DEP8)
- spec-decoding: "mtp"
conc-list: [ 256, 512, 1024 ]
prefill:
num-worker: 1
tp: 1
ep: 8
dp-attn: true
additional-settings:
- "PREFILL_NODES=1"
decode:
num-worker: 2
tp: 1
ep: 8
dp-attn: true
additional-settings:
- "DECODE_NODES=2"
- "DECODE_MTP_SIZE=2"


# "Bottom of curve" (1 prefill worker at TEP8 and 2 decode workers at TEP8)
- spec-decoding: "mtp"
conc-list: [ 32, 64, 128 ]
prefill:
num-worker: 1
tp: 8
ep: 8
dp-attn: false
additional-settings:
- "PREFILL_NODES=1"

decode:
num-worker: 2
tp: 8
ep: 8
dp-attn: false
additional-settings:
- "DECODE_NODES=2"
- "DECODE_MTP_SIZE=2"

# non-MTP configurations
# "Top of curve" (1 prefill workers each at DEP8 and 1 decode workers at DEP16)
- spec-decoding: "none"
conc-list: [ 2048 ]
prefill:
num-worker: 1
tp: 1
ep: 8
dp-attn: true
additional-settings:
- "PREFILL_NODES=1"
decode:
num-worker: 1
tp: 1
ep: 16
dp-attn: true
additional-settings:
- "DECODE_NODES=2"
- "DECODE_MTP_SIZE=0"

# "Middle of curve" (1 prefill workers each at DEP8 and 2 decode workers at DEP8)
- spec-decoding: "none"
conc-list: [ 256, 512, 1024 ]
prefill:
num-worker: 1
tp: 1
ep: 8
dp-attn: true
additional-settings:
- "PREFILL_NODES=1"
decode:
num-worker: 2
tp: 1
ep: 8
dp-attn: true
additional-settings:
- "DECODE_NODES=2"
- "DECODE_MTP_SIZE=0"

# "Bottom of curve" (1 prefill worker at TEP8 and 2 decode workers at TEP8)
- spec-decoding: "none"
conc-list: [ 32, 64, 128 ]
prefill:
num-worker: 1
tp: 8
ep: 8
dp-attn: false
additional-settings:
- "PREFILL_NODES=1"
decode:
num-worker: 2
tp: 8
ep: 8
dp-attn: false
additional-settings:
- "DECODE_NODES=2"
- "DECODE_MTP_SIZE=0"
Comment on lines +192 to +559

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

medium

The search-space configuration is duplicated three times for different isl/osl combinations. This makes the file very long and hard to maintain. You can use YAML anchors and aliases to define the search-space once and reuse it. This will significantly reduce the file size and improve readability.

For example:

# At the top level of your YAML, define an anchor
x-dsr1-search-space: &dsr1_search_space
  # MTP configurations
  # "Top of curve" (1 prefill worker at DEP8 and 1 decode worker at DEP16)
  - spec-decoding: "mtp"
    conc-list: [ 2048 ]
    # ... rest of the search space items

ds1-fp8-mi355x-sglang-disagg:
  # ... other properties
  seq-len-configs:
  - isl: 1024
    osl: 1024
    search-space: *dsr1_search_space # Reuse with an alias
  - isl: 8192
    osl: 1024
    search-space: *dsr1_search_space # Reuse with an alias
  - isl: 1024
    osl: 8192
    search-space: *dsr1_search_space # Reuse with an alias

Loading