Skip to content

Commit 7598e02

Browse files
authored
Merge pull request #591 from mlcommons/dev
Update main with dev
2 parents af601e9 + d2bbc46 commit 7598e02

File tree

11 files changed

+575
-558
lines changed

11 files changed

+575
-558
lines changed

CALL_FOR_SUBMISSIONS.md

Lines changed: 28 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,3 +1,30 @@
11
# MLCommons™ AlgoPerf: Call for Submissions
22

3-
🚧 **Coming soon!** 🚧
3+
## Announcing the AlgoPerf: Training Algorithms Benchmark Competition
4+
5+
Neural networks must be trained to be useful. However, training is a resource-intensive task, often demanding extensive compute and energy resources.
6+
To promote faster training algorithms, the [MLCommons® Algorithms Working Group](https://mlcommons.org/en/groups/research-algorithms/) is delighted to present the **AlgoPerf: Training Algorithms** benchmark. This benchmark competition is designed to measure neural network training speedups due to *algorithmic improvements*. We welcome submissions that implement both novel and existing training algorithms, including, but not limited to:
7+
8+
- Optimizer update rules
9+
- Hyperparameter tuning protocols, search spaces, or schedules
10+
- Data sampling strategies
11+
12+
Submissions can compete under two hyperparameter tuning rulesets (with separate prizes and awards): an external tuning ruleset meant to simulate tuning with a fixed amount of parallel resources, or a self-tuning ruleset for hyperparameter-free algorithms.
13+
14+
## Dates
15+
16+
- **Call for submissions: November 28th, 2023**
17+
- Registration deadline to express non-binding intent to submit: January 28th, 2024
18+
- **Submission deadline: March 28th, 2024**
19+
- **Deadline for self-reporting preliminary results: May 28th, 2024**
20+
- [tentative] Announcement of all results: July 15th, 2024
21+
22+
For a detailed and up-to-date timeline see the [Competition Rules](/COMPETITION_RULES.md).
23+
24+
## Participation
25+
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).
27+
28+
## Prize Money & Funding
29+
30+
MLCommons has provided a total of $50,000 in prize money for eligible winning submissions. We would also like to express our gratitude to Google for their generous support in providing computational resources to score the top submissions, and resources to help score some promising submissions from submitters with more limited resources.

CHANGELOG.md

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,5 @@
1-
# Change log
1+
# Change Log
22

3-
## TODO: algorithmic-efficiency 0.1.0
3+
## [0.1.0] - 2023-11-21
44

5-
First release of AlgoPerf benchmarking code.
5+
First release of the AlgoPerf: Training algorithms benchmarking code.

COMPETITION_RULES.md

Lines changed: 131 additions & 0 deletions
Large diffs are not rendered by default.

CONTRIBUTING.md

Lines changed: 25 additions & 23 deletions
Original file line numberDiff line numberDiff line change
@@ -2,15 +2,16 @@
22

33
## Table of Contents <!-- omit from toc -->
44

