--- tags: - kernel license: apache-2.0 --- # Optimizer Optimizer is a python package that provides: - PyTorch implementation of recent optimizer algorithms - with support for parallelism techniques for efficient large-scale training. ## Currently implemented - [Parallel Muon with FSDP2](./docs/muon/parallel_muon.pdf) ## Usage ```python import torch from torch.distributed.fsdp import FullyShardedDataParallel as FSDP from kernels import get_kernel optimizer = get_kernel("motif-technologies/optimizer") get_default_muon_param_groups = optimizer.muon.get_default_muon_param_groups model = None # your model here fsdp_model = FSDP(model) # muon, in nature, cannot use 1-d tensor # we provide helper function to group such tensors # you can use your own function, if necessary params = get_default_muon_param_groups(model) # user can write own is_muon_func, if necessary optim = optimizer.Muon( params, lr=0.01, momentum=0.9, weight_decay=1e-4, ) ``` ## Pre-commit Hooks This project uses [pre-commit](https://pre-commit.com/) to automatically check and format code before commits. ### Setup 1. Install pre-commit: ```bash pip install pre-commit ``` 2. Install the git hooks: ```bash pre-commit install ``` Once installed, the configured hooks will run automatically on each commit. ### Included Hooks The following tools are run via pre-commit: - **[yapf](https://github.com/google/yapf)** – Python code formatter - **[typos](https://github.com/crate-ci/typos)** – Spell checker for common typos - **[isort](https://github.com/PyCQA/isort)** – Organizes and sorts Python imports - **[clang-format](https://clang.llvm.org/docs/ClangFormat.html)** – Formats C++/CUDA code (`--style=file`) - **[pymarkdown](https://github.com/jackdewinter/pymarkdown)** – Lints and auto-fixes Markdown files - **[actionlint](https://github.com/rhysd/actionlint)** – Validates GitHub Actions workflows ### Usage - Run all checks on the entire codebase: ```bash pre-commit run --all-files ``` - Run a specific hook (example: isort): ```bash pre-commit run isort --all-files ``` ### Test - There is a [simple unittest for Parallel Muon](./test/test_muon/README.md)