{"id":24698893,"url":"https://github.com/willayy/modularml","last_synced_at":"2025-09-11T02:12:27.496Z","repository":{"id":273417419,"uuid":"919544142","full_name":"willayy/modularml","owner":"willayy","description":"Lightweight, transparent and modular ML Framework","archived":false,"fork":false,"pushed_at":"2025-03-17T18:12:52.000Z","size":992,"stargazers_count":3,"open_issues_count":27,"forks_count":0,"subscribers_count":2,"default_branch":"main","last_synced_at":"2025-03-17T18:35:08.251Z","etag":null,"topics":["machine-learning"],"latest_commit_sha":null,"homepage":"https://willayy.github.io/modularml/","language":"C++","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":null,"status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/willayy.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":".github/CONTRIBUTING.md","funding":null,"license":null,"code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null}},"created_at":"2025-01-20T15:31:24.000Z","updated_at":"2025-03-16T01:32:48.000Z","dependencies_parsed_at":"2025-01-20T20:24:34.811Z","dependency_job_id":"3e7d3246-4cc2-4f75-b99a-5c9b836facff","html_url":"https://github.com/willayy/modularml","commit_stats":null,"previous_names":["willayy/modularml"],"tags_count":0,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/willayy%2Fmodularml","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/willayy%2Fmodularml/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/willayy%2Fmodularml/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/willayy%2Fmodularml/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/willayy","download_url":"https://codeload.github.com/willayy/modularml/tar.gz/refs/heads/main","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":244902925,"owners_count":20529114,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2022-07-04T15:15:14.044Z","host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":["machine-learning"],"created_at":"2025-01-27T04:30:46.975Z","updated_at":"2025-09-11T02:12:27.487Z","avatar_url":"https://github.com/willayy.png","language":"C++","funding_links":[],"categories":[],"sub_categories":[],"readme":"# ModularML\n\n![Coverage](https://raw.githubusercontent.com/willayy/modularml/gh-pages/docs/coverage-badge.svg)\n[![License: MIT](https://img.shields.io/badge/License-MIT-red.svg)](https://opensource.org/licenses/MIT)\n![Build](https://github.com/willayy/modularml/actions/workflows/ci_cd.yaml/badge.svg)\n![GitHub Contributors](https://img.shields.io/github/contributors/willayy/modularml)\n\n\u003c!-- \nDoesnt work currently issue with services but will try again later\n![Visitors](https://shields.io/badge/dynamic/json?label=Visitors\u0026query=value\u0026url=https://api.countapi.xyz/hit/willayy.modularml)\n--\u003e\n\n\nModularML is a machine learning framework with the aim to let users more easily load, explore and experiment with ML models as to foster a greater understanding behind the underlying processes that make machine learning possible. \n\nThe framework loads already trained models using the onnx format, the onnx file is then translated into JSON which the framework uses during runtime to construct the model internally. The user is then to run inference on the model by feeding the model some input data.\n\n\n### Backend Implementations\nMachine learning entails heavy use of **General Matrix Multiplication (GEMM)** to perform calculations. ModularML provides several interchangeable backend implementations for executing these efficiently.\nCurrent backend implementations include:\n\n- **Naive GEMM Backend**\n  A simple reference implementation. Good for understanding the computation step-by-step.\n- **Blocked GEMM Backend**\n  Optimized for cache locality by processing matrices in smaller blocks.\n- **AVX2 GEMM Backend**\n  Uses AVX2 SIMD intrinsics to faster computation on supported CPU:s.\n- **AVX512 GEMM Backend**\n  Uses AVX512 SIMD intrinsics to even faster computation on supported CPU:s.\n- **CUDA GEMM Backend**\n  Uses CUDA for computation on supported GPU:s\n\n\n### Requirements\n\n- **C++ Compiler**  \n  - g++ `GCC \u003e= 12`  \n  - Clang `\u003e= 10`  \n- **Build Tools**  \n  - Make  \n  - CMake `\u003e= 3.30`  \n\n### Install Dependencies\nThis command installs the neccessary dependencies needed to build the framework.\n```sh\nmake install\n```\n\n### Configure \u0026 Build The Framework\nThese commands will configure and build the framework using the default naive GEMM backend.\n```sh\ncd build\ncmake ..\nmake -j[Number of cores]\n```\nTo build the framework using the blocked GEMM backend for example:\n```sh\ncd build\ncmake -DBUILD==blocked ..\nmake -j[Number of cores]\n```\nTo check which backends are available on your system:\n```sh\nmake check_backends\n```\nThis will show you a list of available and/or unavailable backends.\n### Run Tests\nThese commands will run all the unit and integration tests for the framework using the default naive GEMM backend.\n```sh\ncd build\nctest\n```\n### Install using CMake Fetchcontent\nA library version of ModularML where you can change operation implementations dynamically can be installed by putting\n```cmake\n# ----------------------- MODULARML -------------------------- #\ninclude(FetchContent)\nFetchContent_Declare(\n    modularml\n    GIT_REPOSITORY https://github.com/willayy/modularml-lib\n    GIT_TAG        \u003cuse latest release tag\u003e\n)\nFetchContent_MakeAvailable(modularml)\ntarget_link_libraries(MyProject PRIVATE modularml)\n# ------------------------------------------------------------ #\n```\nIn your CMakeLists.txt file, for information about its specific usage check https://github.com/willayy/modularml-lib\n\n### Contributing\nWe welcome contributions!  \nPlease read our [Contributing Guide](CONTRIBUTING.md) for instructions on how to get started.\n\n### License\nThis project is licensed under the [MIT License](LICENSE).\n\n### Acknowledgments\nThis framework was developed as part of a Bachelor Thesis at Chalmers University of Technology.\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fwillayy%2Fmodularml","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fwillayy%2Fmodularml","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fwillayy%2Fmodularml/lists"}