Skip to content

Commit 6f64697

Browse files
authored
Merge branch 'master' into submission-guide
2 parents acd9d79 + 0369dd1 commit 6f64697

File tree

395 files changed

+2551896
-341
lines changed

Some content is hidden

Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.

395 files changed

+2551896
-341
lines changed

.github/workflows/build_wheels.yml

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,5 @@
11
name: Build loadgen wheels and release them into PYPI
2+
23
on:
34
release:
45
types: [published]
@@ -73,7 +74,7 @@ jobs:
7374
strategy:
7475
fail-fast: false
7576
matrix:
76-
os: [ubuntu-latest, windows-latest, macos-latest, macos-13]
77+
os: [ubuntu-latest, windows-latest, macos-latest, macos-15]
7778

7879
steps:
7980
- uses: actions/checkout@v3

.github/workflows/test-resnet50.yml

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -23,7 +23,7 @@ jobs:
2323
strategy:
2424
fail-fast: false
2525
matrix:
26-
python-version: [ "3.9" ]
26+
python-version: [ "3.10", "3.13" ]
2727
backend: [ "onnxruntime", "tf" ]
2828
loadgen-flag: [ "", "--adr.loadgen.tags=_from-pip --pip_loadgen=yes" ]
2929

.github/workflows/test-retinanet.yml

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -22,7 +22,7 @@ jobs:
2222
strategy:
2323
fail-fast: false
2424
matrix:
25-
python-version: [ "3.10" ]
25+
python-version: [ "3.10", "3.13" ]
2626
backend: [ "onnxruntime", "pytorch" ]
2727

2828
steps:

.github/workflows/test-rgat.yml

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -20,7 +20,7 @@ jobs:
2020
strategy:
2121
fail-fast: false
2222
matrix:
23-
python-version: [ "3.11" ]
23+
python-version: [ "3.11", "3.12" ]
2424
backend: [ "pytorch" ]
2525
loadgen-flag: [ "" ]
2626

.github/workflows/test-submission-checker.yml

Lines changed: 6 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -5,7 +5,7 @@ name: Test for MLPerf inference submission checker using MLC script automation
55

