ZBX Blog

热爱生活,健康工作

HCCL 怎么选算法:从环境变量到代价模型打分

读通 Selector / SelectorEngine / CostModel,看懂一次调用为什么会选中那个算法

上一篇讲 AlltoAllV 时,第三节只留了一张”三选一”的表,然后一句带过:AlltoAllV 在 AICPU 下有 SoleMesh / Concurrent / MultiJetty 三种算法,按拓扑挑一个。 这其实跳过了一整个子系统。HCCL 选算法不是查一张表,而是四步串起来的一条决策流水线——而且里面同时存在两套思路完全不同的选择器。这篇把它拆开。 所有结论来自 CA...

跟着 07_alltoallv 走一遍:AlltoAllV 在 AICPU 上到底怎么跑

从四个数组过河,到 20 个 task 攒成一次 doorbell

上一篇把 AICPU 模式的机制讲完了,但全是”一般来说”。这篇换一种读法:挑一个具体算子,从示例代码一路读到硬件队列,看那些机制在一个真实调用里长什么样。 挑的是 AlltoAllV。理由有三个:它是 MoE 里最关键的通信算子;它是唯一一个参数长度运行时才确定的集合通信算子,因此能吃满 AICPU 那套”序列化过河”机制;而且仓库里正好有现成的例子 examples/02_collec...

HCCL 的 AICPU 模式:通信任务到底在哪展开

从 OpParam 过河到 Task Cache,读通 hccl/hcomm 源码里的编排下沉

上一篇讲 HCCL 实现原理时,把”通信任务到底在哪展开”压在了最后一节——因为它值得单独拆开。这一篇只回答一个问题: 一次 AllReduce,为什么要让 host 写几百条搬运指令?能不能让 NPU 自己写? AICPU 模式就是这个问题的答案。先把结论摆这儿,后面再解释每一个词: HOST 模式:host(服务器上的 CPU)一条一条写指令给 NPU,写几百条; ...

Ascend NoC 学习笔记

昇腾片上网络、数据通路与核心术语

一、NoC 是什么 NoC(Network-on-Chip,片上网络)是芯片内部的通信网络。它借鉴了计算机网络的思想:把需要传输的数据切成报文,在片内的路由节点之间逐跳转发,而不是让所有单元争抢同一条总线。 昇腾 NPU 里不只有 AI Core。一颗 SoC 通常还会集成 AI CPU、内存控制器、DVPP、PCIe/RoCE 控制器等模块。AI Core 要读 HBM,AI CPU ...

HCCL 实现原理

华为昇腾集合通信库:分层架构、通信域、算子算法与链路

上一篇文章把 MPI 的集合通信过了一遍,最后留了个尾巴:昇腾上的集合通信由 HCCL 承担。这篇把它拆开讲清楚——HCCL 不是”昇腾版 MPI”,它是一套面向 AI 训练/推理场景重新设计的集合通信库,要解决的是 MPI 没打算解决的那部分问题:多 NPU 卡间怎么建立通信、张量怎么切分、算子怎么在拓扑上滚起来、以及如何让通讯和数据搬运重叠起来。 先给一个直觉:HCCL 之于昇腾,等价...

SGLang 原理介绍

从 RadixAttention 前缀共享到以 LLM 为中心的前端 DSL

vLLM 那篇讲了”引擎怎么把 KV 缓存管好”,这一篇换个角度看 SGLang:它做的事情可以被一句话概括——把”哪些计算可以复用”这件事,从引擎内部的运行时优化,提升成了编程模型层面的显式表达能力。围绕这个目标,SGLang 在设计上做了三个层层递进的选择: 调度器与执行器分离:单个 Python 进程不再独自跑调度和模型执行,调度器化身 Scheduler 进程(CPU 上),...

vLLM-Ascend 原理

vLLM 昇腾 NPU 硬件插件:从 PagedAttention 到插件机制

vLLM-Ascend 是什么 vLLM-Ascend 是 vLLM 社区与华为昇腾团队联合维护的开源硬件插件,作用是把 vLLM 这套原生面向 CUDA 的推理引擎接到昇腾 NPU 上。它不 fork vLLM,也不改 vLLM 一行源码,只通过插件接口注入昇腾实现。用户侧装两个包即可运行: pip install vllm vllm-ascend 启动时 vLLM 扫描插件入口,...

MoE 原理介绍

Mixture of Experts 稀疏门控专家混合模型

MoE(Mixture of Experts) MoE 是一种稀疏激活的模型架构:把 Transformer 中的 FFN 层替换为多个并行的”专家”(Expert)网络,每个 token 只由一个门控网络(Router/Gate)选出 Top-K 个专家来处理。它实现了参数量与计算量的解耦——模型总参数可以做得非常大(如 DeepSeek-V3 671B),但每个 token 实际参与计...

MPI 并行编程学习

从 Hello World 到集合通信,兼谈与 HCCL 的对应

最近系统过了一遍 MPI,教材用的是 mpitutorial(mpitutorial.com 的源码仓库,有官方中文翻译)。这篇把学到的东西整理成一份可运行、可速查的笔记:先建立 SPMD 心智模型,过一遍点对点通信、死锁与动态接收,再逐个拆解集合通信,最后用一个完整的并行应用串起来,并和昇腾的 HCCL 做了对照。 一、教材与环境 mpitutorial 仓库由两部分组成:Jekyll...

大模型相关知识03

大模型相关知识03

HF模型权重拆解 模型配置文件 config.json: 存储模型架构的元数据,包括网络层数、隐藏层维度、注意力头数、词表大小、激活函数类型等参数。 模型权重文件:torch和hf权重文件 Pytorch格式pytorch_model.pth:用于保存模型权重参数的二进制文件,以字典形式保存,键为层的名称,值为对应的权重张量数据。 SafeT...