当前位置: 首页 > article >正文

Tessera:内核级异构GPU分解技术解析与应用

1. Tessera内核级异构GPU分解技术解析现代GPU数据中心正变得越来越异构化不同型号的GPU在计算能力、内存带宽和成本效率上存在显著差异。这种异构性源于GPU发布周期与退役时间表的不匹配以及高昂的成本和有限的供应。例如Google Cloud提供了多种类型的GPU包括高端GPU如A100、H100和通用GPU如L4、RTX Pro 6000AWS等其他平台也呈现类似趋势。与此同时AI的快速发展极大地增加了对GPU资源的需求这种需求在代理式AI应用单个用户请求可能触发多个顺序模型调用的推动下进一步放大。在这种背景下云提供商面临的主要挑战是如何最大化异构GPU集群的服务性能并提高成本效率Perf/$。然而现有的调度机制未能充分利用异构GPU的架构多样性留下了大量未开发的性能和成本效率提升空间。1.1 传统粗粒度分解的局限性现有分解方法如阶段级或块级存在两个根本性局限粒度太粗即使在单个FFN块内不同内核也可能表现出明显不同的资源需求而粗粒度分解无法捕捉这些差异。例如在GPT-oss 20B推理中45%的prefill内核和57%的decode内核在L40s上运行更快任何阶段级分解都不可避免地会错放大量内核。应用特定这些方法通常与特定模型架构紧密耦合限制了它们的通用性难以扩展到各种模型类型。以prefill-decode分解为例它将整个prefill阶段分配给一个GPUdecode阶段分配给另一个GPU。然而如图3(a)所示同一阶段内的内核表现出不同的GPU偏好。类似地Attention-FFN块级分解中71%的attention内核和33%的FFN内核在L40s上运行更快导致块级分解仍然错放大量内核。1.2 内核级分解的关键洞察Tessera的核心洞察是GPU内核作为基本用户级调度单元为分解提供了最合适的粒度。在内核内部更细的粒度如线程块基本上是同质的无法从进一步分区中受益而更粗的粒度如执行阶段无法捕捉资源需求的重要变化。通过分析五种代表性模型包括LLM、MLLM和扩散模型在内核级别的执行性能我们发现平均67%的内核在L40s上执行更快基于内核计数这些内核占A100上总执行时间的36%时间加权在扩散模型中高达53%这表明通过细粒度内核分解在异构GPU上加速大模型推理存在巨大机会。2. Tessera系统设计与实现2.1 整体架构Tessera是首个通过细粒度内核分解利用异构GPU的系统其设计目标是确保内核分解的正确性和高效性。如图4所示Tessera包含四个主要组件内核分析器离线分析内核捕获内存访问模式提取内核间数据依赖关系并测量异构GPU上的内核延迟策略规划器基于分析结果生成考虑内核特性、通信开销和负载平衡的负载感知内核调度策略GPU工作器运行时执行分解后的内核在线监控器持续收集运行时统计信息支持动态策略调整2.2 内核分析器的关键技术内存访问分析Tessera面临的主要挑战是现代AI框架中的内核分为两类标准库内核如cublasSgemm语义和内存访问模式明确不透明计算内核通常是开发者定义或JIT编译的内存访问模式难以观察对于不透明内核Tessera开发了PTX级别的内核分析器采用类似eBPF的PTX注入技术来跟踪内存访问。如Listing 1所示每个全局内存指令如st.global、ld.global都被插桩以记录其访问的虚拟地址。由于缓冲区的虚拟地址是连续的Tessera仅维护每个指令的最小和最大访问地址并使用原子操作如atom.global安全地聚合这些值。数据依赖分析在解析每个访问缓冲区的精确读写语义后Tessera构建数据依赖图DDG来捕获内核间数据依赖关系。分析器维护一个全局缓冲区注册表跟踪每个缓冲区的最后写入者。当内核读取缓冲区时分析器查询注册表以识别最近的写入者如果写入者与当前内核不同则添加从写入者到读取者的依赖边。对于跨迭代RAW模式如Transformer模型中的KV缓存分析器通过分析多个迭代来自动检测它们并在运行时通过每GPU缓冲区复制和异步增量传输处理。2.3 策略规划器的优化方法Tessera支持两种调度策略吞吐量导向策略针对离线推理工作负载目标是最大化系统吞吐量。Tessera将其建模为混合整数线性规划MILP问题关键术语如表II所示。该策略引入二进制放置变量xk,g表示内核k是否分配给GPU g。每个GPU的计算时间Tg是分配给它的所有内核的执行延迟总和通信开销Mg捕获所有目标为GPU g的跨GPU依赖边的总传输成本。在流水线异步执行下每个GPU的每请求阶段时间受其较慢组件限制Wg max(Tg, Mg)。系统稳态吞吐量由最慢阶段决定因此最大化整体吞吐量等同于最小化最大阶段时间。延迟导向策略针对在线服务场景目标是最小化每请求端到端延迟。在低负载下目标函数为min(∑∑ tk,g·xk,g ∑∑∑ cu,g_ij yu,g_ij)MILP可以使用Gurobi等标准求解器高效解决。在典型设置如我们的评估中GPT-oss 20B在A100L40s节点上Gurobi解决每个DDG约需20ms枚举所有执行模式总共约需5秒。这种开销可以忽略不计因为MILP优化是离线执行的不会产生运行时开销。2.4 GPU工作器的执行模型分解内核执行基于调度策略每个GPU工作器只执行分配给它的内核。Tessera采用GPU发起的通信通过InfiniBand GPUDirect Async消除CPU-GPU同步的控制路径开销。这种CPU旁路机制允许发送和接收操作作为GPU端内核发布。对于具有传入切割依赖边的内核k工作器在启动k之前发布相应的recv内核k完成后如果有传出切割边则发布相应的send内核。为了重叠通信与计算每个工作器在专用流上发布通信使用轻量级CUDA事件进行流间同步。流水线请求处理简单的分解内核执行会因通信开销导致大量GPU气泡。Tessera采用流水线请求处理机制通过多流在异构GPU上并发执行多个独立请求。每个请求被分配给专用计算流当一个计算流因数据依赖通信而阻塞时GPU硬件调度器会从其他流分派就绪内核。为避免多个请求的通信阶段对齐导致GPU空闲Tessera采用优先级感知流调度机制为后到达的请求分配较低的CUDA流优先级使GPU硬件调度器优先将SM分配给较早的请求保持GPU持续工作。2.5 在线监控器的动态适应在线监控器针对请求到达率随时间波动的服务场景。与固定负载的离线工作负载不同在线服务必须处理动态排队压力使得任何静态决策策略都不是最优的。监控器跟踪每请求延迟、每内核组延迟和通信时间基于这些信号在固定时间窗口W执行排队感知策略切换。在每个窗口边界监控器计算平均请求延迟Lreq和纯执行延迟Lexec聚合计算和通信时间排除排队延迟。比率Lreq/Lexec作为排队压力的指标低比率意味着可忽略的排队延迟有利于延迟导向策略高比率表明排队主导端到端延迟触发切换到吞吐量导向策略以提高系统处理能力3. Tessera的实际应用与性能评估3.1 实现细节Tessera当前实现针对NVIDIA GPU包含约3K行C/CUDA代码GPU工作器运行时和约2K行Python代码内核分析器包括PTX插桩和数据依赖分析。Tessera与vLLM和PyTorch集成。PTX分析器基于NEUTRINO的探针引擎实现PTX级别的内核分析器。为插桩内存访问跟踪我们使用插入的ld.param指令扩展内核参数列表然后在每个全局内存访问周围注入atom.global指令。修改后的PTX通过ptxas编译回机器代码。已知限制是无法处理间接访问。但全面研究表明最流行的ML框架如PyTorch、vLLM不包含此类内核。CUDA Graph适配Tessera拦截CUDA Graph创建API构建DDG并按拓扑顺序将图节点分区为每GPU子图。跨GPU通信完全通过IBGDACPU旁路GPU发起send/recv操作可以直接作为GPU端内核嵌入到子图中。3.2 与模型并行的组合性Tessera与模型并行正交自然组合。例如当模型在均匀GPU组上通过张量并行TP提供服务时Tessera可以将每个GPU与异构GPU配对并在每对中应用内核分解。集体操作固定到原始均匀GPU组Tessera仅在配对GPU之间调度计算内核。3.3 性能评估结果在两种硬件配置上评估Tessera本地设置三个异构GPU对1 A100 1 L40s1 H100 1 RTX Pro 60001 B200 1 H100每个配备200 Gbps RDMA NIC集群设置两个分布式配置2 A100节点与1 L40s节点8 B200节点与8 H100节点评估四种模型系列LLMLlama-3 8B和GPT-oss 20B、SSMMamba-Codestral 7B等。结果显示与现有分解方法相比Tessera在服务吞吐量和成本效率上分别提高了2.3倍和1.6倍。令人惊讶的是在Tessera下的异构GPU对甚至可以在更低成本下超过两个同质高端GPU的吞吐量。4. 内核级分解的实际应用建议4.1 适用场景判断内核级分解技术特别适合以下场景异构GPU集群当数据中心包含不同代际或型号的GPU时内核行为差异大工作负载包含明显不同的计算模式如计算密集与内存密集长期运行任务如AI模型推理服务能分摊分析开销4.2 实施路径建议分析阶段使用PTX分析器对目标工作负载进行内核级剖析识别具有明显性能差异的内核组评估潜在的性能提升空间部署阶段对稳定工作负载采用离线MILP策略对动态负载启用在线监控器逐步扩大部署范围从非关键业务开始优化阶段根据实际运行数据调整策略参数优化通信模式减少跨GPU数据传输平衡吞吐量与延迟需求4.3 性能调优技巧通信优化尽可能使用GPU直接通信如NVLink、GPUDirect RDMA对小数据量传输使用批处理分离不同优先级的通信流资源管理监控各GPU利用率避免单一GPU成为瓶颈动态调整内核分配权重考虑功耗因素在性能与能效间取得平衡异常处理为无法分析的内核设置回退机制实现自动恢复策略处理GPU故障建立性能下降预警系统内核级分解代表了异构计算资源利用的新范式它突破了传统粗粒度分配的限制为GPU集群的性能优化和成本控制提供了全新思路。随着AI工作负载的多样化和硬件异构性的持续增长这类细粒度调度技术将变得越来越重要。