66
on:
77
pull_request:
8-
branches: [ "master", "dev" ]
8+
branches: [ "master_off", "dev_off" ]
99
paths:
1010
- tools/submission/**
1111
- .github/workflows/test-submission-checker.yml
@@ -21,7 +21,7 @@ jobs:
2121
strategy:
2222
fail-fast: false
2323
matrix:
24-
python-version: [ "3.8", "3.11", "3.12" ]
24+
python-version: [ "3.10", "3.12", "3.14" ]
2525

2626
steps:
2727
- uses: actions/checkout@v3
@@ -31,8 +31,10 @@ jobs:
3131
python-version: ${{ matrix.python-version }}
3232
- name: Install dependencies
3333
run: |
34-
python3 -m pip install mlc-scripts
34+
python3 -m pip install mlcflow
35+
mlc pull repo mlcommons@mlperf-automations --branch=sub-gen-change
3536
git clone https://github.com/mlcommons/mlperf_inference_unofficial_submissions_v5.0 --depth 1
37+
# python3 -m pip install mlc-scripts
3638
- name: Test MLPerf inference submission checker
3739
run: |
38-
mlcr run,mlperf,inference,submission,checker --adr.inference-src.tags=_branch.$PR_HEAD_REF,_repo.${{ github.event.pull_request.head.repo.html_url }} --adr.inference-src.version=custom --input=`pwd`/mlperf_inference_unofficial_submissions_v5.0 --src_version=v5.0 --extra_args=" --skip-extra-files-in-root-check --skip-extra-accuracy-files-check --skip-all-systems-have-results-check --skip-calibration-check" --quiet
40+
mlcr run,mlperf,inference,submission,checker --adr.inference-src.tags=_branch.submission_dir --adr.inference-src.version=custom --input=`pwd`/mlperf_inference_unofficial_submissions_v5.0 --src_version=v5.0 --extra_args=" --skip-extra-files-in-root-check --skip-extra-accuracy-files-check --skip-all-systems-have-results-check --skip-calibration-check" --quiet

.gitignore

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -3,3 +3,6 @@ libmlperf_loadgen.a
33
__pycache__/
44
generated/
55
*.swp
6+
*.egg-info/
7+
*.so
8+
.vscode/

.gitmodules

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -10,3 +10,6 @@
1010
[submodule "language/deepseek-r1/submodules/LiveCodeBench"]
1111
path = language/deepseek-r1/submodules/LiveCodeBench
1212
url = https://github.com/LiveCodeBench/LiveCodeBench
13+
[submodule "text_to_video/wan2.2-t2v-14b/submodules/VBench"]
14+
path = text_to_video/wan2.2-t2v-14b/submodules/VBench
15+
url = https://github.com/Vchitect/VBench

docs/benchmarks/language/scc25_guide/scc25.md

Lines changed: 4 additions & 14 deletions
Original file line numberDiff line numberDiff line change
@@ -87,20 +87,10 @@ mlcr generate,inference,submission,_wg-inference \
8787

8888
### Submit Results
8989

90-
> **Note:**
91-
Further instructions on the final submission will be published as the deadline approaches.
92-
93-
<!-- Fork the `mlperf-inference-results-scc25` branch of the repository URL at [mlperf-automations](https://github.com/mlcommons/mlperf-automations).
90+
MLCommons provides students with a [Submission UI](https://submissions-ui.mlcommons.org/index), where they can upload the generated **.tar** file using their assigned submission ID.
9491

95-
Run the following command after **replacing `--repo_url` with your GitHub fork URL**.
92+
The deadline for submitting results is 6:00 PM CDT on November 17 (Monday), 2025.
9693

97-
```bash
98-
mlcr push,github,mlperf,inference,submission \
99-
--repo_url=https://github.com/<myfork>/mlperf-automations \
100-
--repo_branch=mlperf-inference-results-scc25 \
101-
--commit_message="Results on system <HW Name>" \
102-
--quiet
103-
```
94+
Alternatively, students may use the Submission CLI provided through the MLCFlow automation. To do this, first follow the installation steps in this [guide](../../../install/index.md).
95+
After installing, follow the instructions under [**Upload the final submission**](https://docs.mlcommons.org/inference/submission/#upload-the-final-submission).
10496

105-
Once uploaded give a Pull Request to the origin repository. Github action will be running there and once
106-
finished you can see your submitted results at [https://docs.mlcommons.org/mlperf-automations](https://docs.mlcommons.org/mlperf-automations). -->

graph/R-GAT/tools/download_igbh_full.sh

Lines changed: 20 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -33,74 +33,93 @@ cd $1/full/processed
3333
mkdir paper
3434
cd paper
3535
wget -c https://igb-public.s3.us-east-2.amazonaws.com/IGBH/processed/paper/node_feat.npy
36+
test $? -eq 0 || { echo "❌ Failed to download: paper/node_feat.npy"; exit $?; }
3637
wget -c https://igb-public.s3.us-east-2.amazonaws.com/IGBH/processed/paper/node_label_19.npy
38+
test $? -eq 0 || { echo "❌ Failed to download: paper/node_label_19.npy"; exit $?; }
3739
wget -c https://igb-public.s3.us-east-2.amazonaws.com/IGBH/processed/paper/node_label_2K.npy
40+
test $? -eq 0 || { echo "❌ Failed to download: paper/node_label_2K.npy"; exit $?; }
3841
wget -c https://igb-public.s3.us-east-2.amazonaws.com/IGBH/processed/paper/paper_id_index_mapping.npy
42+
test $? -eq 0 || { echo "❌ Failed to download: paper/paper_id_index_mapping.npy"; exit $?; }
3943
cd ..
4044

4145
# paper__cites__paper
4246
mkdir paper__cites__paper
4347
cd paper__cites__paper
4448
wget -c https://igb-public.s3.us-east-2.amazonaws.com/IGBH/processed/paper__cites__paper/edge_index.npy
49+
test $? -eq 0 || { echo "❌ Failed to download: paper__cites__paper/edge_index.npy"; exit $?; }
4550
cd ..
4651

4752
# author
4853
mkdir author
4954
cd author
5055
wget -c https://igb-public.s3.us-east-2.amazonaws.com/IGBH/processed/author/author_id_index_mapping.npy
56+
test $? -eq 0 || { echo "❌ Failed to download: author/author_id_index_mapping.npy"; exit $?; }
5157
wget -c https://igb-public.s3.us-east-2.amazonaws.com/IGBH/processed/author/node_feat.npy
58+
test $? -eq 0 || { echo "❌ Failed to download: author/node_feat.npy"; exit $?; }
5259
cd ..
5360

5461
# conference
5562
mkdir conference
5663
cd conference
5764
wget -c https://igb-public.s3.us-east-2.amazonaws.com/IGBH/processed/conference/conference_id_index_mapping.npy
65+
test $? -eq 0 || { echo "❌ Failed to download: conference/conference_id_index_mapping.npy"; exit $?; }
5866
wget -c https://igb-public.s3.us-east-2.amazonaws.com/IGBH/processed/conference/node_feat.npy
67+
test $? -eq 0 || { echo "❌ Failed to download: conference/node_feat.npy"; exit $?; }
5968
cd ..
6069

6170
# institute
6271
mkdir institute
6372
cd institute
6473
wget -c https://igb-public.s3.us-east-2.amazonaws.com/IGBH/processed/institute/institute_id_index_mapping.npy
74+
test $? -eq 0 || { echo "❌ Failed to download: institute/institute_id_index_mapping.npy"; exit $?; }
6575
wget -c https://igb-public.s3.us-east-2.amazonaws.com/IGBH/processed/institute/node_feat.npy
76+
test $? -eq 0 || { echo "❌ Failed to download: institute/node_feat.npy"; exit $?; }
6677
cd ..
6778

6879
# journal
6980
mkdir journal
7081
cd journal
7182
wget -c https://igb-public.s3.us-east-2.amazonaws.com/IGBH/processed/journal/journal_id_index_mapping.npy
83+
test $? -eq 0 || { echo "❌ Failed to download: journal/journal_id_index_mapping.npy"; exit $?; }
7284
wget -c https://igb-public.s3.us-east-2.amazonaws.com/IGBH/processed/journal/node_feat.npy
85+
test $? -eq 0 || { echo "❌ Failed to download: journal/node_feat.npy"; exit $?; }
7386
cd ..
7487

7588
# fos
7689
mkdir fos
7790
cd fos
7891
wget -c https://igb-public.s3.us-east-2.amazonaws.com/IGBH/processed/fos/fos_id_index_mapping.npy
92+
test $? -eq 0 || { echo "❌ Failed to download: fos/fos_id_index_mapping.npy"; exit $?; }
7993
wget -c https://igb-public.s3.us-east-2.amazonaws.com/IGBH/processed/fos/node_feat.npy
94+
test $? -eq 0 || { echo "❌ Failed to download: fos/node_feat.npy"; exit $?; }
8095
cd ..
8196

8297
# author__affiliated_to__institute
8398
mkdir author__affiliated_to__institute
8499
cd author__affiliated_to__institute
85100
wget -c https://igb-public.s3.us-east-2.amazonaws.com/IGBH/processed/author__affiliated_to__institute/edge_index.npy
101+
test $? -eq 0 || { echo "❌ Failed to download: author__affiliated_to__institute/edge_index.npy"; exit $?; }
86102
cd ..
87103

88104
# paper__published__journal
89105
mkdir paper__published__journal
90106
cd paper__published__journal
91107
wget -c https://igb-public.s3.us-east-2.amazonaws.com/IGBH/processed/paper__published__journal/edge_index.npy
108+
test $? -eq 0 || { echo "❌ Failed to download: paper__published__journal/edge_index.npy"; exit $?; }
92109
cd ..
93110

94111
# paper__topic__fos
95112
mkdir paper__topic__fos
96113
cd paper__topic__fos
97114
wget -c https://igb-public.s3.us-east-2.amazonaws.com/IGBH/processed/paper__topic__fos/edge_index.npy
115+
test $? -eq 0 || { echo "❌ Failed to download: paper__topic__fos/edge_index.npy"; exit $?; }
98116
cd ..
99117

100118
# paper__venue__conference
101119
mkdir paper__venue__conference
102120
cd paper__venue__conference
103121
wget -c https://igb-public.s3.us-east-2.amazonaws.com/IGBH/processed/paper__venue__conference/edge_index.npy
122+
test $? -eq 0 || { echo "❌ Failed to download: paper__venue__conference/edge_index.npy"; exit $?; }
104123
cd ..
105124

106125
# paper__written_by__author
@@ -109,4 +128,4 @@ cd paper__written_by__author
109128
wget -c https://igb-public.s3.us-east-2.amazonaws.com/IGBH/processed/paper__written_by__author/edge_index.npy
110129
cd ..
111130

112-
echo "IGBH-IGBH download complete"
131+
echo "IGBH-IGBH download complete"

language/deepseek-r1/README.md

Lines changed: 40 additions & 10 deletions
Original file line numberDiff line numberDiff line change
@@ -23,6 +23,7 @@ bash <(curl -s https://raw.githubusercontent.com/mlcommons/r2-downloader/refs/he
2323
```
2424

2525
To specify a custom download directory, use the `-d` flag:
26+
2627
```bash
2728
bash <(curl -s https://raw.githubusercontent.com/mlcommons/r2-downloader/refs/heads/main/mlc-r2-downloader.sh) \
2829
-d /path/to/download/directory \
@@ -53,6 +54,7 @@ bash <(curl -s https://raw.githubusercontent.com/mlcommons/r2-downloader/refs/he
5354
This will download the full preprocessed dataset file (`mlperf_deepseek_r1_dataset_4388_fp8_eval.pkl`) and the calibration dataset file (`mlperf_deepseek_r1_calibration_dataset_500_fp8_eval.pkl`).
5455

5556
To specify a custom download directory, use the `-d` flag:
57+
5658
```bash
5759
bash <(curl -s https://raw.githubusercontent.com/mlcommons/r2-downloader/refs/heads/main/mlc-r2-downloader.sh) \
5860
-d /path/to/download/directory \
@@ -103,6 +105,8 @@ Launch a Docker container with your preferred backend:
103105
- **vllm**: vLLM's LLM api-based inference
104106
- **sglang**: sglang's OpenAI endpoint-based inference
105107

108+
**NOTE**: `sglang` backend uses `sglang==0.5.4` installed into `lmsysorg/sglang:v0.5.2-cu129-b200` base image.
109+
106110
## Backend-Specific Setup
107111

108112
After launching any Docker container, run the setup script which automatically detects your backend:
@@ -115,6 +119,7 @@ setup.sh
115119
The setup script creates a virtual environment and configures it differently based on the backend:
116120

117121
#### All Backends
122+
118123
- Virtual environment is **activated** after `setup.sh`
119124
- Activate backend-specific venv using `source .venv_[pytorch|vllm|sglang]/bin/activate`
120125
- All commands are to be run using the virtual environment
@@ -159,6 +164,7 @@ The reference implementation includes full support for MLPerf inference benchmar
159164
### Running MLPerf Benchmarks
160165

161166
#### Offline Scenario
167+
162168
```bash
163169
(.venv_BACKEND) $ python run_mlperf.py \
164170
--mode offline \
@@ -167,13 +173,25 @@ The reference implementation includes full support for MLPerf inference benchmar
167173
```
168174

169175
#### Server Scenario
176+
170177
```bash
171178
(.venv_BACKEND) $ python run_mlperf.py \
172179
--mode server \
173180
--input-file <input_dataset>.pkl \
174181
--output-dir mlperf_results
175182
```
176183

184+
#### Interactive Scenario
185+
186+
```bash
187+
(.venv_BACKEND) $ python run_mlperf.py \
188+
--mode interactive \
189+
--input-file <input_dataset>.pkl \
190+
--output-dir mlperf_results
191+
```
192+
193+
**NOTE:** to enable Speculative Decoding for Sglang Backend, toggle `BACKEND_REGISTRY['sglang']['enable_speculative_decode']` in `utils/backend_registry.py` (disabled by default).
194+
177195
#### Pytorch Backend for Mlperf
178196

179197
PyTorch backend uses distributed execution with `torchrun` and `run_mlperf_mpi.py`:
@@ -188,24 +206,36 @@ PyTorch backend uses distributed execution with `torchrun` and `run_mlperf_mpi.p
188206

189207
### MLPerf Command Line Options
190208

191-
| Option | Description | Default |
192-
| -------------- | ------------------------------ | ---------------- |
193-
| `--mode` | Scenario mode (offline/server) | `offline` |
194-
| `--accuracy` | Run accuracy test | `False` |
195-
| `--output-dir` | Output directory for results | `mlperf_results` |
209+
| Option | Description | Default |
210+
| -------------- | ------------------------------------------ | ---------------- |
211+
| `--mode` | Scenario mode (offline/server/interactive) | `offline` |
212+
| `--accuracy` | Run accuracy test | `False` |
213+
| `--output-dir` | Output directory for results | `mlperf_results` |
196214

197215
### Backend Support Matrix
198216

199217
The following table shows which backends support different evaluation and MLPerf operations:
200218

201-
| Backend | `run_eval.py` | `run_mlperf.py --mode=offline` | `run_mlperf.py --mode=server` |
202-
| ----------- | ------------- | ------------------------------ | ----------------------------- |
203-
| pytorch-fp8 | x | x | |
204-
| vllm-fp8 | x | x | |
205-
| sglang-fp8 | x | x | x |
219+
| Backend | `run_eval.py` | `run_mlperf.py --mode=offline` | `run_mlperf.py --mode=server` | `run_mlperf.py --mode=interactive` |
220+
| ----------- | ------------- | ------------------------------ | ----------------------------- | ---------------------------------- |
221+
| pytorch-fp8 | x | x | | |
222+
| vllm-fp8 | x | x | | |
223+
| sglang-fp8 | x | x | x | x |
206224

207225
> **Note**: For PyTorch backend, use the `_mpi` versions with `torchrun`. For vLLM and SGLang backends, use the single-process versions without `_mpi`.
208226
227+
## Speculative Decoding
228+
229+
For the DeepSeek-R1 Interactive Scenario, users can enable Speculative Decoding Optimization for the SGLANG Backend by setting the `enable_speculative_decode` flag to `True` in `language/deepseek-r1/utils/backend_registry.py`.
230+
231+
When Enabled, SGLANG backend will run the allowed configuration as per [Inference Policies](https://github.com/mlcommons/inference_policies/blob/master/inference_rules.adoc) (appendix-speculative-decoding):
232+
233+
| Benchmark | Scenario | Speculative Decoding Algorithm | Configuration | MTP Head |
234+
| :---------- | :---------- | :--------------------------------------------------------- | :------------------------------------------------------ | :--------------------------------------------- |
235+
| DeepSeek-r1 | Interactive | EAGLE-style decoding with deepseek-ai/deepseek-r1 MTP head | `speculative-num-steps=3`, `speculative-eagle-topk=1.0` | https://huggingface.co/deepseek-ai/DeepSeek-R1 |
236+
237+
> Note: ONLY Sglang backend supports speculative-decoding
238+
209239
## Accuracy Evaluation
210240

211241
**Using MLCFlow Automation**

0 commit comments

Comments
 (0)