Mooncake TENT GDS

导言

一开始我只知道一件事:Mooncake 通过 TENT 接入了 NVIDIA GPUDirect Storage。真正沿代码往下追时,三个问题很快连在了一起:TENT 到底怎样调度一次传输,GDS 向上提供了哪些能力,以及新后端怎样实现同一套契约。

最关键的判断是:TENT 不是 GDS 的一层薄封装,而是负责 Segment、内存注册、后端选择、批次和状态推进的统一运行时;GdsTransport 才负责把 File Segment 请求翻译成 cuFile Batch I/O。 理清这条分工后,submitTransferTaskscuFileBatchIOGetStatus 和新后端接口会自然落在同一张图里。

Read more

Mooncake NDS Integration

导言

手里已经有一套面向 NPU 的 NDS send/receive 接口,下一步是把它接入 Mooncake。乍看之下,这只是把 GDS 的 cuFile* 调用替换为 NDS API;但沿源码真正走一遍后,会遇到两个容易误判的事实:Mooncake 同时保留了新旧两代 GDS 路径,而 Mooncake Store 的磁盘副本读写目前又绕开了它们。

因此,接入点不应先选旧 NVMeoFTransport,也不能只新增一个 transport 就宣称 Store 已经获得 NPU 直读 SSD。更稳妥的路径是:先把 NDS 实现为 TENT 的 NdsTransport,复用其选择、批次、状态与回退机制;再单独改造 Store 的文件副本路径。

Read more