相关文章:

Tessera:内核级异构GPU分解技术解析与应用

1. Tessera:内核级异构GPU分解技术解析现代GPU数据中心正变得越来越异构化,不同型号的GPU在计算能力、内存带宽和成本效率上存在显著差异。这种异构性源于GPU发布周期与退役时间表的不匹配,以及高昂的成本和有限的供应。例如,Goog…...

基于MCP协议构建企业AI数据安全访问中间件:companyscope-mcp实践

1. 项目概述:一个连接企业与AI的“翻译官”最近在折腾AI应用开发,特别是想用Claude、ChatGPT这些大模型来处理公司内部数据时,遇到了一个普遍痛点:模型能力再强,它也是个“外人”,没法直接访问你公司的数据…...

ARM GICv5 ITS_CR1寄存器配置与中断优化实践

1. ARM GICv5 ITS架构概述中断控制器是现代计算机系统中的关键组件,负责管理和分发硬件中断请求。ARM GICv5架构中的Interrupt Translation Service (ITS)模块通过创新的设备ID和事件ID映射机制,实现了灵活高效的中断路由方案。ITS作为GICv5的可选扩展组…...

AI智能体记忆系统设计:分层架构与向量化检索实战

1. 项目概述:一个为AI智能体设计的记忆系统最近在折腾AI智能体(Agent)相关的项目,发现一个挺有意思的痛点:如何让这些智能体拥有“记忆”?不是那种简单的对话历史记录,而是更接近人类工作记忆和…...

