
在AI领域,NVIDIA开发的CUDA是一种中央计算机发动机,可促进对大型语言模型(LLM)的培训和推断。但是,由CUDA指导的LLM的推论面临着手动优化成本的不便和结束至端高的高度,并发现更优化或更有效的替代方案。最近,CMU Zhihao Jia教授助理团队的一支团队创新了游戏,并推出了一个名为“ Mirage Persistant内核(MPK)”的编译器。这使您可以自动将LLM转换为优化的巨型甲壳虫,从而将LLM惯用性延迟从1.2减少到6.7倍。 Github address: https://github.com/mirage-project/mirage/tree/mpkblog Address: https://zhihaojia.medium.com/compiling-llms-into-a-megakernel-a-path-o-path-Low-Late-late-late-late-late-late-late-late-Late-Late-Late-Late-Late-Late- QWEN3-8B的每个令牌为14.5ms(VLLM/SGLANG),基于内存频段的较低理论限制为10 ms。 MPK非常易于使用。要兼容Ile LLM在高性能巨型核中,您只需要数十个Python代码线,可以在整个过程中快速推断而无需CUDA编程。评论部分还对MPK有积极的看法,该意见暗示了未来的扩展地址。引入MPK的需求是减少LLM推断延迟的最有效方法之一是将所有计算和通信合并在一个巨大的核中,也称为连续核。在此设计中,系统仅开始一个GPU核,以执行与GPU通信与GPU的整个层模型。这种方法提供了一些重要的性能优势。消除核心启动过载:避免核中的重复调用,可以在多GPU环境中消除内核的起始过载。 epline的软瓦拉实现使细胞核在计算当前层时可以开始为下一层加载数据。重复的计算和通信:因为巨大的核可以同时执行与GPU的计算操作和GPU通信,从而隐藏了通信延迟。尽管有这些好处,但在大核中的编译LLM仍然很困难。现有的ML Marcos,例如Pytorch,Triton和TVM,并不支持自己的结束 - 末端的末端。此外,现在LLM生成系统是由各种专门的核库构建的。 NCCL或NVSHMEM用于通信,FlashInfer或FlashAtnts,以进行仔细的效率和压碎计算或Triton用于个性化计算。这种碎片使将完整的推理管整合到单个统一的核中变得非常困难。 Andnto,这个过程可以通过汇编自动化吗?受这个主题的启发,CMU团队,华盛顿大学,加利福尼亚大学,伯克利大学,NVIDIA和TINSHURE大学开发了MPK。这是一个编译器和执行时间系统,可以自动转换T他将多个GPU推断为快速巨型核。 MPK释放了末端-DEND GPU融合的性能优势,并且仅需要开发人员的最低手动努力。 MPK优势的关键MPK优势是,它消除了内核的启动过载,并通过在整个计算机层,数据负载和从GPU到GPU的通信中重叠来实现LLM的推理潜伏期非常低。下图1显示了GPU和多GPU配置中的MPK性能比较和现有的LLM推理系统(请参见上文以获取更多详细信息)。除了仅优化GPU外,MPK还集成了单个巨大核中从GPU到GPU的计算和通信。该设计允许MPK最大化计算机科学和通信。因此,当前系统的MPK性能提高随GPU数量的增加而增加,在多个最常见的GPUSER实施方案中尤其有效。 MPK的工作原理MPK工作王子IPLE包括MPK编译器的两个主要部分,将计算LLM图形转换为优化任务图形:第2部分:MPK执行时间系统。这使用高性能和低潜伏期在一个巨大的核中执行任务图。编译器:将LLM转换为精细谷物任务图形的计算过程LLMCollection Communiction Rimitives(例如读取),边缘表示操作员之间的数据依赖性。现有系统通常为每个运营商开始一个独立的GPU核心。 However, this single operator core execution model "hinders the implementation of pipe optimizations, since the units are applied at the coarse grain level of the entire nucleus instead of at the level of the real data unit. A typical example is the multiplication of matrix (Matmul) followed by a complete reduction operation. In existing systems, all reduced nuclei must wait for the entire matmul nucleus to be completed. In fact, each reduced data part depends on在Matmul输出的局部结果上。逻辑和真实依赖关系之间的这种差异受到严重限制,并且可以重叠计算和通信的可能性。下面的图2显示,MPK编译器将Pytorch定义的计算图形LLM转换为精细粒子任务的优化图形,以最大程度地提高暴露并行性。次优的解决方案显示在右侧:引入不必要的数据和全局障碍依赖性,从而导致优化跨层管的机会有限。为了解决此问题,MPK引入的编译器可以自动将计算LLM图形转换为精细的谷物任务图形。该任务图表明确捕获了子卡纳尔级的依赖项,从而优化了更基本的网状层管道。具体而言,MPK任务图(如图2所示):任务(矩形表示)。分配给单个GPU T的计算机/通信Ransmission多处理器(SM)代表一个单元。事件(圆形表示)QIT表示任务之间的同步点。激活机制意味着任务问题是指向激活事件的边缘。在完成所有相关任务后,这将被激活。依赖机制,每个任务都会获得依赖事件的优势,这表明该任务在激活事件后立即开始。任务图形允许MPK发现通过计算图形无法实现的管道优化的机会。例如,MPK可以创建优化任务图形。在这里,每个任务仅基于生成其入口的相应MATMUL任务,该任务允许执行叠加的碎片和通信。除了生成优化任务外,MPK还通过超矩阵Nucleus优化为每个任务生成高性能CUDA实现R,确保任务有效地在GPU传输多处理器(SMS)中起作用。第2部分:执行时间:MPK Megokey中任务映射的执行包括一个内置的GPU执行时间,该执行时间允许完整的任务映射在单个Mega-Key GPU中运行。这使系统可以很好地控制任务的执行和编程,而无需在推理过程中进行额外的核心启动。为了实现此机制,MPK在两个起始角色中静态地将GPU中的所有传输多处理器(SM)划分为:工人和程序员。操作中的SMS和编程SMS的数量由核心创业公司组成,总计等于物理SMS的总数,完全避免了动态上下文中的变化。工作单位每个工作单元都有一个传输多处理器(SM),该多处理器(SM)保持独特的任务尾巴。其执行遵循以下有效和简洁的循环过程:获取任务。删除以下任务从尾部进行的MED:执行计算:执行任务(例如,矩阵乘法/预防措施/InterGPU数据传输)。事件触发器:完成任务后,通知激活事件。循环执行:重复上一个过程。这种机制不仅保证了工作单元的全部负载连续运行,而且还允许执行各层和横向操作之间的异步任务。编程单元的编程决策是通过分布式MPK编程单元来处理的,每个编程单元均在单个线程软件包(WARP)中做出。由于多处理器(SMS)可以为每个变速箱容纳多个线程软件包,因此单个SM可以同时运行TOFOUR编程单元。每个编程单元都保持激活事件的尾声,并连续执行以下操作:事件预订:消除取决于满意度的激活事件(即,所有以前的任务均已完成)。开始任务:安排一组取决于激活事件的任务。这种分布式的编程机制通过SM实现可扩展执行,同时最大程度地减少了关节过载。基于执行事件的执行图3显示了MPK执行时间表。每个矩形代表在工作单元中运行的任务。每个圆圈代表一个事件。任务完成后,与激活事件相对应的计数器将增加。当事件计数器达到预先建立的阈值时,该事件应该被激活并添加到LTO编程单元的事件尾部。编程单元启动了取决于事件的所有下游任务。该设计允许精细的谷物软件管道,可以在计算和通信之间进行重叠,例如矩阵乘法任务(MATMUL),可以与不同层的注意任务并行执行。一旦有一些可用的MATMUL结果,您就可以开始全部减少通信。所有人Amming和任务切换发生在单个中心上下文中,因此任务之间的过载非常低,通常仅1-2微秒,这允许有效执行多GPU LLM工作负载。下一步是使MPK更易于使用大量的汇编,这是设备实现高性能的愿景。当前,仅需要数十个Python代码线(主要用于指定巨型核的入口和退出)以在大核中编译LLM。在这个方向上仍然有各种各样的探索室,一些目前积极包括的关键领域:对最新的GPU体系结构的支持。下一个里程碑是扩大MPK,以支持Nvidia Blackwell等下一代体系结构。主要的挑战是如何专门研究线程软件包,这是新GPU的关键优化技术。它与MPK巨型核心执行模型集成在一起。管理工作负载的动态。 MPK目前正在构建静态任务图形,WHICH限制了处理动态工作负载(例如MOE模型)的能力。该团队正在制定一种新的汇编策略,该策略将使MPK能够在巨大的核中接受动态控制流和有条件执行。高级编程和任务分配。 MPK在任务级别解锁LTO新的细谷物编程功能。尽管当前的实施方式使用简单的投票程序来分配传输多处理器(SMS),但团队为高级编程策略提供了令人兴奋的机会,这些策略可以应用于诸如目标服务目标(SLO)和混合批次的处理,在高级编程策略中,例如优先级问题或绩效优化策略。该小组认为,MPK代表了LLM推理工作量在GPU中编译和执行的方式的根本变化,并希望与社区合作。 ,并将共同努力为这个愿景。此外,该项目是快速迭代非常欢迎有兴趣的合作伙伴参加贡献。