From bdeb0f440fc32c6b32ce7f20670a67d3af3bda87 Mon Sep 17 00:00:00 2001 From: Grigori Fursin Date: Sun, 10 Nov 2024 09:31:27 +0100 Subject: [PATCH 1/6] "dev" directory conflicts with "dev" branch - moved to docs --- CONTRIBUTING.md | 2 +- dev/common-paper/README.md | 1 - dev/reproducibility/README.md | 1 - {dev => docs}/meetings/20240731.md | 0 {dev => docs}/meetings/20240808.md | 0 5 files changed, 1 insertion(+), 3 deletions(-) delete mode 100644 dev/common-paper/README.md delete mode 100644 dev/reproducibility/README.md rename {dev => docs}/meetings/20240731.md (100%) rename {dev => docs}/meetings/20240808.md (100%) diff --git a/CONTRIBUTING.md b/CONTRIBUTING.md index 35f7a91bb3..de8b123bbb 100644 --- a/CONTRIBUTING.md +++ b/CONTRIBUTING.md @@ -62,7 +62,7 @@ listed here in alphabetical order: * Arun Tejusve Raghunath Rajan (Cruise) * Vijay Janapa Reddi (Harvard University) * Andrew Reusch (OctoML) -* Anandhu S (Kerala Technical University) +* Anandhu Sooraj (Kerala Technical University) * Sergey Serebryakov (HPE) * Warren Schultz (Principled Technologies) * Amrutha Sheleenderan (Kerala Technical University) diff --git a/dev/common-paper/README.md b/dev/common-paper/README.md deleted file mode 100644 index a0990367ef..0000000000 --- a/dev/common-paper/README.md +++ /dev/null @@ -1 +0,0 @@ -TBD diff --git a/dev/reproducibility/README.md b/dev/reproducibility/README.md deleted file mode 100644 index a0990367ef..0000000000 --- a/dev/reproducibility/README.md +++ /dev/null @@ -1 +0,0 @@ -TBD diff --git a/dev/meetings/20240731.md b/docs/meetings/20240731.md similarity index 100% rename from dev/meetings/20240731.md rename to docs/meetings/20240731.md diff --git a/dev/meetings/20240808.md b/docs/meetings/20240808.md similarity index 100% rename from dev/meetings/20240808.md rename to docs/meetings/20240808.md From 5540d76a5db21d4faec4a8b8f6947a20be18c220 Mon Sep 17 00:00:00 2001 From: Grigori Fursin Date: Sun, 10 Nov 2024 09:51:29 +0100 Subject: [PATCH 2/6] added pyproject.toml to install the CM automation framework --- CONTRIBUTING.md | 12 +++-- README.md | 11 +++-- cm/README.md | 6 +-- cm/dev/cmx/README.md | 6 --- cm/docs/cmx/README.md | 5 +- cm/pyproject.toml | 94 ++++++++++++++++++++++++++++++++++++++ cm/{setup.py => setup_.py} | 0 7 files changed, 116 insertions(+), 18 deletions(-) delete mode 100644 cm/dev/cmx/README.md create mode 100644 cm/pyproject.toml rename cm/{setup.py => setup_.py} (100%) diff --git a/CONTRIBUTING.md b/CONTRIBUTING.md index de8b123bbb..6a3e3574a9 100644 --- a/CONTRIBUTING.md +++ b/CONTRIBUTING.md @@ -14,11 +14,13 @@ Modify the project in your own fork and issue a pull request once you want other 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. -Collective Knowledge (CK) and Collective Mind (CM) were created by [Grigori Fursin](https://cKnowledge.org/gfursin), -sponsored by cKnowledge.org and cTuning.org, and donated to MLCommons to benefit everyone. -Since then, this open-source technology (CM, CM4MLOps, CM4ABTF, CM4Research, etc) -is being developed as a community effort thanks to all our volunteers, collaborators and contributors -listed here in alphabetical order: +Collective Knowledge (CK) and Collective Mind (CM) +were created by [Grigori Fursin](https://arxiv.org/abs/2406.16791), +sponsored by cKnowledge.org and cTuning.org, and donated to MLCommons +to benefit everyone. Since then, this open-source automation technology +(CM/CMX, CM4MLOps, CM4ABTF, CM4Research, etc) is being extended +as a community effort thanks to all our volunteers, collaborators +and contributors listed here in alphabetical order: * Resmi Arjun * Omar Benjelloun (Google) diff --git a/README.md b/README.md index 73de4e4cba..f0008b3dce 100755 --- a/README.md +++ b/README.md @@ -56,6 +56,11 @@ CK consists of several sub-projects: * Copyright (c) 2021-2024 MLCommons * Copyright (c) 2014-2021 cTuning foundation +### Maintainers + +* CM/CMX automation framework: [Grigori Fursin](https://cKnowledge.org/gfursin) +* CM4MLOps: [Arjun Suresh](https://github.com/arjunsuresh) and [Anandhu Sooraj](https://github.com/anandhu-eng) + ### Motivation and long-term vision You can learn more about the motivation behind these projects from the following articles and presentations: @@ -79,8 +84,8 @@ You can learn more about the motivation behind these projects from the following ### Acknowledgments -Collective Knowledge (CK) and Collective Mind (CM) were created by [Grigori Fursin](https://cKnowledge.org/gfursin), +The Collective Mind automation framework (CM) was created by [Grigori Fursin](https://cKnowledge.org/gfursin), sponsored by cKnowledge.org and cTuning.org, and donated to MLCommons to benefit everyone. -Since then, this open-source technology (CM, CM4MLOps, CM4MLPerf, CM4ABTF, CM4Research, etc) -is being developed as a community effort thanks to all our +This open-source technology (CM, CM4MLOps, CM4MLPerf, CM4ABTF, CM4Research, etc) +is being developed as a community effort thanks to all our fantastic [volunteers, collaborators and contributors](https://github.com/mlcommons/ck/blob/master/CONTRIBUTING.md)! diff --git a/cm/README.md b/cm/README.md index f5ae36387d..25766a0650 100644 --- a/cm/README.md +++ b/cm/README.md @@ -74,8 +74,8 @@ You can learn more about the motivation behind these projects from the following ### Acknowledgments -The Collective Mind framework (CM) was created by [Grigori Fursin](https://cKnowledge.org/gfursin), +The Collective Mind automation framework (CM) was created by [Grigori Fursin](https://cKnowledge.org/gfursin), sponsored by cKnowledge.org and cTuning.org, and donated to MLCommons to benefit everyone. -Since then, this open-source technology (CM, CM4MLOps, CM4MLPerf, CM4ABTF, CM4Research, etc) -is being developed as a community effort thanks to all our +This open-source technology (CM, CM4MLOps, CM4MLPerf, CM4ABTF, CM4Research, etc) +is being developed as a community effort thanks to all our fantastic [volunteers, collaborators and contributors](https://github.com/mlcommons/ck/blob/master/CONTRIBUTING.md)! diff --git a/cm/dev/cmx/README.md b/cm/dev/cmx/README.md deleted file mode 100644 index 09e623a353..0000000000 --- a/cm/dev/cmx/README.md +++ /dev/null @@ -1,6 +0,0 @@ -# Resolving tech. issues - -## Can't run CM console scripts - -`python setup.py install` is gradually deprecated and may result in failing console scripts. -Use `pip install .` instead. diff --git a/cm/docs/cmx/README.md b/cm/docs/cmx/README.md index b7880a55ef..5f54ce2759 100644 --- a/cm/docs/cmx/README.md +++ b/cm/docs/cmx/README.md @@ -1,6 +1,9 @@ # Collective Mind v3 aka CMX -We prototype the next generation of CM. +CMX is the next generation of the CM automation framework +being developed by [Grigori Fursin](https://cKnowledge.org/gfursin) +based on extensive feedback from CM users. + ## Documentation diff --git a/cm/pyproject.toml b/cm/pyproject.toml new file mode 100644 index 0000000000..7c6553e2ce --- /dev/null +++ b/cm/pyproject.toml @@ -0,0 +1,94 @@ +# Developer(s): Grigori Fursin + +[build-system] +build-backend = "setuptools.build_meta" +requires = ["setuptools"] + +[project] +name = "cmind" + +authors = [ + {name = "Grigori Fursin", email = "grigori.fursin@ctuning.org"} +] + +maintainers = [ + {name = "Grigori Fursin", email = "grigori.fursin@ctuning.org"} +] + +description = "Collective Mind automation framework (CM)" + +requires-python = ">=3.8" + +dependencies = [ + "pyyaml", + "requests", + "setuptools", + "wheel", + "giturlparse" +] + +keywords = [ + "cmind", + "cm", + "cmx", + "collective mind", + "automation", + "portability", + "reusability", + "mlops", + "devops", + "vmlops", + "api", + "cli" +] + +license = {text = "Apache 2.0"} + +classifiers = [ + "License :: OSI Approved :: Apache Software License", + "Operating System :: OS Independent", + "Programming Language :: Python :: 3.8", + "Programming Language :: Python :: 3.9", + "Programming Language :: Python :: 3.10", + "Programming Language :: Python :: 3.11", + "Programming Language :: Python :: 3.12", +] + +dynamic = ["readme", "version"] + +[tool.setuptools.dynamic] +readme = {file = "README.md", content-type = "text/markdown"} +version = {attr = "cmind.__version__"} + +[tool.setuptools] +zip-safe = false + +[tool.setuptools.package-data] +cmind = ["repo/*", + "repo/automation/automation/*", + "repo/automation/ckx/*", + "repo/automation/core/*", + "repo/automation/core/cm_60cb625a46b38610/*", + "repo/automation/repo/*" + ] + +[tool.setuptools.packages.find] +where = ["."] +include = ["cmind"] +exclude = ["docs", "docs.*", "tests", "tests.*"] + + +[project.urls] +Homepage = "https://cKnowledge.org" +Repository = "https://github.com/mlcommons/ck/tree/master/cm" +Issues = "https://github.com/mlcommons/ck/issues" +Changelog = "https://github.com/mlcommons/ck/blob/master/cm/CHANGES.md" + +[project.scripts] +cmind = "cmind.cli:run" +cm = "cmind.cli:run" +cmx = "cmind.cli:runx" +cmr = "cmind.cli:run_script" +cmrd = "cmind.cli:docker_script" +cmg = "cmind.cli:gui_script" +cme = "cmind.cli:run_experiment" diff --git a/cm/setup.py b/cm/setup_.py similarity index 100% rename from cm/setup.py rename to cm/setup_.py From 00efe3f2514b03c4dadaac2c180c63d163773cb0 Mon Sep 17 00:00:00 2001 From: Grigori Fursin Date: Sun, 10 Nov 2024 09:53:13 +0100 Subject: [PATCH 3/6] V3.4.0: added pyproject.toml to install CM and deprecated setup.py --- cm/CHANGES.md | 3 +++ cm/cmind/__init__.py | 2 +- 2 files changed, 4 insertions(+), 1 deletion(-) diff --git a/cm/CHANGES.md b/cm/CHANGES.md index 41c70877db..5ba92ab3aa 100644 --- a/cm/CHANGES.md +++ b/cm/CHANGES.md @@ -1,3 +1,6 @@ +## V3.4.0 + - added pyproject.toml to install CM and deprecated setup.py + ## V3.3.4 - added utils.path2: add quotes if spaces in path diff --git a/cm/cmind/__init__.py b/cm/cmind/__init__.py index 4bb0bb35e0..f09d62404a 100644 --- a/cm/cmind/__init__.py +++ b/cm/cmind/__init__.py @@ -2,7 +2,7 @@ # # Written by Grigori Fursin -__version__ = "3.3.4" +__version__ = "3.4.0" from cmind.core import access from cmind.core import x From 0f44b52a760081fb8df3936da1b8e9ab654ebd77 Mon Sep 17 00:00:00 2001 From: Grigori Fursin Date: Sun, 10 Nov 2024 09:58:13 +0100 Subject: [PATCH 4/6] clean up --- README.md | 7 ++++--- cm/README.md | 4 ++++ cm/setup_install.bat | 1 - 3 files changed, 8 insertions(+), 4 deletions(-) delete mode 100644 cm/setup_install.bat diff --git a/README.md b/README.md index f0008b3dce..1a307697ba 100755 --- a/README.md +++ b/README.md @@ -35,8 +35,9 @@ CK consists of several sub-projects: to run automotive benchmark across different models, data sets, software and hardware from different vendors. * [CMX (the next generation of CM)](cm/docs/cmx) - we are developing the next generation of CM - to make it simpler and more flexible based on user feedback. Please follow - this project [here](https://github.com/orgs/mlcommons/projects/46). + to make it simpler and more flexible based on user feedback. Please follow + this project [here]( https://github.com/orgs/mlcommons/projects/46 ). + * [Collective Knowledge Playground](https://access.cKnowledge.org) - a unified platform to list CM scripts similar to PYPI, aggregate AI/ML Systems benchmarking results in a reproducible format with CM workflows, @@ -58,7 +59,7 @@ CK consists of several sub-projects: ### Maintainers -* CM/CMX automation framework: [Grigori Fursin](https://cKnowledge.org/gfursin) +* CM/CMX/CM4Research: [Grigori Fursin](https://cKnowledge.org/gfursin) * CM4MLOps: [Arjun Suresh](https://github.com/arjunsuresh) and [Anandhu Sooraj](https://github.com/anandhu-eng) ### Motivation and long-term vision diff --git a/cm/README.md b/cm/README.md index 25766a0650..f5e9770f27 100644 --- a/cm/README.md +++ b/cm/README.md @@ -44,6 +44,10 @@ from Nvidia, Intel, AMD, Google, Qualcomm, Amazon and other vendors: and simple JSON/YAML descriptions instead of inventing new workflow languages; * must have the same interface to run all automations natively, in a cloud or inside containers. +### Maintainers + +* [Grigori Fursin](https://cKnowledge.org/gfursin) + ### Resources * CM v2.x (stable version 2022-cur): [installation on Linux, Windows, MacOS](https://access.cknowledge.org/playground/?action=install) ; diff --git a/cm/setup_install.bat b/cm/setup_install.bat deleted file mode 100644 index dee8b9cc12..0000000000 --- a/cm/setup_install.bat +++ /dev/null @@ -1 +0,0 @@ -pip install . From ea4e9aea26910fb1b9943edaf57a311bccd04599 Mon Sep 17 00:00:00 2001 From: Grigori Fursin Date: Sun, 10 Nov 2024 10:04:21 +0100 Subject: [PATCH 5/6] clean up --- cm/README.md | 12 ++++++------ 1 file changed, 6 insertions(+), 6 deletions(-) diff --git a/cm/README.md b/cm/README.md index f5e9770f27..17f73e8bf3 100644 --- a/cm/README.md +++ b/cm/README.md @@ -50,10 +50,10 @@ from Nvidia, Intel, AMD, Google, Qualcomm, Amazon and other vendors: ### Resources -* CM v2.x (stable version 2022-cur): [installation on Linux, Windows, MacOS](https://access.cknowledge.org/playground/?action=install) ; +* CM v2.x (2022-cur) (stable): [installation on Linux, Windows, MacOS](https://access.cknowledge.org/playground/?action=install) ; [docs](https://docs.mlcommons.org/ck) ; [popular commands](https://github.com/mlcommons/ck/tree/master/cm/docs/demos/some-cm-commands.md) ; [getting started guide](https://github.com/mlcommons/ck/blob/master/docs/getting-started.md) -* CM v3.x (prototype 2024-cur): [docs](https://github.com/mlcommons/ck/tree/master/cm/docs/cmx) +* CM v3.x aka CMX (2024-cur) (stable): [docs](https://github.com/orgs/mlcommons/projects/46) * MLPerf inference benchmark automated via CM * [Run MLPerf for submissions](https://docs.mlcommons.org/inference) * [Run MLPerf at the Student Cluster Competition'24](https://docs.mlcommons.org/inference/benchmarks/text_to_image/reproducibility/scc24) @@ -65,14 +65,14 @@ from Nvidia, Intel, AMD, Google, Qualcomm, Amazon and other vendors: [Apache 2.0](LICENSE.md) -### Citing CM and CM4MLOps +### Citing CM project -If you found CM useful, please cite this article: +If you found CM automations useful, please cite this article: [ [ArXiv](https://arxiv.org/abs/2406.16791) ], [ [BibTex](https://github.com/mlcommons/ck/blob/master/citation.bib) ]. -You can learn more about the motivation behind these projects from the following articles and presentations: +You can learn more about the motivation behind these projects from the following presentations: -* "Enabling more efficient and cost-effective AI/ML systems with Collective Mind, virtualized MLOps, MLPerf, Collective Knowledge Playground and reproducible optimization tournaments": [ [ArXiv](https://arxiv.org/abs/2406.16791) ] +* "Enabling more efficient and cost-effective AI/ML systems with Collective Mind, virtualized MLOps, MLPerf, Collective Knowledge Playground and reproducible optimization tournaments": [ [ArXiv](https://arxiv.org/abs/2406.16791) ] * ACM REP'23 keynote about the MLCommons CM automation framework: [ [slides](https://doi.org/10.5281/zenodo.8105339) ] * ACM TechTalk'21 about Collective Knowledge project: [ [YouTube](https://www.youtube.com/watch?v=7zpeIVwICa4) ] [ [slides](https://learning.acm.org/binaries/content/assets/leaning-center/webinar-slides/2021/grigorifursin_techtalk_slides.pdf) ] From 1c579a95d3f0ff5f59a20c1674ce4a49fd828e3c Mon Sep 17 00:00:00 2001 From: Grigori Fursin Date: Sun, 10 Nov 2024 10:13:35 +0100 Subject: [PATCH 6/6] ## V3.4.1: reduced Python min version in pyproject.toml to 3.7 for backwards compatibility --- cm/CHANGES.md | 3 +++ cm/cmind/__init__.py | 2 +- cm/pyproject.toml | 2 +- 3 files changed, 5 insertions(+), 2 deletions(-) diff --git a/cm/CHANGES.md b/cm/CHANGES.md index 5ba92ab3aa..cc7033df7e 100644 --- a/cm/CHANGES.md +++ b/cm/CHANGES.md @@ -1,3 +1,6 @@ +## V3.4.1 + - reduced Python min version in pyproject.toml to 3.7 for backwards compatibility + ## V3.4.0 - added pyproject.toml to install CM and deprecated setup.py diff --git a/cm/cmind/__init__.py b/cm/cmind/__init__.py index f09d62404a..9e1019433d 100644 --- a/cm/cmind/__init__.py +++ b/cm/cmind/__init__.py @@ -2,7 +2,7 @@ # # Written by Grigori Fursin -__version__ = "3.4.0" +__version__ = "3.4.1" from cmind.core import access from cmind.core import x diff --git a/cm/pyproject.toml b/cm/pyproject.toml index 7c6553e2ce..7159530d3f 100644 --- a/cm/pyproject.toml +++ b/cm/pyproject.toml @@ -17,7 +17,7 @@ maintainers = [ description = "Collective Mind automation framework (CM)" -requires-python = ">=3.8" +requires-python = ">=3.7" dependencies = [ "pyyaml",