PyTorch分类网络实战:从VGG16、MobileNetV2到ResNet50的架构解析与代码实现

1. 分类网络入门:为什么选择PyTorch? 刚接触深度学习时,我也曾被TensorFlow和PyTorch的选择困扰过。直到第一次用PyTorch实现了一个简单的图像分类器,才真正体会到它的魅力。PyTorch就像乐高积木,用动态计算图的方式让…...

Go语言屏幕自动化工具Rizzler:基于计算机视觉的RPA实践指南

1. 项目概述:一个能“读懂”你屏幕的智能助手最近在折腾一个挺有意思的开源项目,叫ghuntley/rizzler。乍一看这个名字,可能有点摸不着头脑,但如果你对自动化、RPA(机器人流程自动化)或者屏幕交互脚本感兴趣…...

Python自动化反向链接侦察工具:从爬虫原理到SEO实战应用

1. 项目概述:一个反向链接自动化侦察兵如果你做过网站运营、SEO或者内容营销,那你一定对“反向链接”这个词不陌生。简单来说,当网站A上有一个链接指向了你的网站B,这个链接就是你的一个反向链接。在搜索引擎的“世界观”里&#…...

嵌入式系统如何应对VR/AR的技术挑战:从硬件选型到系统优化

1. 虚拟现实与嵌入式系统的交汇点2016年,如果你在嵌入式系统开发圈子里,听到最多的词除了“物联网”,大概就是“虚拟现实”了。那一年,Oculus Rift消费者版正式发货,HTC Vive也刚刚上市,一股VR热潮席卷了科…...

