引言
NPU 的峰值算力通常来自 Tensor Engine,但完整推理还包含规约、激活、特殊函数和数据转换等操作。这些操作即使计算量不大,也可能因执行或搬运开销而拖慢模型。
玄铁 Titan 基于 RISC-V Vector Extension 1.0(RVV 1.0),支持行业最高 4096 bit 的 RISC-V 向量寄存器位宽,具有独立执行与访存流水线。针对 AI 推理场景扩展了三个专用单元:SFU、Convert、Reduction 分别加速特殊函数、类型转换和归约;并且不同的执行 Group 可在无数据相关时并行推进。下面以 Softmax 为例,介绍这些单元如何工作,以及它们对模型时延的影响。
一、矩阵计算之外,NPU 还需要什么
Tensor 与向量引擎的分工
在端侧 NPU 中,Tensor Engine 通常承担 Conv、Linear、MatMul 等规则且密集的计算;向量引擎则适合逐元素计算、激活、归约、归一化及部分数据重排。实际分工取决于引擎能力和融合策略,例如简单激活也可以在 Tensor Engine 内就近完成。
玄铁 Titan 正是承担这一角色的可编程向量引擎,为 NPU 提供矩阵计算之外的灵活算力。
![]()
图 1|Titan 在端侧 NPU 中的角色
用 Softmax 看清向量计算瓶颈
以一行输入的 Softmax 为例,数值稳定的计算流程如下:
m = max(x)
e_i= exp(x_i - m)
s = sum(e)
y_i= e_i / s
这个过程包含逐元素运算、归约和特殊函数,仅增加乘加资源无法加速每一步。
一行数据较长时,还需要分段加载和跨段归约。最大值就绪后才能计算指数,求和完成后才能归一化;中间结果放在寄存器还是片上存储,也会影响访存开销。
二、Titan:RISC-V 向量扩展与专用单元加速
特性总览
Titan 在 RISC-V 标准向量编程基础上,提供以下几组能力。
标准与扩展结合:支持 RVV 1.0,并额外增加 66 条面向 AI 的玄铁 Vector 扩展指令。
多档向量宽度:VLEN 可选择 512、1024 或 4096 bit,按目标负载配置。
独立执行流水:向量执行与标量流水线解耦,为控制和计算重叠提供条件。
独立访存路径:通过向量专用通路高速访问数据,支持顺序与 Segment Load/Store。
专用计算资源:SFU 加速特殊函数,Convert 处理数据类型转换,Reduction 加速二维分组归约。
跨 Group 并行:不同执行 Group 的无依赖操作可同时推进,让访存与计算等工作重叠。
灵活集成:Titan 可整体选配,执行资源可结合客户已有能力进行配置评估。
独立流水:控制与计算重叠
Titan 通过 General Interface(GIU)与标量调度核连接,拥有向量指令缓冲、译码、寄存器文件和执行单元。调度核组织任务,Titan 在独立流水中执行向量计算。
在依赖和资源允许时,Titan 执行向量程序,标量核可同时准备后续任务参数。
独立访存:匹配向量数据供给
向量位宽增加后,数据供给也需要同步增强。Titan 的向量访存单元可高速访问 SRAM,支持每周期最多一条 Load 与一条 Store 独立发射,且性能和随 VLEN 提升而提升,满足整体执行单元的数据供给需求。并支持 Segment Load/Store,以适应结构化数据访问。
独立访存减少了向量与标量在核内数据通路上的竞争。在依赖和缓冲条件允许时,当前块计算与下一块加载可以重叠。
SFU、Convert、Reduction:加速三类关键操作
Titan 在 RVV 1.0 基础上增加66 条玄铁 Vector 扩展指令,覆盖特殊函数、类型转换、归约、点积与低精度整数等操作。
![]()
图 2|玄铁 Vector 扩展指令
其中,SFU、Convert、Reduction 三类共 42 条,对应三个专用执行单元。扩展指令是软件调用这些能力的入口,专用单元则承担相应计算。三个单元的作用分别是:
SFU:加速指数与激活。 提供exp2、tanh、sigmoid等函数能力,与向量算术配合,支撑 Softmax 的指数计算、SiLU 等激活和门控操作。
Convert:衔接不同计算精度。 提供浮点与整数格式转换能力,连接低精度存储与不同精度的计算阶段,支撑量化、反量化中的类型转换。
Reduction:加速数据聚合。 支持二维分组 Sum、Max、Min 等操作,承担 Softmax 的最大值与求和、归一化中的统计聚合。
这些能力可与标准向量指令组合成完整算子。例如,Softmax 由 Reduction 完成最大值和求和,SFU 支撑指数计算,再配合向量算术与访存完成其余步骤。
Softmax:各执行单元如何接力
![]()
图 3|Softmax 的执行单元映射
不同 Group 并行,让多个单元同时工作
Titan 支持不同执行 Group 在无数据相关时并行推进。例如,Load、Store 与 exp2 可以重叠执行,让访存与函数计算单元同时工作。
处理多个独立数据块时,在数据和资源就绪的前提下,可同时加载 C 块、计算 B 块的指数、写回已完成的 A 块,如下图所示。
类型转换也可按数据依赖安排与访存重叠;具体组合取决于 Group 划分和执行资源。图示仅说明并行原理,不表示固定周期数或所有单元每周期都能同时发射。
同一行 Softmax 内部的计算依赖仍需保持。软件可以在独立行、不同数据块之间安排重叠,并为中间结果分配寄存器和缓冲区。
![]()
图 4|跨 Group 并行原理
按负载选择 VLEN
Titan 的向量寄存器位宽 VLEN 可选 512、1024、4096 bit,VLEN 的提升会带来访存和计算能力的提升。能在数据类型和寄存器分组方式相同时,较宽的寄存器可容纳更多元素,有助于减少分段处理次数。
VLEN 不直接代表模型的整体吞吐。选型时,还需结合模型热点,匹配计算资源、归约与特殊函数能力及存储带宽。
三、从 Softmax 加速到模型首字时延
固定 Tensor 算力,观察向量能力的影响
为观察向量宽度对系统性能的影响,方案给出了一个理论建模案例:模型为 Qwen3-1.7B,采用 FP16,序列长度 4096;Tensor 算力为 10 TFLOPS,带宽为 200 GB/s。对比中保持 Tensor 算力和带宽不变,改变向量宽度。
![]()
从 256 bit 基线到 4096 bit,首字时延(Time To First Token,TTFT)由 7.9 s 降至 3.5 s,约为 2.26 倍加速,时延下降约 56%。上述性能基于序列长度 4096 为例,4096 在当下只是基础长度,上下文加长后,这个收益比例还会更加明显。
结语
玄铁 Titan 将最高 4096 bit 的超宽向量、独立访存、SFU/Convert/Reduction 专用单元与跨 Group 并行结合起来,让数据供给与多类计算协同推进,为端侧 NPU 提供高性能、可编程的向量算力。
对 NPU 厂商而言,这套能力既用于加速当前模型,也为后续算法演进留出空间。通过可配置的向量 IP 与配套软件,客户可以减少通用向量能力的重复开发,将更多资源投入自有 Tensor Engine、存储系统和产品创新。
端侧 AI 的竞争,既考验芯片处理当前负载的效率,也考验它适应新模型的能力。Titan 将玄铁在 RISC-V 处理器、向量计算和软件上的积累带入 NPU,让专用加速的效率与可编程的灵活性共同服务于端侧智能的持续演进。
特别声明:以上内容(如有图片或视频亦包括在内)为自媒体平台“网易号”用户上传并发布,本平台仅提供信息存储服务。
Notice: The content above (including the pictures and videos if any) is uploaded and posted by a user of NetEase Hao, which is a social media platform and only provides information storage services.