大模型分离架构学习记录

  • GPU Direct
GPU 网络的情况已经发生了很大变化。每个 GPU 都有自己的内部互联,例如 NVIDIA 的 A100 或 H800,它们内部的 NVLink 互联可以达到 600GB 甚至 900GB。这种内部互联与外部以太网网络集群设计之间存在耦合关系。GPU 是单机多网卡的,单机内的多张网卡之间有高速互联,单个服务器的带宽可以达到 3.2T,与通用 CPU 计算带宽相比至少有 6 到 8 倍的关系。GPU 需要使用 GPU Direct RDMA 来实现显存之间的数据迁移,并且需要超短的 RTT(往返时延)。
  • redis实践
redis-banchmarh 测试中,SET 方法在使用 TCP 协议下,无论线程数或数据包大小场景下均比较稳定,在使用 SMC 协议下,提升幅度较大,达到 40% 以上,在线程数 8、数据包大小 64 情况下提升 60%。GET 方法测试结果与 SET 方法相近,性能提升趋势也基本一致。

  • DistServe实验数据

(分离式架构可以在同等TTFT和TPOT下提升吞吐)

参考文章:https://aijishu.com/a/1060000000472929

decode场景可以提高batch size (input token数)(右); 但是prefill阶段batch size很容易打到上限(左)

  • batch执行方式分析 参考

RDMA优势:吞吐+耗时均可提升

Point

  • redis使用后性能提升
  • 充分利用GPU机器上的CPU、DRAM、SSD资源实现KVCache
  • 分离后更有利于prefill和decode的独立优化
    • batch size (prefill和decode的上限不同,后者更高)
    • 并行策略优化(DP,TP,PP)
      • prefill阶段:在qps较小时,更适合用tp;在qps较大时,更适合用pp
      • decode阶段:对于decode阶段,随着gpu数量的增加,如果采用pp的方式,能产生更高的吞吐量;如果用tp,则能产生更低的延迟
  • 长prompt效果更加明显
  • 优化理论依据(什么场景下,既能省耗时又能提高吞吐)
    • 对于每 X byte 的 KVCache,其生成所需的算力正比于 X*hd 再乘以一个较大的常数,这里 hd 对应模型的 hidden dimension。因此只要每卡算力比如 A100 的 220TFLOPS 和每卡通讯带宽比如 CX7 的 100Gbps 的比值小于 hd 乘以这个常数,那么从远端传输 KVCache 相比原地重算不仅仅减少了计算量还减少了 TTFT。 参考
    • 分为算力和耗时两个层面
      • 算力指生成KVCache的算力一定小于直接从缓存读取KVCache的算力
      • 耗时指生成KVCache的耗时 需要大于 直接从缓存读取KVCache的耗时

SMC (共享内存通信)和RDMA的关系? 答:RDMA就是一种远程SMC

  • 借助 SMC + ERDMA 可以实现硬件卸载 RDMA 、大规模部署,二者相辅相成。
  • 开源:https://gitee.com/anolis/hpn-cloud-kernel 龙蜥社区
  • 系列解读 SMC-R (二):融合 TCP 与 RDMA 的 SMC-R 通信 | 龙蜥技术
  • 性能透明提升 50%!SMC + ERDMA 云上超大规模高性能网络协议栈

名词

  • TOE(TCP Offload Engine)是指TCP卸载引擎。它是一种网络技术,通过将TCP/IP协议栈的一部分处理任务从主机的CPU卸载到网卡; 也就是RDMA
  • NVLink :在单台服务器内 8 块 GPU 卡通过 NVLink 连接。不同服务器之间的 GPU 卡通过 RDMA 网络连接。
  • SLO(Service Level Objective) 服务水平目标
  • TTFT(Time To First Token) prefill首token耗时
  • TPOT(Time Per Output Token) decode 每token耗时
  • TBT (Time Between Tokens) 两个 token 生成间的延迟
  • DP 数据并行
  • TP 张量并行
  • PP 流水线并行
  • MFU(Model FLOPs Utilization):即模型算力利用率
  • VRAM (video Ram) : 显存

