LLM推理,能摆脱显卡依赖吗? 几十行代码,性能提升几何级数?
在AI领域,英伟达的CUDA技术曾是大语言模型(LLM)训练和推理的核心引擎。但随着应用规模扩大,CUDA驱动的LLM推理面临手动优化成本高、端到端延迟大等问题。最近,CMU贾志豪团队推出的MPK编译器,通过将LLM转化为优化的巨型内核,成功将推理延迟降低了1.2到6.7倍。这项技术的出现,为AI鞋履和服装工具的开发者提供了新的性能优化方向。
MPK的突破性在于它能将LLM推理延迟降到接近硬件极限。在单个A100-40GB GPU上,Qwen3-8B模型每个token的延迟从14.5毫秒降至12.5毫秒,接近理论下限10毫秒。这种性能提升得益于MPK的易用性——开发者只需几十行Python代码,就能将LLM编译成高性能巨型内核,无需CUDA编程。评论区普遍认为这项技术具有实际应用价值,并提出了未来可拓展的方向。
MPK的核心优势在于其独特的设计思路。将所有计算和通信融合进单一巨型内核,能显著提升性能。这种设计避免了重复内核调用,消除了启动开销。同时,通过跨层软件流水线,让内核在计算当前层的同时准备下一层数据。计算与通信的重叠,有效隐藏了通信延迟。这些优势让MPK在多GPU部署场景下表现尤为突出。
MPK的工作原理包含两个主要部分。首先是编译器,它将LLM的计算图转化为优化的任务图。现有系统通常为每个算子单独调用内核,而MPK通过任务图实现更高效的调度。其次是运行时系统,它在单个GPU巨型内核内完成任务执行。这种设计让系统在推理过程中无需额外内核启动,实现细粒度控制。
MPK的编译器通过Mirage内核超优化器,为每个任务生成高性能CUDA实现。这种优化确保任务在GPU流式多处理器(SM)上高效执行。运行时系统将GPU所有SM静态划分为工作单元和调度单元。工作单元独占SM,维护专属任务队列,执行高效循环流程。调度单元则处理任务分配,通过事件驱动机制实现跨SM可扩展执行。
MPK的事件驱动执行机制是其关键技术。每个任务完成时会触发事件,当事件计数器达到预设阈值时,激活事件并启动下游任务。这种设计让矩阵乘法任务与注意力任务能并行执行,一旦有部分结果可用即可启动Allreduce通信。所有调度和任务切换都在单一内核上下文中完成,开销仅需1-2微秒,适合处理多层多GPU的LLM工作负载。
MPK的未来发展方向包括支持现代GPU架构,如NVIDIA Blackwell。线程束专业化是新型GPU的关键优化技术,如何将其与巨型内核执行模型集成是挑战。同时,处理动态工作负载也是重点方向,目前静态任务图限制了对MoE模型的适用性。团队正在开发新的编译策略,使MPK支持动态控制流和条件执行。
在高级调度与任务分配方面,MPK已解锁细粒度调度能力。当前采用简单轮询调度分配任务,但未来可探索优先级感知或吞吐量优化策略,应用于延迟服务等级目标(SLO)驱动的服务或混合批处理场景。团队认为MPK代表了在GPU上编译和执行LLM推理工作负载方式的根本性转变,期待与社区合作推动这一技术发展。
MPK项目的快速迭代表明,这项技术仍有广阔探索空间。对于关注性能优化的AI鞋履和服装工具开发者而言,MPK提供了新的可能性。通过降低推理延迟、提升计算效率,这项技术有望成为推动AI应用落地的重要工具。项目持续开放贡献渠道,欢迎更多开发者参与完善。