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).