模型推理提效的其他方式 参考

  • vLLM 提出了 Paged Attention 算法,将 attention 算法产生的连续的 key value 向量按照 block 进行组织和管理,以减少显存碎片。vLLM 还借鉴操作系统当中的虚拟内存和分页思想优化 Transformer 模型推理中产生的 KeyValue Cache,大大提高了显存当中 KV Cache 的利用效率。但 vLLM 是基于单机层面上设计,只能将 GPU 中的 block swap 到单机的内存当中。
  • SplitWise(微软)、DistServe 和 TetriInfer 将 prefill 和 decode 分离到不同的 GPU 组中以避免干扰,但它们的静态并行性和分区策略并不灵活,无法处理动态工作负载。
  • Infinite-LLM 针对 long context 场景提出分布式 DistAttention,将 KV Cache 分割成 rblock,一个 node 可以借用别的 node 上的空闲显存。但它没有做 prefill/decode 分离,并且仍然需要周期性的 KV Cache 迁移来维持局部性,并且没有考虑不同请求之间或不同阶段之间的弹性资源需求。

文章参考

  • 大模型合并及分离架构对比 https://juejin.cn/post/7408775736796872738
  • cpu_bound memory_bound及gpu计算方式讲解 https://mp.weixin.qq.com/s?__biz=Mzg2NjcwNjcxNQ==&mid=2247485453&idx=1&sn=beb642f06f3501bd235a8f42973e39fb&chksm=ce47fc79f930756f991d93f69cad36409e3dcb58e517f41f583d29609b360e9b46f6777a42b4&scene=21&poc_token=HNlC4GajIEkUH4b-GWWVXmEgS4TiLmElCs4-jRUa
  • 大模型优化方式讲解:DP、TP、PPhttps://zhuanlan.zhihu.com/p/618865052

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/diannao/53770.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

2409wtl,网浏包装

原文 介绍 本教程帮助你用IE引擎构建一个基于WTL,并使用我编写的处理IWebBrowser2接口包装类的迷你浏览器. 因为知道代码可能很难读,因此本教程帮助你逐步开发一个迷你浏览器. 背景 大部分项都与互联网浏览有关.我常用超文本视图使用SDI. 有时,我要用真正的浏览器函数,因…

创意无限:五款AI绘画应用,让艺术创作更简单

随着人工智能技术的不断进步,AI绘画已经成为一个不可忽视的现象。在短视频平台上,用户只需轻触屏幕,就能生成风格各异的画作,这种一键生成的特效迅速吸引了大量关注。AI绘画技术的快速发展,不仅让艺术创作变得更加便捷…

国产化数据库挑战及发展趋势

非国产数据库如Oracle、MySQL和MSSQL等在某些领域占据重要地位,但国产数据库的市场份额正在逐步提升,特别是在政策支持和市场需求的双重推动下,国产数据库的替代进程正在加速。 一、国产数据库市场规模 2024年中国数据库市场规模预计为543.1亿…

Python 数学建模——灰色关联度分析

文章目录 介绍原理代码实例 介绍 灰色关联度分析,可以反映两个序列 X ( k ) X(k) X(k) 和 Y ( k ) Y(k) Y(k) 之间的联系,用 r r r 表征。然而, r r r 的绝对大小并没有过多的意义,它的意义只在不同的 r r r 进行比较时体现。…

Java设计模式【命令模式】-行为型

1. 介绍 命令模式(Command Pattern) 是一种行为型设计模式,它将一个请求封装为一个对象,从而使我们可以用不同的请求对客户端进行参数化,并且支持请求的排队、记录日志以及撤销、重做等功能。命令模式将请求的发送者与…

微信小程序路由跳转之间的区别

navigateTo: 功能描述: navigateTo用于保留当前页面,跳转到应用内的某个页面。但是不能跳到 tabbar 页面。 页面栈变化: 当使用navigateTo进行页面跳转时,当前页面会被推入页面栈中,但不会被销毁&#xff0…

掌握Go语言中的时间与日期操作

Go语言中的时间与日期操作 在编写程序时,处理时间和日期看似是一项无关紧要的任务,但在需要同步多个任务或从文本文件中读取时间时,它的重要性便凸显出来。Go语言中的time包为我们提供了丰富的时间与日期操作功能。本文将详细介绍如何在Go语…

C语言蓝桥杯:语言基础

竞赛常用库函数 最值查询 min_element和max_element在vector(迭代器的使用) nth_element函数的使用 例题lanqiao OJ 497成绩分析 第一种用min_element和max_element函数的写法 第二种用min和max的写法 二分查找 二分查找只能对数组操作 binary_search函数,用于查找…