sdd-riper:专业磁盘镜像工具在数据恢复中的原理与实践

1. 项目概述与核心价值最近在整理一些老旧存储设备时,遇到了一个挺典型的问题:手头有几块年代久远的硬盘,里面可能还存着一些早年间的照片、文档,但硬盘本身已经不太稳定,系统里能识别,但拷贝文件时动不动就…...

从工程师漫画竞赛看技术社区运营与内容创作之道

1. 项目概述:一场载入史册的漫画标题竞赛在技术圈子里,工程师们除了埋头画电路、写代码,其实也藏着不少幽默细胞。2011年6月,一场由《EE Times》举办的漫画标题竞赛,就上演了堪称史上最胶着的对决。这场竞赛的核心&…...

功能开关与远程配置:现代Web应用安全发布与动态控制实践

1. 项目概述:从“快乐工具包”到现代应用配置管理 如果你是一名前端或全栈开发者,最近在关注状态管理或应用配置,可能已经听说过 happykit/flags 这个名字。乍一看,它像是一个关于“旗帜”或“开关”的库,但它的核心…...

腾讯位置服务开发者征文大赛:“独行侠”智能路线官

一个关于城市夜跑者、算法盲区与AI情感化路线推荐的真实技术实践 关键词:Go、地图SDK抽象、LLM Agent、Prompt工程、情感化推荐 目录 背景需求:都市独行侠的运动品质困境痛点诊断:为什么传统地图工具"听不懂人话"Module-SDK&#…...

容器技术从入门到精通:Docker核心概念、Dockerfile与生产实践全解析

1. 项目概述:从零到一构建容器化认知体系最近在技术社区里,经常看到有朋友在讨论stephrobert/containers-training这个仓库。乍一看,这像是一个个人或团队维护的关于容器技术的培训材料。对于刚接触 Docker 和容器生态的开发者、运维工程师&a…...

Godot引擎开发实战:高效利用代码食谱仓库加速游戏原型设计

1. 项目概述:一个为Godot开发者量身定制的“食谱”仓库如果你正在使用Godot引擎,无论是刚入门的新手,还是已经摸爬滚打了一段时间的开发者,大概率都经历过这样的时刻:脑子里有一个很酷的游戏机制想法,比如“…...

从零学会基础算法前缀和差分:数组区间求和离散化基础

首先祝大家劳动节快乐!开学两个月来学的东西不多,主要掌握了两块内容:前缀和/差分/离散化 和 数学基础。本文是第一篇,重点整理前缀和相关内容。 编程语言:C 排版助手:AI一、数组的三个简化技巧 1. 前缀和 …...

孤舟笔记 IO 与网络编程篇六 什么是网络四元组?它是理解TCP连接的关键

文章目录一、先说结论:四元组核心事实二、四元组是什么?三、一个端口能建立多少连接?四、客户端的连接上限五、NAT 和四元组六、四元组在负载均衡中的应用网络四元组 全景回答技巧与点评标准回答加分回答面试官点评个人网站面试官问"一个…...

孤舟笔记 IO 与网络编程篇五 网络编程你真的懂吗?从Socket到TCP连接全解析

