dlslime-v0.0.3
Pre-release
Pre-release
dlslime 0.0.3
First GitHub Release. pip install dlslime==0.0.3 is live on PyPI. This release is the big post-0.0.2 consolidation: a control plane, a cache subsystem, an observability stack, and a full refactor of the RDMA completion ownership model.
🎉 New subsystems
- NanoCtrl control plane (#68, #84, #90). Rust/Axum server with Redis-backed, scope-isolated peer registration and MR publication. Ships as a separate
nanoctrlPyPI wheel (now at v0.0.8). - PeerAgent refactor (#80, #81, #88). PeerAgent becomes the runtime hub with auto NIC/topology discovery, directed-connection model, and a canonicalized Python API.
- DLSlimeCache v0 (#82). Slab-based in-process KV cache with peer/version directory.
- SlimeRPC (#69 , #73). Datapath moved to C++, zero-copy inplace reply path, Python backend dropped.
- Observability v0 (#91). C++ relaxed atomic counters, PeerAgent reporter writes Redis snapshots,
nanoctrl obs {status,peers,nics,links}queries cluster state.DLSLIME_OBS=0by default; single-branch overhead when disabled. - GitHub Actions CI (#78). Build + lint on every PR.
🔧 RDMA engine
- Refactor RDMAEndpoint completion ownership (#70). Slot-lease ring + per-QP callback masks eliminate modulo-reuse races. One
EndpointOpStateowns a user op end-to-end; callbacks update it instead of the pool slot. - RNR handling for imm-recv (#71). Pre-posted RECV window keeps the HW RQ primed so
WRITE_WITH_IMMfrom peers always finds a posted receive. - CQ depth limit fix (#66).
unregister_mron RDMAMemoryPool (#89).- Concurrent sendrecv stress test (#77).
- P2P RDMA RC read control-plane fixes (#74, #75).
- Aggregate transfer bench memory reduction (#76).
📚 Docs & housekeeping
- Arch diagrams refreshed (#85, #86).
- README / news / logo updates (#72, #79, #83, #87).
- All-to-all offsets helper (#60).
Install
pip install dlslime==0.0.3
pip install nanoctrl==0.0.8 # control-plane CLI + server- Build from source with NVLink support:
DLSLIME_BUILD_NVLINK=1 pip install dlslime==0.0.3 --no-binary dlslimeCompatibility
- Python 3.8 – 3.13, Linux x86_64 (manylinux2014).
- Requires libibverbs at runtime for RDMA transport.
- Companion: nanoctrl>=0.0.8 for control-plane features.
Known limitations (v0)
- Observability reports semantic submit/completion only for one-sided ead / write / writeWithImm. Two-sided send/recv/immRecv are intentionally not accounted in v0.
- No latency histograms, no Prometheus exporter by design — use nanoctrl obs ... --json for scripting.
- nanoctrl obs links catalogs connections; per-link traffic counters (BW, BYTES, PENDING, ERRORS) render as - pending follow-up.
- Single NanoCtrl instance; no HA.
New Contributors
- @JimyMa made their first contribution in #1
- @CokeDong made their first contribution in #3
- @HaoLiuuu made their first contribution in #4
- @zhhsplendid made their first contribution in #21
- @FirwoodLin made their first contribution in #39
Full Changelog: https://github.com/DeepLink-org/DLSlime/commits/dlslime-v0.0.3
PR before 0.0.2
- Bump to dlslime 002 by @JimyMa in #63
- init_rc_to_release by @JimyMa in #64
- update to 0.0.2.post1 by @JimyMa in #65
- Fix/rdma cq limit by @JimyMa in #66
- a2a offsets by @FirwoodLin in #60
- Stabilize SlimeRPC benchmark transport and optional NanoDeploy backend by @JimyMa in #69
- Fix RDMA imm recv RNR handling by @JimyMa in #71
- update readme by @JimyMa in #72
- SlimeRPC: move datapath to C++, add zero-copy inplace reply path, drop Python backend by @JimyMa in #73
- P2p rdma rc read ctrl plane fix by @JimyMa in #74
- P2p rdma rc read ctrl plane fix by @JimyMa in #75
- Reduce aggregate transfer bench memory usage by @JimyMa in #76
- Refactor RDMAEndpoint completion ownership by @JimyMa in #70
- add sendrecv concurrenct stress test by @JimyMa in #77
- Add GitHub Actions CI by @JimyMa in #78
- update logo by @JimyMa in #79
- modulize_peer_agent by @JimyMa in #80
- Topology info by @JimyMa in #81
- Init cache by @JimyMa in #82
- Update README by @JimyMa in #83
- add NanoCtrl by @JimyMa in #84
- update arch by @JimyMa in #85
- Update arch by @JimyMa in #86
- [PeerAgent] refine peer_agent api by @JimyMa in #88
- update latest news by @JimyMa in #87
- add unregister_mr by @JimyMa in #89
- [NanoCtrl, PeerAgent] fix scope name logic by @JimyMa in #90
- init observable by @JimyMa in #91
- bump dlslime to 003 by @JimyMa in #92