Skip to content

Commit

Permalink
Merge pull request #75 from anandhu-eng/docs
Browse files Browse the repository at this point in the history
Add documentation website for MLCFlow
  • Loading branch information
arjunsuresh authored Feb 10, 2025
2 parents f4b03f0 + fbef40e commit 2fecdb0
Show file tree
Hide file tree
Showing 10 changed files with 428 additions and 3 deletions.
31 changes: 31 additions & 0 deletions .github/workflows/publish.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,31 @@
name: Publish MLCFlow documentation site


on:
release:
types: [published]
push:
branches:
- main
- dev

jobs:

publish:
name: Publish the site
runs-on: ubuntu-latest

steps:
- name: Checkout repository normally
uses: actions/checkout@v3

- name: Set up Python
uses: actions/setup-python@v4
with:
python-version: "3.11"

- name: Install Mkdocs
run: pip install -r docs/requirements.txt

- name: Run Mkdocs deploy
run: mkdocs gh-deploy --force
6 changes: 3 additions & 3 deletions README.md
Original file line number Diff line number Diff line change
@@ -1,6 +1,6 @@
**MLCFlow: Simplifying MLPerf Automations**

[![License](https://img.shields.io/badge/License-Apache%202.0-green)](LICENSE.md)
[![License](https://img.shields.io/badge/License-Apache%202.0-green)](https://github.com/mlcommons/mlcflow/blob/main/LICENSE.md)
[![Downloads](https://static.pepy.tech/badge/mlcflow)](https://pepy.tech/project/mlcflow)

[![MLC core actions test](https://github.com/mlcommons/mlcflow/actions/workflows/test-mlc-core-actions.yaml/badge.svg)](https://github.com/mlcommons/mlcflow/actions/workflows/test-mlc-core-actions.yaml)
Expand All @@ -9,11 +9,11 @@
[![MLPerf inference bert (deepsparse, tf, onnxruntime, pytorch)](https://github.com/mlcommons/mlcflow/actions/workflows/mlperf-inference-bert.yml/badge.svg)](https://github.com/mlcommons/mlcflow/actions/workflows/mlperf-inference-bert.yml)


MLCFlow is a versatile CLI and Python interface developed by MLCommons in collaboration with a dedicated team of volunteers (see [Contributors](CONTRIBUTORS.md)). It serves as a streamlined replacement for the [CMind](https://github.com/mlcommons/ck/tree/master/cm) tool, designed to drive the automation workflows of MLPerf benchmarks more efficiently.
MLCFlow is a versatile CLI and Python interface developed by MLCommons in collaboration with a dedicated team of volunteers (see [Contributors](https://github.com/mlcommons/mlcflow/blob/main/CONTRIBUTORS.md)). It serves as a streamlined replacement for the [CMind](https://github.com/mlcommons/ck/tree/master/cm) tool, designed to drive the automation workflows of MLPerf benchmarks more efficiently.

The concept behind CMind originated from **Grigori Fursin**, while the **MLPerf Automations** project was created by **Grigori Fursin** and **Arjun Suresh**, whose collective contributions laid the foundation for modernizing MLPerf benchmarking tools.

On February 9, 2025, MLCFlow is releasing its first stable version, 1.0.0. This milestone was led by **Arjun Suresh** and **Anandhu Sooraj**, with support from the [MLCFlow community](CONTRIBUTORS.md).
On February 9, 2025, MLCFlow is releasing its first stable version, 1.0.0. This milestone was led by **Arjun Suresh** and **Anandhu Sooraj**, with support from the [MLCFlow community](https://github.com/mlcommons/mlcflow/blob/main/CONTRIBUTORS.md).

### Key Features
Building upon the core idea of CMind—wrapping native scripts with Python wrappers and YAML metadata—MLCFlow focuses exclusively on key automation components: **Scripts**, along with its complementary modules: **Cache**, **Docker**, and **Experiments**. This targeted design simplifies both implementation and interface, enabling a more user-friendly experience.
Expand Down
1 change: 1 addition & 0 deletions docs/README.md
6 changes: 6 additions & 0 deletions docs/img/logo_v2.svg
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
33 changes: 33 additions & 0 deletions docs/install/install.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,33 @@
---
hide:
- toc
---

# Installation

MLCFlow needs `python>=3.7`, `python3-pip` installed on your system.

## Activate a Virtual ENV for MLCFlow (Optional)
This step is not mandatory. But the latest `pip` install requires this or else will need the `--break-system-packages` flag while installing.

```bash
python3 -m venv mlcflow
source mlcflow/bin/activate
```

## Install MLCFLow
=== "Use the latest stable release"
```bash
pip install mlcflow
```
=== "To use mlcflow with latest changes"
Fetches the latest changes developers are working on from the `dev` branch.
```bash
pip install git+https://github.com/mlcommons/mlcflow.git@dev
```

Now, you are ready to use the `mlc` commands. Currently, `mlc` is being used to automating the benchmark runs for:

* [MLCOMMONS MLPerf Inference](https://docs.mlcommons.org/inference/)
* [MLCOMMONS MLPerf Automotive]()
* [MLCOMMONS MLPerf Training]()
6 changes: 6 additions & 0 deletions docs/requirements.txt
Original file line number Diff line number Diff line change
@@ -0,0 +1,6 @@
mkdocs-material
swagger-markdown
mkdocs-macros-plugin
ruamel.yaml
mkdocs-redirects
mkdocs-site-urls
50 changes: 50 additions & 0 deletions docs/targets/cache/index.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,50 @@
# Cache

Currently, the following actions are supported for cache:

## Find

`find` action is used to list the path of the cache generated while running scripts through MLC.

**Syntax**

```bash
mlc find cache --tags=<list_of_tags_used_while_running_script>
```

Examples of `find` action for `cache` target could be found inside the GitHub action workflow [here](https://github.com/mlcommons/mlcflow/blob/d0269b47021d709e0ffa7fe0db8c79635bfd9dff/.github/workflows/test-mlc-core-actions.yaml).



## Show

`show` action is used to list the path and meta data of the cache generated while running scripts through MLC.

**Syntax**

```bash
mlc show cache --tags=<list_of_tags_used_while_running_script>
```

Examples of `show` action for `cache` target could be found inside the GitHub action workflow [here](https://github.com/mlcommons/mlcflow/blob/d0269b47021d709e0ffa7fe0db8c79635bfd9dff/.github/workflows/test-mlc-core-actions.yaml).

## Rm

`rm` action is used to remove one/more caches generated while running scripts through MLC.

**Syntax**

```bash
mlc rm cache --tags=<list_of_tags_used_while_running_script>
```

A user could delete the entire generated caches through the following command:

```bash
mlc rm cache
```

`-f` could be used to force remove caches. Without `-f`, user would be prompted for confirmation to delete a cache.

Examples of `rm` action for `cache` target could be found inside the GitHub action workflow [here](https://github.com/mlcommons/mlcflow/blob/d0269b47021d709e0ffa7fe0db8c79635bfd9dff/.github/workflows/test-mlc-core-actions.yaml).

93 changes: 93 additions & 0 deletions docs/targets/repo/index.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,93 @@
# Repo

Currently, the following actions are supported for repos:

## Add

`add` action is used to create a new MLC repo and register in MLCFlow. The newly created repo folder would be present inside the `repos` folder present inside the parent `MLC` folder.

**Syntax**

```bash
mlc add repo <repo_name/github_link>
```

Examples of `add` action for `repo` target could be found inside the GitHub action workflow [here](https://github.com/mlcommons/mlcflow/blob/d0269b47021d709e0ffa7fe0db8c79635bfd9dff/.github/workflows/test-mlc-core-actions.yaml).

## Find

`find` action is used to get the path of a particular repository registered in MLCFlow.

**Syntax**

```bash
mlc find repo <repo_owner@repo_name>
```

OR

```bash
mlc find repo <repo_url>
```

OR

```bash
mlc find repo <repo_uid>
```

OR

```bash
mlc find repo <repo_alias>
```

OR

```bash
mlc find repo <repo_alias>,<repo_uid>
```

Examples of `find` action for `repo` target could be found inside the GitHub action workflow [here](https://github.com/mlcommons/mlcflow/blob/d0269b47021d709e0ffa7fe0db8c79635bfd9dff/.github/workflows/test-mlc-core-actions.yaml).

## Pull

`pull` action is used to clone a MLC repo and register in MLC.

**Syntax**

```bash
mlc pull repo <repo_owner>@<repo_name>
```

OR

```bash
mlc pull repo <repo_urll>
```

`--checkout` could be added if an user needs to checkout to a specific branch after cloning.

Examples of `pull` action for `repo` target could be found inside the GitHub action workflow [here](https://github.com/mlcommons/mlcflow/blob/d0269b47021d709e0ffa7fe0db8c79635bfd9dff/.github/workflows/test-mlc-core-actions.yaml).

## List

`list` action is used to list the alias and path of the MLC repos registered in MLC.

**Syntax**

```bash
mlc list repo
```
Example of `list` action for `repo` target could be found inside the GitHub action workflow [here](https://github.com/mlcommons/mlcflow/blob/d0269b47021d709e0ffa7fe0db8c79635bfd9dff/.github/workflows/test-mlc-core-actions.yaml).

## Rm (Remove)

`rm` action is used to remove the specified repo registered in MLC.

**Syntax**

```bash
mlc rm repo <repo_owner>@<repo_name>
```
Example of `rm` action for `repo` target could be found inside the GitHub action workflow [here](https://github.com/mlcommons/mlcflow/blob/d0269b47021d709e0ffa7fe0db8c79635bfd9dff/.github/workflows/test-mlc-core-actions.yaml).
Loading

0 comments on commit 2fecdb0

Please sign in to comment.