文章目录一、先说结论:网络编程核心事实二、TCP 编程:三次握手的 Socket 视角三、UDP 编程:无连接的数据报四、服务端线程模型演进模型一:一连接一线程(最原始)模型二:线程池(改进&a…...

20 - 告别“无限上下文”的幻觉:大模型知识注入的“四层矩阵”与下一场权重战争

本专题系列文章共 21 篇,前 5 篇限时免费阅读 01 - 眩晕时代的定海神针:大模型落地的“第一性原理”与算力丰裕悖论 02 - 95%的AI投资打了水漂:五大错配如何扼杀你的“第二增长曲线” 03 - 从电力到AI:标准化已死,个性化永生——大模型时代的三大商业终局 04 - 你的护城…...

19 - 语言模型为何是AGI的开端?——从“知识压缩”到“智能涌现”的第一性原理

本专题系列文章共 21 篇,前 5 篇限时免费阅读 01 - 眩晕时代的定海神针:大模型落地的“第一性原理”与算力丰裕悖论 02 - 95%的AI投资打了水漂:五大错配如何扼杀你的“第二增长曲线” 03 - 从电力到AI:标准化已死,个性化永生——大模型时代的三大商业终局 04 - 你的护城…...

告别网络盲区:用RTL8811CU让旧笔记本变身Linux双频WiFi网卡/AP二合一网关

旧硬件新生:用RTL8811CU打造Linux双频无线网关实战指南 每次升级笔记本后,那些陪伴我们多年的旧设备往往被束之高阁。作为一名网络技术爱好者,我发现这些"退役"笔记本其实蕴藏着巨大的再利用价值——特别是当它们遇到RTL8811CU这样…...

【可口可乐全球设计中心认证流程】:从Prompt工程到DPI输出的12小时高保真印相交付链

更多请点击: https://intelliparadigm.com 第一章:【可口可乐全球设计中心认证流程】:从Prompt工程到DPI输出的12小时高保真印相交付链 可口可乐全球设计中心(Coca-Cola Global Design Hub)采用端到端AI增强型印前认证…...

YOLO26缝合SA(Spatial Attention):纯空间维度的特征图清洗与提炼

前沿洞察:2026年初,Ultralytics创始人Glenn Jocher在YOLO Vision 2025大会上正式发布YOLO26,定义为“生产级视觉AI的结构性飞跃”。与此同时,空间注意力(Spatial Attention, SA)作为一种“即插即用”的特征提纯手段,正以极低的计算代价重构YOLO的Neck与Head。当YOLO26遇…...

使用DSP280049的CLB做LLC硬件同步整流

一、根据epwm1a配置1pwm2a。一)搭建自己的第一部分clb结构如下:1.配置输入配置clb输入,配置输入选择epwm1a的zero与compA。input0是上升沿,input1是下降沿。2.配置计数器配置计数器,计数器重新计数配置成pwm1a上升沿。…...

2024 Q2全球AI搜索基准测试TOP3结果泄露:Perplexity在长尾专业查询中胜率68.4%,但ChatGPT在模糊意图理解上反超——你的团队该押注哪条技术路径?

更多请点击: https://intelliparadigm.com 第一章:2024 Q2全球AI搜索基准测试TOP3结果深度解读 本季度由MLPerf与AI Index联合发布的AI搜索基准测试(SearchBench v2.1)覆盖了17个主流模型,在真实网页索引、多跳推理、…...

FPGA与CPU电源时序测试技术解析与实践

1. FPGA与CPU电源时序测试的核心挑战在现代电子系统中,FPGA、MCU和CPU等处理器件的电源设计堪称"心脏手术"。我曾参与过多个Xilinx UltraScale和Intel Stratix 10项目的电源验证,深刻体会到毫秒级的时序偏差就可能导致数千美元的芯片瞬间损毁。…...

高速PCB设计实战:五种端接方案如何选型与优化

1. 高速PCB设计中的信号完整性问题 在高速PCB设计中,信号完整性(SI)问题就像城市交通拥堵一样常见。想象一下,当信号以GHz级别的频率在电路板上传输时,就像高峰期的高速公路上飞驰的跑车,任何一个小小的阻抗…...

【LangChain】 输出解析器(Output Parsers)完全指南

LangChain 输出解析器(Output Parsers)完全指南2026 年最新版 | 覆盖所有内置解析器 完整代码示例一、什么是输出解析器 输出解析器是 LangChain 中连接"自由文本 LLM"与"结构化程序"的桥梁。LLM 天生输出自然语言,但应…...

AI设计风格Prompt实战指南:从32种风格词典到精准生成

1. 项目概述:一份给AI设计师的“风格词典”如果你和我一样,经常用 Claude、Cursor 或者 v0 这类 AI 工具来生成网页界面,那你肯定遇到过这个头疼的问题:脑子里想的是“赛博朋克”或者“瑞士风格”,但打出来的 prompt 却…...

AI Agent思维文件版本控制:mindkeeper工具的设计原理与实战指南

1. 项目概述:为AI的“大脑”打造时光机如果你正在使用像OpenClaw这样的AI助手框架,或者任何基于Markdown文件来定义AI行为、记忆和技能的项目,那么你一定经历过这样的时刻:为了优化AI的回复风格,你反复调整了SOUL.md里…...

避坑指南:Arduino驱动四位七段数码管时,SevSeg库配置与硬件接线的那些细节

Arduino四位七段数码管避坑实战:从乱码到稳定显示的进阶指南 当你兴奋地按照教程连接好Arduino和四位七段数码管,上传代码后却发现显示乱码、部分段不亮或者亮度不均——这可能是每个创客都会经历的"成人礼"。本文将带你深入SevSeg库的配置细节…...