- fixed pyproject.toml
- fixed docs generation
- improved cm pull repo with branch and SHA (#1355)
- added utils.flatten_dict
- added utils.safe_int
- added utils.safe_float
- added utils.get_set
- added utils.digits
- reduced Python min version in pyproject.toml to 3.7 for backwards compatibility
- added pyproject.toml to install CM and deprecated setup.py
- added utils.path2: add quotes if spaces in path
- added utils.update_dict_with_flat_key: update dictionary via flat key (x.y.z)
- added utils.get_value_from_dict_with_flat_key get value from dict via flat key (x.y.z)
- added utils.load_module universal python module loader
- fixed CM logger issue
- moved "CMX stack error" to -log
- improved error reporting
- allow "cm/cmx pull repo {URL}" along with "cm/cmx pull repo --url={URL}"
- CMX: added "automation_full_path" to -log
- fixed minor bug with JSON console output
- fixed minor bug with console in cmind.x function
- fixed Docker test for mlperf-inference with cm4mlops
- minor improvements
- minor improvement in error handling and messages
- Fix type of "unknown_keys" to list to be serializable mlcommons#1335
- Added support to print warning instead of error (useful for help)
- CMX: improved logging
- CMX: improved error handling (show module path and line number)
- CMX: fixed bug when detecting unknown control flag
- CMX: do not change output to json if -j or --json just print json in the end ...
- added --new_branch to
cm pull repo
andcm checkout repo
- fixed a bug in
cm show repo
(removed dependency on cm4mlops and used subprocess.check_output)
- fixed action
help
and flag-h
to work with all automations: mlcommons#1325
- added
-f
to the CMX core to be backwards compatible with CM commands likecm rm cache -f
- added
utils.test_input
to test if input has keys and report them as error - added
prefix_cmx
key to cmr.yaml to customizecmx pull repo
- improved CMX logging (-log and -logfile): mlcommons#1317
- print control flags in help (cmx -h | cmx -help): mlcommons#1318
- fail if control flag is not recognized: mlcommons#1315
- added -repro flag to record various info to cmx-repro directory mlcommons#1319
- print call stack when error > 32 to be able to trace error cause: mlcommons#1320 can be combined with -log=debug and -logfile
- simplified and changed process_input function API
- splitted automation, artifact and artifacts into name and repo in the access function to simplify handling of artifacts: mlcommons#1311
- added -raise for mlcommons#1309
- added --extra_cmd_git and --extra_cmd_pip to cm/cmx pull repo mlcommons#1308
- fixed cmx init
- fixed minor bug in CM core
-
added
min_cm_version
to the CM repo description (cmr.yaml) to check compatibility of repositories with CM. It is needed to implement new features in CM core and repositories requested by our users that may not work with previous CM versions. Hence, starting a new version. -
started prototyping a simpler and cleaner version of
cmind.access()
. it should not influence existing automations and workflows and will co-exist in the future.
- added
install_python_requirements
to the CM repo description (cmr.yaml) to install requirements to a current python with CM installation if needed
- added
--min
==--skip
tocm init
for readability - added
--checkout
tocm init
to handle checkout - added support to set CLI parameter to False if it ends with
-
, i.e.--no-cache-
->i['no_cache'] = False
--no-cache
->i['no_cache'] = True
- added
--skip
and--url
flags tocm init
- added support to pull CM repos using --url with "git@"
- added cmind.core.debug to make it easier to debug CM automations
- added env CM_CORE_SKIP_FIX_REPO_PATH to skip fixing non-existent repo paths
- fixed "cm init" on Windows (do not check wget and curl - managed via CM scripts)
- added "cm init" to check system deps and pull mlcommons@cm4mlops by default
- fixed branch checkout in "cm pull repo"
- minor documentation update
- minor documentation update for MLPerf inference v4.1
- fixed "cm pull repo --branch={BRANCH NAME}" behavior for all OS
- added GitHub tests for Windows
- added more tests for CM-MLPerf workflows for different hardware
- various minor fixes based on user feedback
- added automatic CM repo alias from mlcommons@ck to mlcommons@cm4mlops unless branch and checkout are used!
- improved CM python package API generation and uploaded to https://cknowledge.org/docs/cm (should move to MLCommons when ready)
- added timezone to utils.get_current_date_time to correctly time stamp various experiments!
- fixed detection of a CM artifact using 'cm info .' when inside virtual env entries.
- added "cmind.utils.debug_here" function to attach remote Python debugger and tested with Visual Studio Code.
- added test to avoid checking out CM repo that was not pulled
- added utils.safe_load_json to return empty dict if file doesn't exist
- added utils.compare_versions to check min version requirements for automations and entries
- removed outdated convert_path (mlcommons#1219)
- added utils.check_if_true_yes_on (mlcommons#1216)
- check "min_cm_version" in CM automations and CM scripts (use _cm.yaml or _cm.json)
- added support for deps on other CM repos (if conflict = True - then fail if this repo is already installed otherwise print that repo is missing)
- added --skip-zip-parent-dir to "cm pull repo --url=..." to support downloading of stable CM-MLOps repositories from https://github.com/mlcommons/cm4mlops/releases .
- changed outdated version of CM in requirements when creating new repos
- fixed minor bug in
cm add automation {name}
- added dependency on giturlparse to support private repos in containers
- fixed bug when adding automation in the local repository: "cm add . {automation_name}"
- moved cm-mlops repo to a standalone MLCommons repo: https://github.com/mlcommons/cm4mlops
- added skip of delayed help to simplify output of
cmr [tags] --help
- revisited automatically generated READMEs for CM scripts (automation recipes) based on user feedback: mlcommons#1169
- improved deleting of CM artifacts (entries) on Windows
- print tags when deleting CM artifacts (entries)
- added support to handle broken CM repositories: mlcommons#1177
- added "cm checkout repo mlcommons@ck --branch=dev" to make it easier to switch branches
- added "cm pull repo mlcommons@ck --checkout=dev" to make it easier to switch branches
- added "cm import repo" to import repository in the current directory
- added support to update all CM Git repos in one go: "cm pull repo"
- added support to show extra info about CM Git repos: "cm show repo"
- added explicit support for Private Access Token (PAT) when pulling private CM repos: cm pull repo [email protected] --pat={GITHUB PAT}
- added support to remove CM repositories via "cm rm repo" even if read only (required for Windows)
- added support to self-fix CM repo list if repository was manually deleted
- added setuptools as dependency to detect package versions
- a major update with the new CM automation recipes and GUI to compose modular AI systems and optimize them across diverse models, datasets, software and hardware:
- improved --help for common automations and CM scripts (automation recipes)
- fixed a few minor bugs
- added support to print directories and files for a given CM entry via "cm info {automation} {artifact|--tags}"
- fixed "cm pull repo" if repo already exists
- added support for Python 3.12 (removed "pkg" dependency)
- added --depth to "cm pull repo" to reduce size of stable repos
- added possibility to download zip repository in "cm pull repo --url={...}.zip" to download small and stable repositories with CM automation recipes
- updated core documentation
- fixed error when adding artifacts with --common flag
- fixed minor bug with auto-initializion of cmind for cmind.error and cmind.halt for external scripts
- added --min to
cm find repo xyz --min
to print path to CM xyz repo without any extra info Needed for artifact evaluation at ACM MICRO'23 - added
cm where repo xyz
to print path to xyz CM repo without any extra info Needed for artifact evaluation at ACM MICRO'23
- fixed a bug with merging dictionaries in variations (detected when running MLPerf inference with GPT-J): mlcommons#858
- fixed a serious (though rare) bug in indexing when mixing entries with UIDs and aliases
- added cme binary as a shortcut for "cm run experiment"
- added cmr binary as a shortcut for "cm run script"
- fixed minor bug with repo/automation/artifact detection in the current path with "."
- various improvements in CM-MLOps repository to support TinyMLPerf
- Turned on artifact indexing by default (can be turned off by setting CM_INDEX to "no", "off" or "false")
- Turned on --silent mode in "cm run script" by default Can be turned off via --verbose or -v flags
- Fixed duplicate version detection for Python packages
- added --new_tags for "cm copy" to add new tags to newly created artifacts
- added --new_tags for "cm add" to add new tags to newly created artifacts
- added basic check for forbidden artifact names such as "."
- Fixed minor bug during cm detect repo (turn off indexing)
- Fixed Bug in indexing (avoiding duplicate entries when wildcards are used)
- Major update: transparent indexing of all artifacts to speed up search and scripts by ~10..50x (off by default for further testing: use ENV CM_INDEX=yes|on|true to turn it on)
- added "cm print_input automation"
- updated link to the MLCommons taskforce on automation and reproducibility
- added support for CLI with -- {something} . Everything after -- will be available in the CM input dictionary under "unparsed_cmd" key (list). We need it to support universal experiments in CM: cm run experiment -- {any script with any command line}
- added utils.call_internal_module to break automation modules into sub-modules
- improved removal of CM entries on Windows
- fixed mlcommons#574
- improved detection of CM entries with "."
- added --yaml option in "cm add" to save meta in YAML
- added --save_to_json to save output to JSON (useful for web services)
- extended "cm info {automation} {artifact}" (copy to clipboard)
- added --checkout and --branch to "cm pull repo' for more determinism and reproducibility
- detect if repository and its forks already exist during "cm pull repo" (#397)
- support = inside argument of a key (--key="x=y") (#453)
- redesigned documentation
- added support utils to generate lists of all automations and scripts
- '\r' is removed on Windows when writing files with meta information (json or yaml)
- minor fix in reporting errors
- we now do not overwrite repo alias in .cmr.yaml when pulling forks to avoid ambiguities
- minor fix to properly self-reference running automation script
- updated and simplified all docs
- fixed links in PYPI docs
- Prepared public workgroup to continue CM developments to modularize ML Systems and automate their benchmarking using the MLPerf methodology as a community effort!
- Added multiple tests for CM core, scripts and "automation" script features: https://github.com/mlcommons/ck/actions
- Extended "cm info artifact"
- Added support to copy CID of a given CM artifact to a clipboard (cm info {artifact})
- Updated docs and tutorials for V1.0.0 release!
- added link to GitHub repo with CM automation scripts
- handle errors when loading artifact meta
- added text output when can't detect tool version
- Added "cm info" to print various info about artifacts
- Fixed bug with printing help for actions when they are substituted (rm -> delete)
- Added utils.filter_tags to filter tags starting from "-" (used in artifact add and update)
- Added tags filter to "cm add" and "cm update"
- fixed bug in "cm move" when moving to a repository with a prefix
- redirect "cm version" to "cm version core"
- redirect "cm --version" to "cm version core"
- fixed bugs in the old "utils.list_all_files" function
- fixed "cm copy" when copying to a repository with a prefix
- fixed "cm copy" and "cm ren" if target artifact already exists
- fixed bug with python_version
- removed FullLoader from yaml load to be compatible with older Python versions
- added cm copy & cm cp
- added python_version to CM class to make automations more portable
- fixed minor bug with target repo in "cm move"/"cm ren"/"cm mv"
- fixed --help when no automation is specified (to print help for the default CM database automation)
- fixed "cm update" function (added --search-tags and changed --new-tags back to tags)
- fail by default if automation is not found (can be changed using cmind.cfg['fail_if_automation_not_found']=False)
- fixed "cm update" function (added --new-tags to separate from search tags)
- report error if automation is not defined or found
- fixed search function when tags == ''
- fixed cm access when automation == '' and tags!=''
- added "-tags" in search function
- improved "--help" option for common automations
- enhanced common "update" function (replace tags)
- added "utils.convert_env_to_dict" to support intelligent components
- extended "utils.load_text" to split strings and detect versions
- fixed bug with "no_tags" in search function
- added "utils.sub_input"
- added "cfg['artifact_keys']" to make it easier to create sub-inputs to search for artifacts from original input
- described CM env variables in the docs (#224)
- moved "get_host_os_info" from CM core utils to CM automation "utils" to keep CM core small and simple
- added "utils.load_python_module" function to customize intelligent components
- added "utils.update_dict_if_empty" function to update the state in the intelligent component
- added '\n' in save_json
- fixed minor bug in the "find" function (when searching in the root directory of a CK repo)
- fixed bug when pulling new repo with prefix
- added "gen_tmp_file" from CK to utils
- added "get_host_os_info" from CK to utils to support new "intelligent components"
- started prototyping "intelligent component"
- documented all internal APIs
- changed a few ambiguous internal and environment variables
- moved new and unstable components for MLOps to octoml@cm-mlops for further prototyping
- fixed bug when detecting repo in "internal" repo
- added dummy automations for env, ic and docker: #220
- added dummy automation experiment
- added support to detect current repo in artifacts in CLI: "cm add automation .:mlperf"
- added utils.get_current_date_time
- added utils.assemble_cm_object1
- added "cm move/rename": mlcommons#213
- adding "requirements.txt" when initializing new CM repositories: mlcommons#204
- when "cm help {automation}" print path to the automation python module: mlcommons#218
- print equivalent Collective DB actions: mlcommons#219
- various minor enhancements and bug fixes
- when updating artifact, if it doesn't exist, add it
- fixed tags processing when adding CM artifacts
- improved CLI (change - -> _ in keys to be more user friendly)
- added "cm update" and fixed minor bugs with cm load/update
- fixed problems with non-serializable keys when --out=json
- fixed major bug with inheritance (_base)
- fixed a bug in "cm search" when automation is created without UID
- fixed a bug with @input.json
- fixed minior bugs in a core
- added support to detect repo, automation and artifact in a current directory when using CM CLI: "cm search . --tags=..." "cm load ."
- added "--out=json" to print automation action output in JSON format
- do not wait until the end of search to print entries (otherwise may be slow)
- treat uid and alias as case insensitive (the same on Linux and Windows)
- fixed "cm init repo" - just import when repo description already exists
- fixed bug with printing the same error recursively
- major fix of search with wildcards
- fixed repository handling (search, unpack, etc)
- changed "cm status core" to "cm test core"
- changed ambiguous "default" repo to "internal" repo
- changed ambiguous "default_automation" to "common_automation"
- changed ambiguous key "name" in "repo" automation to "desc"
- moved "parsed_cli" from core module to cli module
- Added "cm status"
- Changed CM CLI to "cm action automation artifact(s) flags @input.yaml @input.json"
- Added "cm help" and "cm {action} --help"