You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
snapshot-agent: document the app-channel backend in the user guide (#106)
## Summary
Documents the app-channel backend in the snapshot-agent user guide:
- Backends table gains the `app_channel` row.
- New "Application-Aware (app_channel)" section: when to use it (Python-API workloads with no HTTP server), workload-side registration with `register_workload` — recognized engines, the `Snapshottable` object form, and callbacks for workloads without a public C/R API — capabilities and mode resolution, and the caller side (`AppChannelConfig`, empty config = workload's registered default).
- Composing-backends section notes both application-aware transports compose with CUDA checkpoint the same way.
## Testing
Docs only. The documented flows are exercised by the channel integration tests ([app-channel 4]): 12/12 on H100.
Signed-off-by: Aishu Kamal <aishuk@google.com>
| CUDA Checkpoint | `cuda` | Process-level CUDA state save/restore via `cuda-checkpoint` | ~100% | ~1-3s |
153
153
| Application-Aware | `app_endpoint` | Suspend/resume through the application's own HTTP API (vLLM, SGLang) | ~96% | ~50-100ms |
154
+
| Application-Aware | `app_channel` | Suspend/resume pushed over a channel the workload registered (Python-API workloads, no HTTP server) | ~96% | ~50-100ms |
154
155
155
156
The VRAM Freed and Resume Time figures are illustrative, measured with a small model (Qwen2.5-0.5B) on an H100; actual numbers depend on the model size, hardware, and engine version.
156
157
@@ -263,9 +264,89 @@ with SnapshotAgentClient("localhost:9001") as client:
result = client.snapshot_and_wait(job_id="my-sampler", backend_config=channel_config)
339
+
340
+
result = client.restore_and_wait(job_id="my-sampler", backend_config=channel_config)
341
+
```
342
+
343
+
A request for a job with no registered channel fails fast with
344
+
`no workload channel registered for job "..."`. If the workload's suspend
345
+
raises, the operation fails with the workload's error text.
346
+
266
347
### Composing Backends
267
348
268
-
Application-aware suspend and CUDA checkpoint are separate operations that compose. Suspend first, then checkpoint; restore in reverse order:
349
+
Application-aware suspend (either transport) and CUDA checkpoint are separate operations that compose. Suspend first, then checkpoint; restore in reverse order:
0 commit comments