Anuvani-Diarization / src /docs /ARCHITECTURE.md
StephennFernandes's picture
Anuvani-Diarization 1.0.0
63dd946
|
Raw History Blame Contribute Delete
2.44 kB
# Architecture
```
Python users Services and many users
anuvani_diar.Diarizer / anuvani-diar CLI anuvani_diar.Client · curl · triton_inference/tools/bench.py
anuvani-diar-check | HTTP: upload or server path -> job id -> status -> RTTM
| v
| anuvani-diar-gateway (Rust, axum)
| spool, admission, token, jobs, result cache, metrics
v |
diar-engine (Rust) ------------------------------+ the same engine in both
input pool: libsndfile decode, channel mean, validation, window plan (diar-audio, diar-core::front)
device pool: one worker per GPU slot, blocks of 8 windows, schedule fifo / fair / share
post pool: clustering, the decoder, RTTM text (diar-core, diar-exact)
| |
v v
TorchNN (in process, one CUDA stream per GPU) Triton 24.10: diar_nn_g0..g5 (one per GPU) + resample_cpu
the release's own PyTorch model code one container for all GPUs (serve.sh) or one per GPU (compose)
```
| Layer | Where | What it guarantees |
|---|---|---|
| numerics | `crates/diar-exact` | numpy, scipy, pyannote and CPython arithmetic reproduced operation by operation |
| front-end and post-processing | `crates/diar-core` | the release's windows, batches, masks, clustering, decoder and RTTM text |
| audio | `crates/diar-audio` | soundfile's decoding with the same libsndfile binary, numpy's channel mean, the release's errors |
| engine | `crates/diar-engine` | overlap of decoding, networks and clustering across files and GPUs, with the release's batch shapes |
| networks | `python/anuvani_diar/nn`, `triton/models` | the release's model objects and flags; a start-up check of every batch shape |
| serving | `crates/diar-gateway`, `crates/diar-triton` | limits, restarts that cost time not results, metrics |
| Python | `python/anuvani_diar` | `Diarizer`, `Client`, the CLI and the install check |
Read next: `ENGINE.md` (the pools and schedules), `DETERMINISM.md` (why the bytes match), `TESTING.md` (how that is
checked), `SECURITY.md`, `../triton_inference/README.md` (serving) and `../triton/README.md` (its Triton images).