Skip to content

Commit

Permalink
Merge pull request #48 from GATEOverflow/dev
Browse files Browse the repository at this point in the history
Updated Architectural Diagram
  • Loading branch information
arjunsuresh authored Feb 2, 2025
2 parents 139ac7e + 1300326 commit 19a761d
Showing 1 changed file with 63 additions and 32 deletions.
95 changes: 63 additions & 32 deletions README.md
Original file line number Diff line number Diff line change
Expand Up @@ -2,7 +2,11 @@

[![License](https://img.shields.io/badge/License-Apache%202.0-green)](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)
[![MLC script automation features test](https://github.com/mlcommons/mlperf-automations/actions/workflows/test-mlc-script-features.yml/badge.svg?cache-bust=1)](https://github.com/mlcommons/mlperf-automations/actions/workflows/test-mlc-script-features.yml)
[![MLPerf inference resnet50](https://github.com/mlcommons/mlcflow/actions/workflows/mlperf-inference-resnet50.yml/badge.svg)](https://github.com/mlcommons/mlcflow/actions/workflows/mlperf-inference-resnet50.yml)
[![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.
Expand Down Expand Up @@ -60,34 +64,52 @@ Each target has its own set of specific actions to tailor automation workflows a

## CM compatibility layer

MLC has a compatibility layer where by it supports MLCommons CM automations - Script, Cache and Experiment.
MLC started with a compatibility layer where by it supported MLCommons CM automations - Script, Cache and Experiment. Now, MLCFLow has just the Script Automation which is an extension of the Script Automation from CM but with a cleaner integration of Cache Automation and Docker and Test extensions. The old CM scripts are now updated with the latest MLCFlow scripts in the [MLPerf Automations](https://github.com/mlcommons/mlperf-automations/tree/main/script) repository.

## Architectural Diagram

```mermaid
classDiagram
class Action {
-repos_path : str
-cfg : dict
-repos : list
+execute(args)
+access(options)
+asearch(i)
+find_target_folder(target)
+load_repos_and_meta()
+load_repos()
+conflicting_repo(repo_meta)
+register_repo(repo_meta)
+unregister_repo(repo_path)
+add(i)
+rm(i)
+save_new_meta(i, item_id, item_name, target_name, item_path, repo)
+update(i)
+is_uid(name)
+cp(run_args)
+copy_item(source_path, destination_path)
+search(i)
}
class RepoAction {
+find(run_args)
+github_url_to_user_repo_format(url)
+pull(args)
+list(args)
+pull_repo(repo_url, branch, checkout)
+pull(run_args)
+list(run_args)
+rm(run_args)
}
class ScriptAction {
+run(args)
+search(i)
+rm(i)
+dynamic_import_module(script_path)
+call_script_module_function(function_name, run_args)
+docker(run_args)
+run(run_args)
+test(run_args)
+list(args)
}
class CacheAction {
+show(args)
+search(i)
+find(i)
+rm(i)
+show(run_args)
+list(args)
}
class ExperimentAction {
Expand All @@ -96,38 +118,47 @@ classDiagram
}
class CfgAction {
+load(args)
+unload(args)
}
class Index {
+add(meta, folder_type, path, repo)
+get_index(folder_type, uid)
+update(meta, folder_type, path, repo)
+rm(meta, folder_type, path)
+build_index()
}
class Item {
+meta
+path
+repo
+_load_meta()
}
class Repo {
-path : str
-meta : dict
+path
+meta
+_load_meta()
}
class Automation {
-cmind : Action
+execute(args)
}
class Index {
+find()
+action_object
+automation_type
+meta
+path
+_load_meta()
+search(i)
}
Action <|-- RepoAction
Action <|-- ScriptAction
Action <|-- CacheAction
Action <|-- ExperimentAction
Action <|-- CfgAction
Repo "1" *-- Action
Automation "1" *-- Action
class get_action {
+actions : dict
+get_action(target)
}
main --> get_action
get_action --> RepoAction
get_action --> ScriptAction
get_action --> CacheAction
get_action --> ExperimentAction
get_action --> CfgAction
RepoAction o-- Repo
ScriptAction o-- Automation
CacheAction o-- Index
ExperimentAction o-- Index
CfgAction o-- Index
Index o-- Repo
Index o-- Item
Item o-- Repo
Automation o-- Action
```

0 comments on commit 19a761d

Please sign in to comment.