5-
- [Setup](#setup)
5+
- [Contributing to MLCommons](#contributing-to-mlcommons)
6+
- [Setup for Contributing](#setup-for-contributing)
67
- [Setting up a Linux VM on GCP](#setting-up-a-linux-vm-on-gcp)
78
- [Installing GPU Drivers](#installing-gpu-drivers)
89
- [Authentication for Google Cloud Container Registry](#authentication-for-google-cloud-container-registry)
910
- [Installation](#installation)
10-
- [Docker workflows](#docker-workflows)
11+
- [Docker Workflows](#docker-workflows)
1112
- [Pre-built Images on Google Cloud Container Registry](#pre-built-images-on-google-cloud-container-registry)
12-
- [Trigger rebuild and push of maintained images](#trigger-rebuild-and-push-of-maintained-images)
13-
- [Trigger build and push of images on other branch](#trigger-build-and-push-of-images-on-other-branch)
13+
- [Trigger Rebuild and Push of Maintained Images](#trigger-rebuild-and-push-of-maintained-images)
14+
- [Trigger Build and Push of Images on Other Branch](#trigger-build-and-push-of-images-on-other-branch)
1415
- [GCP Data and Experiment Integration](#gcp-data-and-experiment-integration)
1516
- [Downloading Data from GCP](#downloading-data-from-gcp)
1617
- [Saving Experiments to GCP](#saving-experiments-to-gcp)
@@ -19,10 +20,12 @@
1920
- [Submitting PRs](#submitting-prs)
2021
- [Testing](#testing)
2122
- [Style Testing](#style-testing)
22-
- [Unit and integration tests](#unit-and-integration-tests)
23-
- [Regression tests](#regression-tests)
23+
- [Unit and Integration Tests](#unit-and-integration-tests)
24+
- [Regression Tests](#regression-tests)
2425

25-
We invite everyone to look through our rules 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.
26+
## Contributing to MLCommons
27+
28+
We invite everyone to look through our technical documentation and codebase and submit issues and pull requests, e.g. for 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.
2629

2730
The best way to contribute to the MLCommons is to get involved with one of our many project communities. You find more information about getting involved with MLCommons [here](https://mlcommons.org/en/get-involved/#getting-started).
2831

@@ -32,7 +35,7 @@ To get started contributing code, you or your organization needs to sign the MLC
3235

3336
MLCommons project work is tracked with issue trackers and pull requests. Modify the project in your own fork and issue a pull request once you want other developers to take a look at what you have done and discuss the proposed changes. Ensure that cla-bot and other checks pass for your Pull requests.
3437

35-
## Setup
38+
## Setup for Contributing
3639

3740
### Setting up a Linux VM on GCP
3841

@@ -51,7 +54,7 @@ Use the gcloud credential helper as documented [here](https://cloud.google.com/a
5154

5255
## Installation
5356

54-
If you have not installed the package and dependencies yet see [Installation](./README.md#installation).
57+
If you have not installed the package and dependencies yet see [Installation](/README.md#installation).
5558

5659
To use the development tools such as `pytest` or `pylint` use the `dev` option:
5760

@@ -62,14 +65,14 @@ pre-commit install
6265

6366
To get an installation with the requirements for all workloads and development, use the argument `[full_dev]`.
6467

65-
## Docker workflows
68+
## Docker Workflows
6669

6770
We recommend developing in our Docker image to ensure a consistent environment between developing, testing and scoring submissions.
6871

6972
To get started see also:
7073

71-
- [Installation with Docker](./README.md#docker)
72-
- [Running a submission inside a Docker Container](./getting_started.md#run-your-submission-in-a-docker-container)
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)
7376

7477
### Pre-built Images on Google Cloud Container Registry
7578

@@ -100,15 +103,15 @@ Currently maintained images on the repository are:
100103
To reference the pulled image you will have to use the full `image_path`, e.g.
101104
`us-central1-docker.pkg.dev/training-algorithms-external/mlcommons-docker-repo/algoperf_jax_main`.
102105

103-
### Trigger rebuild and push of maintained images
106+
### Trigger Rebuild and Push of Maintained Images
104107

105108
To build and push all images (`pytorch`, `jax`, `both`) on maintained branches (`dev`, `main`).
106109

107110
```bash
108111
bash docker/build_docker_images.sh -b <branch>
109112
```
110113

111-
#### Trigger build and push of images on other branch
114+
#### Trigger Build and Push of Images on Other Branch
112115

113116
You can also use the above script to build images from a different branch.
114117

@@ -121,9 +124,7 @@ You can also use the above script to build images from a different branch.
121124

122125
### GCP Data and Experiment Integration
123126

124-
The Docker entrypoint script can transfer data to and from
125-
our GCP buckets on our internal GCP project. If
126-
you are an approved contributor you can get access to these resources to automatically download the datasets and upload experiment results.
127+
The Docker entrypoint script can transfer data to and from our GCP buckets on our internal GCP project. If you are an approved contributor you can get access to these resources to automatically download the datasets and upload experiment results.
127128
You can use these features by setting the `--internal_contributor` flag to 'true' for the Docker entrypoint script.
128129

129130
### Downloading Data from GCP
@@ -216,7 +217,7 @@ New PRs will be merged on the dev branch by default, given that they pass the pr
216217

217218
## Testing
218219

219-
We run tests with GitHub Actions, configured in the [.github/workflows](https://github.com/mlcommons/algorithmic-efficiency/tree/main/.github/workflows) folder.
220+
We run tests with GitHub Actions, configured in the [.github/workflows](.github/workflows/) folder.
220221

221222
### Style Testing
222223

@@ -253,14 +254,15 @@ pylint submission_runner.py
253254
pylint tests
254255
```
255256

256-
## Unit and integration tests
257-
We run unit tests and integration tests as part of the of github actions as well.
257+
### Unit and Integration Tests
258+
259+
We run unit tests and integration tests as part of the of github actions as well.
258260
You can also use `python tests/reference_algorithm_tests.py` to run a single model update and two model evals for each workload using the reference algorithm in `reference_algorithms/target_setting_algorithms/`.
259261

260-
### Regression tests
262+
### Regression Tests
261263

262-
We also have regression tests available in [.github/workflows/regression_tests.yml](https://github.com/mlcommons/algorithmic-efficiency/tree/main/.github/workflows/regression_tests.yml) that can be run semi-automatically.
263-
The regression tests are shorter end-to-end submissions run in a containerized environment across all 8 workloads, in both the jax and pytorch frameworks.
264+
We also have regression tests available in [.github/workflows/regression_tests.yml](.github/workflows/regression_tests.yml) that can be run semi-automatically.
265+
The regression tests are shorter end-to-end submissions run in a containerized environment across all 8 workloads, in both the JAX and PyTorch frameworks.
264266
The regression tests run on self-hosted runners and are triggered for pull requests that target the main branch. Typically these PRs will be from the `dev` branch
265267
so the tests will run containers based on images build from the `dev` branch.
266268
To run a regression test:

0 commit comments

Comments
 (0)