Overview

What is Genv

Note

You can jump directly to the quick start toturial here.

Genv is an open-source project that brings environment and cluster management capabilities to GPUs.

The project started as an environment management software for GPUs (hence the name - GPU environments), and was highly inspired by projects like PyEnv and Conda. If you are not familiar with the concept of environments, you can check out the documentation venv, pyenv and Conda as a reference.

Over time, the project developed into a complete GPU cluster management tool with various capabilities and mechanisms like monitoring, enforcement, remote capabilities and more.

In addition to running GPU environments in a cluster, Genv also supports managing LLMs on GPUs.

At its core, Genv is a Python package that provisions GPUs to environments and keeps its state as files at /var/tmp/genv.

On top of this core layer, Genv has a CLI (i.e. the command genv), Python SDK and integrations with many common tools and environments such as terminal, containers (e.g. docker), Ray, Visual Studio Code, JupyterLab and PyCharm.

Genv is built with a decentralized architecture, meaning that different genv commands run separately and coordinate with one another and that there is no centralized service that handles the requests.

../_images/overview.png

GPU environments with Genv

Architectures

Genv supports two main architectures: local for a single machine and remote for a multi-machine cluster.

Local

../_images/architecture-local.png

Genv local architecture

When running in local mode, Genv manages the GPUs on the local machine where Genv is running. This is mostly relevant for the case of a single user with GPUs in his or her machine, or the case of multiple users that share a single GPU machine.

Remote

../_images/architecture-remote.png

Genv remote architecture

When running in remote mode, Genv manages the GPUs on any number of remote machines over SSH. This is mostly relevant for the case when multiple users that share multiple GPU machines.

For more information, see here.

Where to Go Next

If you are not familiar with Genv, it is recommended to follow the quick start tutorial. If you are into LLMs, check out the LLMs overview.

If you are looking for how to install Genv, visit the installation page, and if you want to know how to do specific things, check out the usage guide.