Spaces:
Running on Zero
Download README.md from rfick/disco-zero: direct link, hf CLI and curl.
- Browser
- Download file 2.77 kB
-
https://huggingface.co/spaces/rfick/disco-zero/resolve/main/README.md
- Command line
-
hf download hf://spaces/rfick/disco-zero/README.md
-
curl -L -o README.md https://huggingface.co/spaces/rfick/disco-zero/resolve/main/README.md
A newer version of the Gradio SDK is available: 6.30.0
title: DiSCo replay to tractogram (ZeroGPU)
emoji: 🧠
colorFrom: indigo
colorTo: blue
sdk: gradio
sdk_version: 6.28.0
app_file: app.py
pinned: false
license: mit
short_description: DiSCo replay to connectome on the shared GPU pool
The DiSCo Space on ZeroGPU
The same application as rfick/disco (dmrai-lab/disco-space) on Hugging Face's shared GPU pool: the compute backend
is PyTorch (DISCO_BACKEND=torch: dmipy-sim's shape-moment image, dmipy-fit's csd_tournier07_torch, dmipy-tract's
torch tracker), the GPU exists for the duration of one run (spaces.GPU), and the layout's tiles are rebuilt on the
device inside every call from the layout downloaded from the Hub when the container started. Deterministic algorithms are on and TF32 off inside the
call. Source and pins: https://github.com/dmrai-lab/disco-space (requirements-zero.txt, app.py).
GPU quota per visitor
Every run reserves the GPU for the seconds the page shows under the run button. ZeroGPU charges that reservation
against the visitor's daily quota, not the Space's: 2 minutes logged out, 5 with a free Hugging Face account, 40
with PRO; a single request above the visitor's quota is refused before it starts ("The requested GPU duration (N s)
is larger than the maximum allowed"), and a run that outlives its reservation is killed. Only the device part of a
run (space.app.compute: the replays, the noise, the CSD, the tracking, the scoring, the explorer's maps) holds the
GPU; the page writes the files and draws in its own process after the device is released (disco-space#7).
Measured on the pool (DiSCo 364, every tier, density 4, 2026-09-30, dmipy-sim 7f6f1fa with #522 and #523; not re-measured at the current pins, dmipy-sim 1b79d2e, which the pool runs only once deployed):
| run | device held | handoff | client wall | reserved |
|---|---|---|---|---|
| DiSCo 364 | 23 s | 1.5 s | 73 s | 42 s |
| DiSCo 364 + the explorer's ladder | 53 s | 2 s | 108 s | 87 s |
| DiSCo 364, A + B (B0 transverse), no ladder | 42 s | 3 s | 130 s | 67 s |
| DiSCo 364, A + B (SNR → 10) + ladder | 72 s | 4 s | 160 s | 113 s |
Before the split the device was held 77 s and 100 s for the first two runs (the files, the states, the figures and a 15 s host pass for the ingredient maps were inside the window), and every run at a field direction the host had not preloaded contracted the 8 GB field channels on the host inside the window (8 s; the default direction too, through a key mismatch, dmipy-sim#523). The reservation is 16 s + 0.045 s per measurement + 0.096 s per measurement for the ladder + (8 s + 0.032 s per measurement) for B + 10 s per extra tracker key, times 1.3. DiSCo 364 alone, with the ladder, and A + B + ladder all fit a logged-out visitor's 2 minutes.