KTransformers加速SGLang的混合推理

KTransformers项目为Mixture-of-Experts(MoE)模型的CPU/GPU混合推理提供了一系列优化,显著提升了计算效率。通过引入AMX优化的CPU内核和高效的设备协调机制,KTransformers解决了传统混合推理中的协调开销和计算资源未有效利用的问题,使得在单机上部署万亿参数模型成为可能。

背景:稀疏MoE模型的混合推理

现代Mixture-of-Experts(MoE)语言模型,如DeepSeek-V3,包含数千亿个参数,但每个标记仅激活一小部分专家。由于这种稀疏激活模式,MoE模型非常适合CPU/GPU混合推理:稀疏激活的专家可在内存大的CPU上高效运行,而密集的计算组件则可以在带宽和吞吐量更高的GPU上执行。

异构计算

KTransformers:释放MoE模型CPU/GPU混合推理的潜力

为了解决混合推理中的挑战,清华大学的MadSys和Approaching.AI开发了KTransformers项目,提供了一系列优化,使CPU/GPU协作推理更加高效。其改进主要分为三个方面:

1. AMX优化的CPU内核

KTransformers通过Intel AMX优化的内核和面向缓存层次结构的内存布局重新设计了CPU计算。单个Xeon插槽上,AMX优化内核的持续吞吐量可达21.3 TFLOPS,比PyTorch原生实现快3.9倍。

2. 高效的设备协调

通过引入NUMA感知的张量并行和CUDA图支持的调度,KTransformers大幅度减少了CPU和GPU之间的协调成本。NUMA感知的张量并行将专家权重片段放置在每个NUMA节点的本地内存中,从而避免了昂贵的跨NUMA内存流量,实现了高达63%的解码吞吐量提升。

3. 专家推迟机制

通过推迟某些专家的执行,KTransformers允许CPU专家计算与GPU注意力处理重叠进行,从而提高了设备的并发利用率,解码吞吐量提升高达1.45倍,精度变化不超过0.5%。

将KTransformers集成到SGLang

SGLang现已将KTransformers集成为后端库,使得MoE模型的CPU/GPU混合推理更加高效。其结合了GPU张量并行与CPU/GPU混合专家并行,在异构设备上支持推理。

安装指南

要使用SGLang的KTransformers混合推理,需要安装SGLang和KTransformers CPU内核(kt-kernel)。请确保您的系统满足以下要求:CUDA版本12.1或以上,Linux x86_64操作系统,gcc、g++ >= 11,CMake >= 3.25,Python 3.11。

基准测试结果(预览)

在单GPU+CPU配置下,KTransformers在所有提示长度中均优于基线,得益于AMX优化的CPU内核,速度提升高达20倍。在解码阶段,KTransformers也表现优异,主要归功于减少了CPU/GPU协调开销,速度提高可达4倍。