希姆计算基本概念

版本历史

版本 作者 日期 说明
V1.0.0 希姆计算 2022-04-29 初始版本。

硬件基本概念

概念 英文名称 说明
NPU Neural-network Processing Unit 神经网络处理器,专门面向大规模神经元和突触处理的处理器。采用数据驱动并行计算的架构,非常适合并行计算的场景。
NerualScale NerualScale 希姆计算自研的NPU神经网络计算加速架构,支持基于RISC-V指令集的扩展指令,具有良好的可编程性。
STCP920 Stream Computing P920 希姆计算推出的云端AI推理计算加速板卡,内含可编程NPU,基于NerualScale架构、软硬件协同设计。
NPC Neural-network Processing Core 希姆计算自研NPU中的神经网络处理核心。
每个NPU中包含多个NPC Cluster,例如STCP920中包含4个NPC Cluster,每个NPC Cluster包括8个NPC,因此STCP920中共包含32个NPC。
每个NPC Cluster通过NPC Cluster ID唯一标识,对N个NPC Cluster,异构编程环境中使用0至N-1依次标记,同一个NPU中的所有NPC Cluster的ID是连续的。
全局内存(DDR) Double Data Rate Synchronous Dynamic Random-Access Memory 每个NPC Cluster私有的内存,由NPC Cluster内的NPC共享,访问速度最慢。STCP920中,每个NPC Cluster的全局内存大小为4GiB。
共享内存(LLB) Last Level Buffer 每个NPC Cluster私有的内存,由NPC Cluster内的NPC共享,访问速度较快。STCP920中,每个NPC Cluster的共享内存大小为8MiB。
本地内存(L1) L1 每个NPC私有的内存,访问速度最快。STCP920中,每个NPC的本地内存大小为1.25MiB。
sysDMA System Direct Memory Access 数据传输通道,用于在NPC Cluster内的共享内存和全局内存间传输数据。
IM Intermediate Buffer 中转缓存, 每个NPC私有的高速内存,STCP920中的大小为256KB。
PMU Performance Monitor Unit 性能数据采集单元。
PMC Performance Monictor Counters 性能数据采集单元统计的计数器。
MCU Microcontroller Unit 一款兼容RISC-V指令集架构的微控制器。
MME Matrix MAC Engine 矩阵MAC引擎。
VME Vector MAC Engine 向量MAC引擎。
MTE Memory Transfer Engine 内存传输引擎。

HPE基本概念

概念 英文名称 说明
SHC Stream Computing Heterogeneous C++ 异构编程语言,完整兼容C++17标准,并针对异构程序扩展了语法和函数库,例如支持调用核函数的<<< >>>符号。
核函数 Kernel Function 一个核函数对应一个计算任务,由主机端(CPU)部署到设备端(NPU),并在设备端的多个NPC上并行执行。
stcc Stream Computing Heterogeneous C++ Compiler 异构程序编译器,统一编译异构程序中的主机端程序和设备端程序,生成可执行文件。
stc-dkms Stream Computing Dynamic Kernel Module Support 异构驱动模块,对应有异构驱动stc.ko文件。主机端与设备端使用PCIe总线连接,异构驱动将主机端的操作请求通过PCIe总线传递到设备端。
stc-dkms方便异构驱动适应不同的Linux内核版本,不用逐版本手动编译也能保证异构驱动始终可用,主机端和设备端的交互不会因Linux内核版本变化而产生异常。
stc-smi Stream Computing System Management Interface 设备管理工具,管理和监控NPU设备的状态。
stc-prof Stream Computing Profiler 性能调优工具,采集异构程序的性能数据,分析异构程序的性能。
说明:stc-prof是命令行工具,希姆计算还提供了接口形式的性能调优工具STCPTI( Stream Computing Profiling Tool Interface )。
stc-gdb Stream Computing Debugger 异构程序调试工具,监视程序运行状态,获取和修改程序的中间运行结果。stc-gdb完全兼容GDB原生命令,并添加了希姆计算的扩展命令。
hpert Heterogeneous Programming Engine Runtime 主机端运行时库,为主机端程序提供控制设备端内存访问、核函数执行等操作的接口。
npurt NPU Runtime 设备端运行时库,为设备端程序提供信息打印、内存拷贝等操作的接口。

TensorTurbo基本概念

概念 英文名称 说明
模型 Model 泛指神经网络模型,例如ResNet50、BERT。
算子 Operator 泛指神经网络模型中的算子,是一个数学逻辑单元,算子组成一个有向无环图(Directed acyclic graph,DAG),构成一个模型。
元算子 Primitive Operator TensorTurbo中特有的概念,指类似加减乘除等基本的数学计算操作算子。
图算子 Graph Operator TensorTurbo中特有的概念,是一个由元算子组成的子图,存在于图层抽象。例如softmax可以是一个图算子,定义在图层抽象中,在lower到算子层时,由元算子自动拼接编译得到。