Global Tensor Exchange for Distributed Deep Learning Workloads
Setu now supports development using VS Code devcontainers, which provides a consistent, pre-configured development environment:
- Install Docker and VS Code
- Install the Dev Containers extension for VS Code
- Clone the repository:
git clone https://github.com/project-vajra/setu
- Open the repository in VS Code
- VS Code will detect the devcontainer configuration and prompt you to reopen the project in a container. Click "Reopen in Container".
- If you want to use a subset of GPUs, update the
--gpusflag in.devcontainer/devcontainer.json. - The devcontainer will set up the environment with all dependencies automatically
- Use VS Code's built-in build tasks (Terminal > Run Build Task...) to easily run common Setu commands like build, test, and lint directly from the IDE
- CUDA: Setu has been tested with CUDA 12.6 on A100 and H100 GPUs
- Git: For cloning the repository
First, ensure you have mamba installed,
# Install mamba (if not already available)
wget https://github.com/conda-forge/miniforge/releases/latest/download/Miniforge3-Linux-x86_64.sh
bash Miniforge3-Linux-x86_64.shNext clone the repository,
# Clone repository
git clone https://github.com/project-vajra/setu
cd setuNow create a mamba environment,
# Create environment
make setup/environmentNow activate the environment,
# Activate environment
mamba activate ./envFinally, build the project:
# Install dependencies and build
make build
# Intelligent build (automatically selects optimal strategy)
make build
# Advanced build options (for specific needs)
make build/native # Native extension only (full build)
make build/native_incremental # Incremental native build (fastest)
make build/editable # Install editable package (legacy)
make build/wheel # Build Python wheel# Build tests intelligently (automatically detects what needs rebuilding)
make build/test
# Run all tests
make test
# Run specific test types
make test/unit # All unit tests (Python + C++)
make test/integration # Integration tests
make test/ctest # C++ tests only
# Rerun only failed tests (for faster iteration)
make test/unit-failed-only # Failed unit tests (Python + C++)
make test/pyunit-failed-only # Failed Python unit tests only
make test/ctest-failed-only # Failed C++ tests only# Lint code
make lint
# Format code
make format
# Check system dependencies
make setup/check# Create environment (conda)
make setup/environment
# Update environment
make setup/update-environment# Clean build artifacts
make clean
# Show ccache statistics
make ccache/stats
# Show all available targets
make helpThis project may contain trademarks or logos for projects, products, or services. Authorized use of Microsoft trademarks or logos is subject to and must follow Microsoft’s Trademark & Brand Guidelines. Use of Microsoft trademarks or logos in modified versions of this project must not cause confusion or imply Microsoft sponsorship. Any use of third-party trademarks or logos are subject to those third-party’s policies.