Skip to content

Commit f06d2b1

Browse files
committed
Move docs to separate folder
1 parent 35196a3 commit f06d2b1

File tree

10 files changed

+482
-455
lines changed

10 files changed

+482
-455
lines changed

README.md

Lines changed: 13 additions & 13 deletions
Original file line numberDiff line numberDiff line change
@@ -7,11 +7,11 @@
77

88
<p align="center">
99
<a href="https://arxiv.org/abs/2306.07179" target="_blank">Paper (arXiv)</a> •
10-
<a href="/CALL_FOR_SUBMISSIONS.md">Call for Submissions</a> •
11-
<a href="/GETTING_STARTED.md">Getting Started</a> •
12-
<a href="/COMPETITION_RULES.md">Competition Rules</a> •
13-
<a href="/DOCUMENTATION.md">Documentation</a> •
14-
<a href="/CONTRIBUTING.md">Contributing</a>
10+
<a href="/docs/CALL_FOR_SUBMISSIONS.md">Call for Submissions</a> •
11+
<a href="/docs/GETTING_STARTED.md">Getting Started</a> •
12+
<a href="/docs/COMPETITION_RULES.md">Competition Rules</a> •
13+
<a href="/docs/DOCUMENTATION.md">Documentation</a> •
14+
<a href="/docs/CONTRIBUTING.md">Contributing</a>
1515
</p>
1616

