Installation Guide
June 3, 2026 ยท View on GitHub
(install_guide)=
Installation Guide
Installation Methods
From PyPI
The most straightforward way to install ALCHEMI Toolkit is via PyPI:
$ pip install \
--extra-index-url https://download.pytorch.org/whl/cu130 \
--extra-index-url https://pypi.nvidia.com \
'nvalchemi-toolkit[cu13]'
For CUDA 12 environments, use the CUDA 12 PyTorch index instead:
$ pip install \
--extra-index-url https://download.pytorch.org/whl/cu126 \
--extra-index-url https://pypi.nvidia.com \
'nvalchemi-toolkit[cu12]'
MACE support composes with the CUDA extras. Select exactly one CUDA extra
alongside mace:
# MACE support with the CUDA 13 stack
$ pip install \
--extra-index-url https://download.pytorch.org/whl/cu130 \
--extra-index-url https://pypi.nvidia.com \
'nvalchemi-toolkit[cu13,mace]'
# MACE support with the CUDA 12 stack
$ pip install \
--extra-index-url https://download.pytorch.org/whl/cu126 \
--extra-index-url https://pypi.nvidia.com \
'nvalchemi-toolkit[cu12,mace]'
We recommend using `uv` for virtual environment, package management, and
dependency resolution. `uv` can be obtained through their installation
page found [here](https://docs.astral.sh/uv/getting-started/installation/).
From Github Source
This approach is useful for obtain nightly builds by installing directly from the source repository:
$ pip install git+https://www.github.com/NVIDIA/nvalchemi-toolkit.git
Installation via uv
Maintainers generally use uv, and is the most reliable (and fastest) way
to spin up a virtual environment to use ALCHEMI Toolkit. Assuming uv
is in your path, here are a few ways to get started:
Stable, without cloning
This method is recommended for production use-cases, and when using ALCHEMI Toolkit as a dependency for your project. The Python version can be substituted for any other version supported by ALCHEMI Toolkit.
$ uv venv --seed --python 3.12
$ uv pip install \
--torch-backend cu130 \
--index https://pypi.nvidia.com \
--index-strategy unsafe-best-match \
'nvalchemi-toolkit[cu13]'
For MACE and cuEquivariance support, select the matching variant:
# CUDA 13 MACE stack
$ uv pip install \
--torch-backend cu130 \
--index https://pypi.nvidia.com \
--index-strategy unsafe-best-match \
'nvalchemi-toolkit[cu13,mace]'
# CUDA 12 MACE stack
$ uv pip install \
--torch-backend cu126 \
--index https://pypi.nvidia.com \
--index-strategy unsafe-best-match \
'nvalchemi-toolkit[cu12,mace]'
Nightly, with cloning
This method is recommended for local development and testing.
$ git clone git@github.com:NVIDIA/nvalchemi-toolkit.git
$ cd nvalchemi-toolkit
$ uv sync --extra cu13
# include documentation tools with --group docs
uv sync creates or updates the repository .venv, installs the local
nvalchemi-toolkit package in editable mode, installs the default dependency
groups configured for the project, and uses uv.lock for reproducible versions.
Select exactly one CUDA extra when syncing:
# Default development stack: CUDA 13
$ uv sync --extra cu13
# CUDA 12 stack for systems that have not moved to CUDA 13 yet
$ uv sync --extra cu12
# MACE support follows the same split
$ uv sync --extra cu13 --extra mace
$ uv sync --extra cu12 --extra mace
The CUDA extras are intentionally mutually exclusive. Do not use
uv sync --all-extras, because it requests both cu12 and cu13 in the same
environment.
Use the same CUDA extra when running commands through uv run. By default,
uv run checks and syncs the project environment before executing the command;
bare uv run ... does not remember that the environment was previously synced
with cu12.
# Default CUDA 13 stack
$ uv run --extra cu13 pytest test/
# CUDA 12 stack
$ uv run --extra cu12 pytest test/
# CUDA 12 stack with MACE support
$ uv run --extra cu12 --extra mace pytest test/
The Makefile threads the selected extra through both uv sync and uv run:
# Default CUDA 13 stack
$ make test
# CUDA 12 stack
$ make test CUDA_EXTRA=cu12
# CUDA 12 stack with MACE support
$ make test CUDA_EXTRA=cu12 OPTIONAL_EXTRAS=mace
After a known-good sync, uv run --no-sync ... can run without modifying the
environment, but it also skips uv's normal environment check.
Additional dependency groups can be layered onto the selected CUDA stack:
# CUDA 13 plus documentation build dependencies
$ uv sync --extra cu13 --group docs
# Verify the environment would sync without changing it
$ uv sync --extra cu13 --dry-run
# Fail if uv.lock would need to change
$ uv sync --extra cu13 --locked
Nightly, without cloning
Installing nightly versions without cloning the codebase is not recommended
for production settings!
$ uv venv --seed --python 3.13
$ uv pip install \
--torch-backend cu130 \
--index https://pypi.nvidia.com \
--index-strategy unsafe-best-match \
'nvalchemi-toolkit[cu13] @ git+https://www.github.com/NVIDIA/nvalchemi-toolkit.git'
As a package dependency
To add nvalchemi as a dependency to your project via uv:
# add the last stable version
$ uv add nvalchemi
# nightly version; best practice is to pin to a version release
$ uv add "nvalchemi @ git+https://www.github.com/NVIDIA/nvalchemi-toolkit.git"
Installation with Conda & Mamba
The installation procedure should be similar to other environment management tools
when using either conda or mamba managers; assuming installation from a fresh
environment:
# create a new environment named nvalchemi if needed
mamba create -n nvalchemi python=3.12 pip
mamba activate nvalchemi
pip install \
--extra-index-url https://download.pytorch.org/whl/cu130 \
--extra-index-url https://pypi.nvidia.com \
'nvalchemi-toolkit[cu13]'
Next Steps
You should now have a local installation of nvalchemi ready for whatever
your use case might be! To verify, you can always run:
$ python -c "import nvalchemi; print(nvalchemi.__version__)"
If that doesn't resolve, make sure you've activated your virtual environment. Once you've verified your installation, you can:
- Explore examples & benchmarks: Check the
examples/directory for tutorials - Read Documentation: Browse the user and API documentation to determine how to integrate ALCHEMI Toolkit into your application.