File size: 2,441 Bytes
63dd946
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
# 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).