1717
[![CI](https://github.com/mlcommons/algorithmic-efficiency/actions/workflows/CI.yml/badge.svg)](https://github.com/mlcommons/algorithmic-efficiency/actions/workflows/CI.yml)
@@ -22,7 +22,7 @@
2222

2323
---
2424

25-
> *AlgoPerf* is a suite of benchmarks and competitions to measure neural network training speedups due to algorithmic improvements in both training algorithms and models. This is the repository for the *AlgoPerf: Training Algorithms benchmark* and its associated competition. It is developed by the [MLCommons Algorithms Working Group](https://mlcommons.org/en/groups/research-algorithms/). This repository holds the [**competition rules**](/COMPETITION_RULES.md), the [**technical documentation**](/DOCUMENTATION.md) of the benchmark, [**getting started guides**](/GETTING_STARTED.md), and the benchmark code. For a detailed description of the benchmark design, see our [**paper**](https://arxiv.org/abs/2306.07179).
25+
> *AlgoPerf* is a suite of benchmarks and competitions to measure neural network training speedups due to algorithmic improvements in both training algorithms and models. This is the repository for the *AlgoPerf: Training Algorithms benchmark* and its associated competition. It is developed by the [MLCommons Algorithms Working Group](https://mlcommons.org/en/groups/research-algorithms/). This repository holds the [**competition rules**](/docs/COMPETITION_RULES.md), the [**technical documentation**](/docs/DOCUMENTATION.md) of the benchmark, [**getting started guides**](/docs/GETTING_STARTED.md), and the benchmark code. For a detailed description of the benchmark design, see our [**paper**](https://arxiv.org/abs/2306.07179).
2626
2727
---
2828

@@ -45,9 +45,9 @@
4545
> [!TIP]
4646
> **If you have any questions about the benchmark competition or you run into any issues, please feel free to contact us.** Either [file an issue](https://github.com/mlcommons/algorithmic-efficiency/issues), ask a question on [our Discord](https://discord.gg/5FPXK7SMt6) or [join our weekly meetings](https://mlcommons.org/en/groups/research-algorithms/).
4747
48-
You can install this package and dependencies in a [Python virtual environment](/GETTING_STARTED.md#python-virtual-environment) or use a [Docker/Singularity/Apptainer container](/GETTING_STARTED.md#docker) (recommended).
48+
You can install this package and dependencies in a [Python virtual environment](/docs/GETTING_STARTED.md#python-virtual-environment) or use a [Docker/Singularity/Apptainer container](/docs/GETTING_STARTED.md#docker) (recommended).
4949
We recommend using a Docker container (or alternatively, a Singularity/Apptainer container) to ensure a similar environment to our scoring and testing environments.
50-
Both options are described in detail in the [**Getting Started**](/GETTING_STARTED.md) document.
50+
Both options are described in detail in the [**Getting Started**](/docs/GETTING_STARTED.md) document.
5151

5252
*TL;DR to install the Jax version for GPU run:*
5353

@@ -67,7 +67,7 @@ pip3 install -e '.[full]'
6767

6868
## Getting Started
6969

70-
For detailed instructions on developing and scoring your own algorithm in the benchmark see the [Getting Started](/GETTING_STARTED.md) document.
70+
For detailed instructions on developing and scoring your own algorithm in the benchmark see the [Getting Started](/docs/GETTING_STARTED.md) document.
7171

7272
*TL;DR running a JAX workload:*
7373

@@ -95,21 +95,21 @@ python3 submission_runner.py \
9595

9696
## Call for Submissions
9797

98-
The [Call for Submissions](/CALL_FOR_SUBMISSIONS.md) announces the first iteration of the AlgoPerf: Training Algorithms competition based on the benchmark by the same name. This document also contains the schedule and key dates for the competition.
98+
The [Call for Submissions](/docs/CALL_FOR_SUBMISSIONS.md) announces the first iteration of the AlgoPerf: Training Algorithms competition based on the benchmark by the same name. This document also contains the schedule and key dates for the competition.
9999

100100
### Competition Rules
101101

102-
The competition rules for the *AlgoPerf: Training Algorithms* competition can be found in the separate [**Competition Rules**](/COMPETITION_RULES.md) document.
102+
The competition rules for the *AlgoPerf: Training Algorithms* competition can be found in the separate [**Competition Rules**](/docs/COMPETITION_RULES.md) document.
103103

104104
### Technical Documentation of the Benchmark & FAQs
105105

106-
We provide additional technical documentation of the benchmark and answer frequently asked questions in a separate [**Documentation**](/DOCUMENTATION.md) page. Suggestions, clarifications and questions can be raised via pull requests, creating an issue, or by sending an email to the [working group](mailto:[email protected]).
106+
We provide additional technical documentation of the benchmark and answer frequently asked questions in a separate [**Documentation**](/docs/DOCUMENTATION.md) page. Suggestions, clarifications and questions can be raised via pull requests, creating an issue, or by sending an email to the [working group](mailto:[email protected]).
107107

108108
## Contributing
109109

110110
We invite everyone to look through our rules, documentation, and codebase and submit issues and pull requests, e.g. for rules changes, clarifications, or any bugs you might encounter. If you are interested in contributing to the work of the working group and influence the benchmark's design decisions, please [join the weekly meetings](https://mlcommons.org/en/groups/research-algorithms/) and consider becoming a member of the working group.
111111

112-
Our [**Contributing**](/CONTRIBUTING.md) document provides further MLCommons contributing guidelines and additional setup and workflow instructions.
112+
Our [**Contributing**](/docs/CONTRIBUTING.md) document provides further MLCommons contributing guidelines and additional setup and workflow instructions.
113113

114114
## License
115115

datasets/README.md

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -45,7 +45,7 @@ Some dataset setups will require you to sign a third-party agreement with the da
4545

4646
If you are running the `dataset_setup.py` script from a Docker container, please
4747
make sure the data directory is mounted to a directory on your host with
48-
`-v` flag. If you are following instructions from the [Getting Started guide](/GETTING_STARTED.md) you will have used
48+
`-v` flag. If you are following instructions from the [Getting Started guide](/docs/GETTING_STARTED.md) you will have used
4949
the `-v $HOME/data:/data` flag in the `docker run` command. This will mount
5050
the `$HOME/data` directory to the `/data` directory in the container.
5151
In this case set, `--data_dir` to `/data`.

CALL_FOR_SUBMISSIONS.md renamed to docs/CALL_FOR_SUBMISSIONS.md

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -19,11 +19,11 @@ Please fill out the (mandatory but non-binding) [**registration form**](https://
1919
- **Submission deadline: April 04th, 2024** *(moved by a week from the initial March 28th, 2024)*
2020
- [Announcement of all results](https://mlcommons.org/2024/08/mlc-algoperf-benchmark-competition/): August 1st, 2024
2121

22-
For a detailed and up-to-date timeline see the [Competition Rules](/COMPETITION_RULES.md).
22+
For a detailed and up-to-date timeline see the [Competition Rules](/docs/COMPETITION_RULES.md).
2323

2424
## Participation
2525

26-
For details on how to participate in the competition, please refer to our [Competition Rules](/COMPETITION_RULES.md). To learn more about the benchmark, see our [technical documentation](/DOCUMENTATION.md). The benchmark is further motivated, explained, and justified in the accompanying [paper](https://arxiv.org/abs/2306.07179). We require all submissions to be provided under the open-source [Apache 2.0 license](https://www.apache.org/licenses/LICENSE-2.0).
26+
For details on how to participate in the competition, please refer to our [Competition Rules](/docs/COMPETITION_RULES.md). To learn more about the benchmark, see our [technical documentation](/docs/DOCUMENTATION.md). The benchmark is further motivated, explained, and justified in the accompanying [paper](https://arxiv.org/abs/2306.07179). We require all submissions to be provided under the open-source [Apache 2.0 license](https://www.apache.org/licenses/LICENSE-2.0).
2727

2828
## Prize Money & Funding
2929

File renamed without changes.

CONTRIBUTING.md renamed to docs/CONTRIBUTING.md

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -71,8 +71,8 @@ We recommend developing in our Docker image to ensure a consistent environment b
7171

7272
To get started see also:
7373

74-
- [Installation with Docker](/GETTING_STARTED.md#docker)
75-
- [Running a submission inside a Docker Container](/GETTING_STARTED.md#run-your-submission-in-a-docker-container)
74+
- [Installation with Docker](/docs/GETTING_STARTED.md#docker)
75+
- [Running a submission inside a Docker Container](/docs/GETTING_STARTED.md#run-your-submission-in-a-docker-container)
7676

7777
### Pre-built Images on Google Cloud Container Registry
7878

DOCUMENTATION.md renamed to docs/DOCUMENTATION.md

Lines changed: 6 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -65,7 +65,7 @@ The intention is that a training algorithm submission will be broadly applicable
6565

6666
### Competition Rules
6767

68-
For a description of the competition rules and how to submit a training algorithm to the AlgoPerf: Training Algorithms Benchmark, see the [Competition Rules](/COMPETITION_RULES.md), which details the entire competition process.
68+
For a description of the competition rules and how to submit a training algorithm to the AlgoPerf: Training Algorithms Benchmark, see the [Competition Rules](/docs/COMPETITION_RULES.md), which details the entire competition process.
6969

7070
### Submissions
7171

@@ -222,7 +222,6 @@ def update_params(
222222
- Cannot replace the model parameters with pre-trained ones.
223223
- Batch norm should work here because the `model_fn` will return updated batch norm moving averages when it is told to with `update_batch_norm`.
224224

225-
226225
###### Prepare for evaluation function
227226

228227
```python
@@ -278,7 +277,7 @@ def data_selection(
278277

279278
In general, with noisy, non-deterministic training, evaluation frequency can affect training time measurements as more "bites of the apple" potentially allows the training code to exploit instability. We also want to discourage submissions from complicated and unrealistic logic that attempts to guess when training is close to complete and increases the evaluation rate, while not producing a well-sampled training curve at the start of training. Simply allowing submissions complete freedom over evaluation frequency encourages competitors to work to minimize the number of evaluations, which distracts from the primary goal of finding better training algorithms.
280279

281-
Submissions are eligible for an untimed eval every `eval_period` seconds. Before proceeding to evaluation, the submission can prepare the model through a call to `prepare_for_eval`, effectively modifying the model parameters and state as well as the the optimizer state. Any additional evaluations performed by the submission code count against the runtime for scoring.
280+
Submissions are eligible for an untimed eval every `eval_period` seconds. Before proceeding to evaluation, the submission can prepare the model through a call to `prepare_for_eval`, effectively modifying the model parameters and state as well as the the optimizer state. Any additional evaluations performed by the submission code count against the runtime for scoring.
282281
The harness that runs the submission code will attempt to eval every `eval_period` seconds by checking between each submission step (call of `update_params`) whether it has been at least `eval_period` seconds since that last eval, if so, the submission is given the possibility to prepare for evaluation (through a timed call to `prepare_for_eval`). If the accumulated runtime does not exceed the maximum allowed runtime after the preparation step, the clock is paused, and the submission is evaluated. This means that if calls to `update_params` typically take a lot more than `eval_period` seconds, such submissions will not receive as many untimed evals as a submission that had an `update_params` function that took less time. However, for appropriate settings of `eval_period`, we expect this to be quite rare. Submissions are always free to restructure their `update_params` code to split work into two subsequent steps to regain the potential benefits of these untimed model evaluations. For each workload, the `eval_period` will be set such that the total evaluation time is roughly between 10% and 20% of the total training time for the target-setting runs.
283282

284283
#### Valid submissions
@@ -475,7 +474,7 @@ Our scoring procedure uses the held-out workloads only to penalize submissions t
475474

476475
NOTE: Submitters are no longer required to self-report results for AlgoPerf competition v0.5.
477476

478-
The qualification set is designed for submitters that may not have the compute resources to self-report on the full set of [fixed](#fixed-workloads) and [held-out workloads](#randomized-workloads). They may instead self-report numbers on this smaller qualification set. The best-performing submissions may then qualify for compute sponsorship offering a free evaluation on the full benchmark set and therefore the possibility to win [awards and prizes](/COMPETITION_RULES.md#prizes).
477+
The qualification set is designed for submitters that may not have the compute resources to self-report on the full set of [fixed](#fixed-workloads) and [held-out workloads](#randomized-workloads). They may instead self-report numbers on this smaller qualification set. The best-performing submissions may then qualify for compute sponsorship offering a free evaluation on the full benchmark set and therefore the possibility to win [awards and prizes](/docs/COMPETITION_RULES.md#prizes).
479478

480479
The qualification set consists of the same [fixed workloads](#fixed-workloads) as mentioned above, except for both workloads on *ImageNet*, both workloads on *LibriSpeech*, and the *fastMRI* workload. The remaining three workloads (*WMT*, *Criteo 1TB*, and *OGBG*) form the qualification set. There are no [randomized workloads](#randomized-workloads) in the qualification set. The qualification set of workloads aims to have a combined runtime of roughly 24 hours on the [benchmarking hardware](#benchmarking-hardware).
481480

@@ -585,7 +584,7 @@ GPUs with higher per GPU memory, please monitor your memory usage to make sure i
585584

586585
#### How do I run this on my SLURM cluster?
587586

588-
You may run into issues with `sudo` and `docker` on a SLURM cluster. To run the workloads in a SLURM cluster you can use Apptainer (previously Singularity), see this [section](/GETTING_STARTED.md#using-singularityapptainer-instead-of-docker).
587+
You may run into issues with `sudo` and `docker` on a SLURM cluster. To run the workloads in a SLURM cluster you can use Apptainer (previously Singularity), see this [section](/docs/GETTING_STARTED.md#using-singularityapptainer-instead-of-docker).
589588

590589
#### How can I run this on my AWS/GCP/Azure cloud project?
591590

@@ -627,13 +626,13 @@ You only have to use the benchmarking hardware for runs that are directly involv
627626

628627
NOTE: Submitters are no longer required to self-report results for AlgoPerf competition v0.5.
629628

630-
Submitters unable to self-fund scoring costs can instead self-report only on the [qualification set of workloads](/COMPETITION_RULES.md#qualification-set) that excludes some of the most expensive workloads. Based on this performance on the qualification set, the working group will provide - as funding allows - compute to evaluate and score the most promising submissions. Additionally, we encourage researchers to reach out to the [working group](mailto:[email protected]) to find potential collaborators with the resources to run larger, more comprehensive experiments for both developing and scoring submissions.
629+
Submitters unable to self-fund scoring costs can instead self-report only on the [qualification set of workloads](/docs/COMPETITION_RULES.md#qualification-set) that excludes some of the most expensive workloads. Based on this performance on the qualification set, the working group will provide - as funding allows - compute to evaluate and score the most promising submissions. Additionally, we encourage researchers to reach out to the [working group](mailto:[email protected]) to find potential collaborators with the resources to run larger, more comprehensive experiments for both developing and scoring submissions.
631630

632631
#### Can I submit previously published training algorithms as submissions?
633632

634633
Yes, you may, as long as it isn't an exact copy of an existing submission.
635634
For example, you may submit the Adam optimizer with your particularly effective hyperparameter search space and hyperparameter configuration, as different choices for hyperparameter values and/or search spaces constitute different training algorithms and are potential sources of innovation.
636-
That said, while submitting Adam with some novel heuristic to set various hyperparameters, some especially effective hyperparameter search space, or your single best hyperparameter configuration is fine, avoid making multiple submissions that only differ by their hyperparameter configuration without a convincing justification they are substantially different (see ["Can I submit multiple times to the benchmark competition?"](/COMPETITION_RULES.md#can-i-submit-multiple-times-to-the-benchmark-competition), above).
635+
That said, while submitting Adam with some novel heuristic to set various hyperparameters, some especially effective hyperparameter search space, or your single best hyperparameter configuration is fine, avoid making multiple submissions that only differ by their hyperparameter configuration without a convincing justification they are substantially different (see ["Can I submit multiple times to the benchmark competition?"](/docs/COMPETITION_RULES.md#can-i-submit-multiple-times-to-the-benchmark-competition), above).
637636

638637
## Disclaimers
639638

0 commit comments

Comments
 (0)