提升效率必备,掌握这些Shell文本处理技能!

Shell脚本是Linux系统里的一项基本功,就算它的语法看起来有点奇怪,读起来也不是特别顺畅,但在一些情况下,它仍然是最能干的解决办法。学好Shell脚本,不仅让你对Linux系统了解更深,还能让你手快地做好很多日…

python的特性,以及和Java的区别

两者各有各的魅力,像是编程语言界的两个明星选手。咱们先看看Python的几个重要特性,然后来个友好对比,看看Java和Python在哪些方面有“性格差异”吧! Python的主要特性 简洁易读: Python最出名的就是它的简洁性&#…

使用程序方式获取与处理MySQL表数据

8.1  执行多条语句获取 MySQL 表数据 8.1.1  MySQL 中的常量 8.1.2  MySQL 中的变量 1.用户变量 用户可以在表达式中使用自己定义的变量,这样的变量称为用户变量。 用户变量在使用前必须定义和初始化,如果使用没有初始化的变量&#x…

Python判断两张图片的相似度

在Python中,判断两张以numpy的ndarray格式存储的图片的相似度,通常可以通过多种方法来实现,包括但不限于直方图比较、像素差比较、结构相似性指数(SSIM)、特征匹配等。以下是一些常见方法的简要介绍和示例代码。 1. 像…

TypeScript系列:续篇 - 对象类型(含数组、元数组、函数)

在 TypeScript 中,对象类型用于定义对象的形状(shape),即对象包含哪些属性以及这些属性的类型。 对象类型可以是具体的,也可以是抽象的,用于类型检查和类型推断。 对象类型的最基本形式:接口&…

数据库视图和索引

参考链接: 数据库的视图和索引的概念和区别_索引和视图的区别-CSDN博客 MySQL 数据库--索引(理论详解及实例演示)_数据库索引-CSDN博客 1.视图 视图是从一个或多个表中导出来的表,是一种不是一种真正存在的概念。这样&#xf…

CUDA int128相乘是怎么实现的

CUDA int128相乘是怎么实现的 一.指令对应关系1.cuda C代码2.PTX代码[二个int64]3.SASS指令[多个u32] 二.复现过程 CUDA int128相乘是怎么实现的 一.指令对应关系 1.cuda C代码 clock_t t0clock64(); __prof_trigger(0); int128_t r4r2*r3; //二个int128_t相加 __prof_trig…

Android Glide:让图片加载从未如此简单

在 Android 开发中,图片加载一直是一个关键环节。无论是从网络还是本地加载图片,都需要考虑到性能、内存管理和用户体验等多个方面。而在这方面,Glide 成为了众多开发者的首选库之一。本文将带你深入了解 Glide 的强大之处,并介绍如何在项目中快速集成和使用 Glide。 为什…

外包干了三年,快要废了。。。

先简单说一下自己的情况,普通本科,在外包干了3年多的功能测试,这几年因为大环境不好,我整个人心惊胆战的,怕自己卷铺盖走人了,我感觉自己不能够在这样蹉跎下去了,长时间呆在一个舒适的环境真的会…

算法刷题:300. 最长递增子序列、674. 最长连续递增序列、718. 最长重复子数组

300. 最长递增子序列 1.dp定义:dp[i]表示i之前包括i的以nums[i]结尾的最长递增子序列的长度 2.递推公式:if (nums[i] > nums[j]) dp[i] max(dp[i], dp[j] 1); 注意这里不是要dp[i] 与 dp[j] 1进行比较,而是我们要取dp[j] 1的最大值…

JAVA 的excel数据批量导入解析 现在都用什么API工具 Apache POI 、EasyExcel 、easypoi有什么区别

📝个人主页🌹:个人主页 ⏩收录专栏⏪:SpringBoot 🌹🌹期待您的关注 🌹🌹,让我们共同进步! 在Java中,处理Excel数据批量导入解析时,常…

高空抛物检测算法的应用场景解析

高空抛物事件频发,对公众安全构成严重威胁。无论是居民区还是商业中心,从高层建筑中丢弃物品都可能导致人员伤亡和财产损失。传统的监控手段多以事后追溯为主,无法在事发时及时预警和干预。为应对这一难题,视觉分析技术的发展为高…