- Remove all manually registered Pi tools (alpha_search, alpha_get_paper, alpha_ask_paper, alpha_annotate_paper, alpha_list_annotations, alpha_read_code, session_search, preview_file) and their wrappers (alpha.ts, preview.ts, session-search.ts, alpha-tools.test.ts) - Add Pi skill files for alpha-research, session-search, preview, modal-compute, and runpod-compute in skills/ - Sync skills to ~/.feynman/agent/skills/ on startup via syncBundledAssets - Add node_modules/.bin to Pi subprocess PATH so alpha CLI is accessible - Add /outputs extension command to browse research artifacts via dialog - Add Modal and RunPod as execution environments in /replicate and /autoresearch prompts - Remove redundant /alpha-login /alpha-logout /alpha-status REPL commands (feynman alpha CLI still works) - Update README, researcher agent, metadata, and website docs Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
57 lines
1.4 KiB
Markdown
57 lines
1.4 KiB
Markdown
---
|
|
name: modal-compute
|
|
description: Run GPU workloads on Modal's serverless infrastructure. Use when the user needs remote GPU compute for training, inference, benchmarks, or batch processing and Modal CLI is available.
|
|
---
|
|
|
|
# Modal Compute
|
|
|
|
Use the `modal` CLI for serverless GPU workloads. No pod lifecycle to manage — write a decorated Python script and run it.
|
|
|
|
## Setup
|
|
|
|
```bash
|
|
pip install modal
|
|
modal setup
|
|
```
|
|
|
|
## Commands
|
|
|
|
| Command | Description |
|
|
|---------|-------------|
|
|
| `modal run script.py` | Run a script on Modal (ephemeral) |
|
|
| `modal run --detach script.py` | Run detached (background) |
|
|
| `modal deploy script.py` | Deploy persistently |
|
|
| `modal serve script.py` | Serve with hot-reload (dev) |
|
|
| `modal shell --gpu a100` | Interactive shell with GPU |
|
|
| `modal app list` | List deployed apps |
|
|
|
|
## GPU types
|
|
|
|
`T4`, `L4`, `A10G`, `L40S`, `A100`, `A100-80GB`, `H100`, `H200`, `B200`
|
|
|
|
Multi-GPU: `"H100:4"` for 4x H100s.
|
|
|
|
## Script pattern
|
|
|
|
```python
|
|
import modal
|
|
|
|
app = modal.App("experiment")
|
|
image = modal.Image.debian_slim(python_version="3.11").pip_install("torch==2.8.0")
|
|
|
|
@app.function(gpu="A100", image=image, timeout=600)
|
|
def train():
|
|
import torch
|
|
# training code here
|
|
|
|
@app.local_entrypoint()
|
|
def main():
|
|
train.remote()
|
|
```
|
|
|
|
## When to use
|
|
|
|
- Stateless burst GPU jobs (training, inference, benchmarks)
|
|
- No persistent state needed between runs
|
|
- Check availability: `command -v modal`
|