GPU 主机如何开启 GDS
· ☕ 5 分钟
1. 什么是 GDS(GPUDirectStorage) GDS 允许 RDMA 网卡直接访问 GPU 内存,有助于增加 GPU 应用读写文件的 IO 带宽,减少 IO 时延,并降低其 CPU 负载。 客户端在开启 GDS 特性后,文件将以 O_DIRECT 方式打开,客户端不会再缓存文件数据。应用层读写文件时,客户端通过 nvidia-fs.ko 将

什么是 Token
· ☕ 2 分钟
Token 是一个与数据紧密相关的单位,可以用来度量训练模型所需的语料量,还可以用来度量推理时的输入和输出长度。 1. token 是什么 Token 可以是一个完整的单词、子词,甚至是一个字符。在语言模型中,文本被拆分为若干个 token,模型逐一处理这些 token 来生成预测或生成新文

什么是 FLOPs
· ☕ 1 分钟
1. 关于 FLOPs FLOPs(Floating Point Operations Per Second)指的是每秒执行的浮点数运算次数。 具体地说: 一次浮点加法:如 a + b,被计为一次浮点运算。 一次浮点乘法:如 a * b,也被计为一次浮点运算。 其他基本浮点运算:如除法和平方根,也可以被计为一次浮

什么是 PD 分离
· ☕ 1 分钟
1. 定义 LLM 推理过程中存在着两个截然不同的阶段,PD 分离就 计算密集型的 Prefill 阶段, LLM 处理所有用户的 input,计算出对应的 KV Cache 显存密集型的 Decode 阶段, 顺序的产生一个个的 token,每次访存只计算一个 token 2. 指标 2.1 prefill 性能评估指标 TTFT(Time To First Toke

Kubernetes 下的 DLRover 工作流程分析
· ☕ 13 分钟
本文使用的 DLRover 版本是 0.3.7 1. DLRover Operator 1.1 启动 ElasticJob 和 ScalePlan 的控制器 实现代码: 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 // 创建 ElasticJob 的控制器 if err = controllers.NewElasticJobReconciler(mgr, masterImage).SetupWithManager(mgr); err != nil { setupLog.Error(err, "unable to create controller", "controller", "ElasticJob") os.Exit(1) } // 创建 ScalePlan 的控制器 if err = controllers.NewScalePlanReconciler(mgr).SetupWithManager(mgr); err != nil { setupLog.Error(err, "unable to create controller", "controller", "ScalePlan") os.Exit(1) } // 启动控制器 if err := mgr.Start(ctrl.SetupSignalHandler()); err != nil { setupLog.Error(err, "problem running manager") os.Exit(1) } 这部分代码是