MAX FAQ
We tried to anticipate your questions about MAX on this page. If this page doesn't answer all your questions, please ask us on our Discord channel or on the Modular forum.
Distribution
What are the system requirements?
- Mac
- Linux
- Windows
- macOS Ventura (13) or later
- Apple silicon (M1/M2/M3/M4 processor)
- Python 3.9 - 3.12
- Xcode or Xcode Command Line Tools
- Ubuntu 22.04 LTS
- x86-64 CPU (with SSE4.2 or newer) or AWS Graviton2/3 CPU
- Minimum 8 GiB RAM (or much more, depending on the model you run)
- Python 3.9 - 3.12
- g++ or clang++ C++ compiler
- When using GPUs (with the MAX container): NVIDIA A100, A10, L4, or L40 GPU.
Windows is not officially supported at this time.
In the meantime, you can try MAX on Windows with WSL, using a compatible version of Ubuntu (see our requirements for Linux).
Why bundle Mojo with MAX?
Integrating Mojo and MAX into a single package is the best way to ensure interoperability between Mojo and MAX for all users, and avoid version conflicts that happen when installing them separately.
We built Mojo as a core technology for MAX, and you can use it to extend MAX Engine, so MAX clearly depends on Mojo. On the other hand, writing Mojo code that runs on both CPUs and GPUs (and other accelerators) requires runtime components and orchestration logic that falls outside the domain of Mojo, and into the domain of MAX. That is, MAX isn't just a framework for AI development, it's also a framework for general heterogeneous compute. As such, writing Mojo programs that can execute across heterogeneous hardware depends on MAX.
Nothing has changed for Mojo developers—you can still build and develop in Mojo like you always have. The only difference is that you're now able to seamlessly step into general-purpose GPU programming (coming soon).
Will MAX be open-sourced?
We want to contribute a lot to open source, but we also want to do it right. Our team has decades of experience building open-source projects, and we have learned that the important thing is to create an inclusive and vibrant community, and that takes a lot of work. We will need to figure out the details, but as we do so, we will share more. Please stay tuned.
Does the MAX SDK collect telemetry?
Yes, the MAX SDK collects basic system information, session durations, compiler events, and crash reports that enable us to identify, analyze, and prioritize issues. The MAX container for model serving also collects performance metrics such as time to first token and input processing time.
This telemetry is crucial to help us quickly identify problems and improve our products for you. Without this telemetry, we would rely solely on user-submitted bug reports, which are limited and would severely limit our performance insights.
You can opt-out of some telemetry, such as compiler events and crash reports. However, package install/update/uninstall events, basic system information,and session durations (the amount of time spent running MAX Engine) cannot be disabled (see the MAX SDK terms).
To disable local telemetry, see the following section. To disable serving telemetry, see the MAX container documentation.
Disable telemetry with magic
When using Magic, telemetry is configured separately for each project. To disable telemetry for compiler events and crash reports, run this command in your project environment:
magic telemetry --disable
magic telemetry --disable
For details, see the magic telemetry
docs.
Installation
Can I install both stable and nightly builds?
Yes, when you use the Magic CLI, it's safe and easy to use the stable and nightly builds for different projects, each with their own virtual environment and package dependencies.
To install nightly builds, see the MAX install guide or get started with Mojo.
How do I uninstall everything?
It depends on whether you installed using the modular
CLI
(deprecated) or the magic
CLI.
If you installed with magic
To remove the MAX/Mojo packages you've installed with magic
, delete the
project paths that you created with magic init
or the paths that contain a
pixi.toml
or mojoproject.toml
file.
To remove the magic
tool, delete the magic
binary:
rm ~/.modular/bin/magic
rm ~/.modular/bin/magic
That's it.
If you installed with modular
(deprecated)
To uninstall everything, including the modular
tool itself, first use the
modular uninstall
command to remove the max
or mojo
packages and configurations:
modular uninstall max
modular uninstall max
That removes the executable tools and configurations, but it leaves the MAX Python package, the Modular CLI tool, and some other files.
To remove everything else, use these commands:
-
Uninstall the MAX Python package. You can do this in one of two ways:
-
Delete your virtual environment completely, which removes the
max-engine
Python packages along with any other dependencies. For example:- venv
- conda
rm -rf ~/max-venv
rm -rf ~/max-venv
conda env remove --name max
conda env remove --name max
-
Or, keep the virtual environment and delete just the
max-engine
packages inside:- venv
- conda
source ~/max-venv/bin/activate
source ~/max-venv/bin/activate
conda activate max
conda activate max
pip uninstall max-engine max-engine-libs -y
pip uninstall max-engine max-engine-libs -y
-
-
Uninstall the
modular
CLI:- Mac
- Linux
brew uninstall modular
brew uninstall modular
sudo apt update && sudo apt remove modular -y
sudo apt update && sudo apt remove modular -y
-
Delete the Modular home directory:
rm -rf ~/.modular
rm -rf ~/.modular
That should do it for situations in which you're troubleshooting your installation and want to reinstall from scratch.
If you want to remove absolutely all trace of MAX, here are a few more actions:
-
Delete the lines that mention
MODULAR_HOME
and.modular
in~/.bash_rc
,~/.bash_profile
, or~/.zshrc
. -
Remove the Modular repository name:
- Mac
- Linux
brew untap modularml/packages/modular
brew untap modularml/packages/modular
sudo rm -rf /etc/apt/sources.list.d/modular-installer.list
sudo rm -rf /etc/apt/sources.list.d/modular-installer.list
-
If you used Jupyter notebooks with Mojo, delete the Mojo kernels:
jupyter kernelspec list
jupyter kernelspec list
jupyter kernelspec remove <KERNEL_NAME>
jupyter kernelspec remove <KERNEL_NAME>
-
Uninstall the Mojo VS Code extension via the VS Code extensions tab.
Functionality
What types of models does MAX support and from which training frameworks?
Primarily we support PyTorch, ONNX, and MAX Graph models. However, you can convert a wide range of other other model formats to ONNX format, including models from TensorFlow, Keras, Scikit-Learn, and more. For more information, read about our supported model formats.
Does MAX support quantization and sparsity?
It supports some quantized models today (models with Int data types, and we are working to add support for more) and we will be adding support for sparsity soon.
If you're building a model with MAX Graph, you can quantize your model with several different quantization encodings.
Will MAX support distributed inference of large models?
Yes, it will support executing large models that do not fit into the memory of a single device. This isn't available yet, so stay tuned!
Can the runtime be separated from model compilation (for edge deployment)?
Yes, our runtime (and our entire stack) is designed to be modular. It scales down very well, supports heterogeneous configs, and scales up to distributed settings as well. That being said, this isn't available yet, but we'll share details about more deployment scenarios we support over time.
Was this page helpful?
Thank you! We'll create more content like this.
Thank you for helping us improve!