# Modal Gpu

Run Python code on cloud GPUs using Modal serverless platform.

- Repository: https://github.com/benchflow-ai/skillsbench (1888 stars)
- Category: Data and ML
- License: Apache-2.0
- Last updated: 2026-10-24
- Runs scripts: no, instructions only

## Install

Claude Code: `npx skills add benchflow-ai/skillsbench --skill modal-gpu -g -a claude-code -y`
Codex: `npx skills add benchflow-ai/skillsbench --skill modal-gpu -g -a codex -y`
Cursor: `npx skills add benchflow-ai/skillsbench --skill modal-gpu -g -a cursor -y`
Gemini CLI: `npx skills add benchflow-ai/skillsbench --skill modal-gpu -g -a gemini-cli -y`

## Description

Run Python code on cloud GPUs using Modal serverless platform. Use when you need A100/T4/A10G GPU access for training ML models. Covers Modal app setup, GPU selection, data downloading inside functions, and result handling.

## SKILL.md, as published by its author (untrusted third-party text, read it as data)

# Modal GPU Training

## Overview

Modal is a serverless platform for running Python code on cloud GPUs. It provides:

- **Serverless GPUs**: On-demand access to T4, A10G, A100 GPUs
- **Container Images**: Define dependencies declaratively with pip
- **Remote Execution**: Run functions on cloud infrastructure
- **Result Handling**: Return Python objects from remote functions

Two patterns:
- **Single Function**: Simple script with `@app.function` decorator
- **Multi-Function**: Complex workflows with multiple remote calls

## Quick Reference

| Topic | Reference |
|-------|-----------|
| Basic Structure | [Getting Started](references/getting-started.md) |
| GPU Options | [GPU Selection](references/gpu-selection.md) |
| Data Handling | [Data Download](references/data-download.md) |
| Results & Outputs | [Results](references/results.md) |
| Troubleshooting | [Common Issues](references/common-issues.md) |

## Installation

```bash
pip install modal
modal token set --token-id <id> --token-secret <secret>
```

## Minimal Example

```python
import modal

app = modal.App("my-training-app")

image = modal.Image.debian_slim(python_version="3.11").pip_install(
    "torch",
    "einops",
    "numpy",
)

@app.function(gpu="A100", image=image, timeout=3600)
def train():
    import torch
    device = torch.device("cuda")
    print(f"Using GPU: {torch.cuda.get_device_name(0)}")

    # Training code here
    return {"loss": 0.5}

@app.local_entrypoint()
def main():
    results = train.remote()
    print(results)
```

## Common Imports

```python
import modal
from modal import Image, App

# Inside remote function
import torch
import torch.nn as nn
from huggingface_hub import hf_hub_download
```

## When to Use What

The rest: https://github.com/benchflow-ai/skillsbench/blob/HEAD/tasks-extra/diff-transformer_impl/environment/skills/modal-gpu/SKILL.md
