跳到主内容
快讯直播
AI智模界
AI 词典

算子(Operator):模型速度藏在积木怎么拼

一句话定义:算子(Operator)是深度学习框架里最小的、可被独立调度执行的计算单元——一次矩阵乘法、一次加法、一次 AI 词典:Softmax">Softmax,各自都是一个算子。

它是怎么来的

一个神经网络在代码里描述的是“数据怎么流”:张量从这层流到那层,做这做那。但机器不认这些,它只认具体动作。框架会把这份描述组织成一张计算图(Computational Graph),再把图上的节点逐个“降”成算子实例。一个 Transformer 层里就同时有矩阵乘、LayerNorm、Softmax、残差相加、GELU 激活等好几种算子。

打个厨房的比方:菜谱上写“红烧肉”,但灶台上真正发生的是切块、焯水、下锅、翻面、收汁这些原子动作。菜谱写给人看,原子动作才是真正被执行的。算子就是模型的原子动作。

为什么它决定推理速度

在每个算子单独执行时,数据要先从显存搬到计算单元附近,算完再搬回去;这趟搬运的开销经常比计算本身还大。于是有了算子融合(Operator Fusion,也叫 Kernel Fusion):把“乘完就加、加完就激活”这串连续动作合并成一个核函数(Kernel),中间结果留在寄存器或共享内存里,不写回显存。搬运次数一少,同样的算力就能跑出更高吞吐。

反过来,如果图被切得很碎,几百个小算子轮流上阵,GPU 大部分时间在等数据,算力利用率就上不去。所以同一个模型换个推理引擎,速度可能差出一大截;差距不一定来自硬件,而来自积木拼得好不好。

容易混的几个词

概念是什么关系
层(Layer)语义单位,如“注意力层”一层通常包含多个算子
算子(Operator)计算图中的最小执行节点模型被拆成它
核函数(Kernel)算子在特定硬件上的实现一个算子可有多个 kernel
计算图(Graph)算子加数据依赖的组织方式融合就发生在这一层

对从业者意味着什么

调性能时,第一步通常不是改结构,而是做算子级别的性能剖析(Profiling),看哪几个算子花掉了大部分时间。适配新硬件、新编译器,第一件事往往是把算子库补齐;研究里出现框架不支持的新运算,就得写自定义算子(Custom Operator)。这些工作看起来不起眼,却决定模型能不能真正跑起来。

对不写底层代码的人,也有一个可用的判断:评估推理加速方案时,可以问一句“它做算子融合吗,融合后剩下多少个核函数”。这不是唯一指标,具体效果以官方文档和实测为准;但问题问对了,答案就有信息量。

AI 生成本文由 AI 基于公开信息自动生成,仅供参考。