Heterogeneous Interconnect Congestion-aware Scheduler for LLM serving.
HICS is a runtime scheduling layer that:
- Builds a latency-weighted topology graph from hardware telemetry
- Predicts near-term congestion via a lightweight LSTM probe
- Dynamically steers KV-cache migrations, tensor-parallel activations, and pipeline micro-batches to underutilized links
LLM Framework (vLLM / SGLang)
│ transfer call
▼
HICS Interposition Shim ← NCCL / UCX hooks
│
┌────┴────┬──────────────┐
▼ ▼ ▼
Topology LSTM Path Selection
Graph Predictor Engine
▲ ▲
└──── Hardware Telemetry Daemon (1 kHz)
| Directory | Role |
|---|---|
cpp/ |
Production runtime: NCCL plugin, telemetry daemon, path engine, INT8 LSTM inference |
rust/ |
Memory-safe alternative runtime with identical scheduling logic |
python/ |
LSTM training pipeline, topology profiler, serving simulation |
Latency model:
λ_ij(s,t) = ℓ_ij + s / (B_ij · (1 - u_ij(t))^α)
Path selection:
- Compute routing flexibility set
F(t)for traffic class - Enumerate candidate paths (pre-computed k=6 shortest)
- Select path minimizing
Λ(P, σ, t)using predicted utilization - Preempt KV migrations if TP transfer exceeds deadline
cd cpp
mkdir -p build && cd build
cmake ..
make -j
./hics_demoNCCL plugin (drop-in via LD_PRELOAD):
export LD_PRELOAD=./libhics_nccl.so
python -m vllm.entrypoints.openai.api_server --model meta-llama/Llama-3-70Bcd rust
cargo build --release
cargo run --release --bin hics-democd python
pip install -e .
python examples/simulate_serving.py --lambda-rate 8 --duration 10Train LSTM predictor and export INT8 weights for C++/Rust runtime:
from hics.trainer import CongestionTrainer
trainer = CongestionTrainer.train_and_evaluate(epochs=10, export_path="weights/lstm_int8.bin")| Parameter | Value |
|---|---|
| LSTM hidden units | 32 |
| History window K | 16 samples @ 1 ms |
| Prediction horizon | 5 ms |
| Telemetry rate | 1 kHz |
| KV chunk size | 256 MB |
| Path enumeration | k=6 (Yen's algorithm) |
| Shim decision budget | < 0.8 µs |
| Contention α (NVLink / IB / PCIe) | 1.4 / 1.8 / 2.1 |
HICS integrates without framework source changes:
- NCCL:
ncclNet_v8plugin registered as preferred transport - UCX: Custom
uct_ifacetransport component for KV migrations - Startup: 200 ms profiling sweep populates topology graph
- Runtime: Telemetry daemon runs as
SCHED_FIFOthread
| Component | C++ | Rust | Python |
|---|---|---|---|
| Topology Graph | topology.hpp |
topology.rs |
topology.py |
| LSTM Predictor | lstm_predictor.hpp |
lstm_predictor.rs |
lstm_model.py |
| Path Selection | path_engine.hpp |
path_engine.rs |
path_engine.py |
| SLO Preemption | path_engine.cpp |
path_engine.rs |
path_engine.py |
| Telemetry | telemetry.hpp |
telemetry.rs |
— |
| NCCL Shim | shim.hpp |
shim.rs |
— |
| Training | — | — | trainer.py |
| Profiler | shim.cpp |
shim.rs |
profiler.py |
MIT