<aside> 💡

</aside>

论文

总体架构[2]

cl7wnhp5.bmp

预备知识和问题定义[1]

l247fp26.bmp

Mooncake 分离架构的概述[1]

Mooncake 采用了一种分离架构,它不仅将预填充(prefill)节点与解码(decoding)节点分开,而且还将GPU集群的CPU、DRAM、SSD和RDMA资源分组,实现了一个分离的KVCache。这种分离缓存利用了未充分利用的资源,提供了充足的缓存容量和传输带宽,使得在不增加额外成本的情况下,能够高效地实现接近GPU的前缀缓存

v9gxvtcw.bmp

KVCache池在CPU内存中的存储和传输逻辑如图3所示。在CPU内存中,KVCache被存储为分页块。根据请求模式,它可以采用如最近最少使用(LRU)、最少频繁使用(LFU)等缓存逐出算法,或基于请求特征的算法。这些KVCache块在CPU和GPU之间的传输由一个称为Messenger的独立(GPUDirect) RDMA基础组件处理。此架构还使我们能够为外部用户提供上下文缓存API,以实现KVCache的更高重用。