NPU指令集设计与代码生成实战

📚 共计 30 章节
01
NPU概述
什么是NPU · NPU与CPU/GPU的区别 · 核心地位 · 发展历程与趋势
AI芯片基础
02
神经网络基础
神经元模型 · 激活函数 · 前向/反向传播 · 卷积与池化
深度学习数学
03
NPU架构概览
宏观架构 · 数据流架构 · 典型产品分析 (TPU/达芬奇)
硬件脉动阵列
04
指令集设计基础
ISA概念 · RISC/CISC · 向量/矩阵指令 · 编码格式
体系结构编码
05
NPU计算指令设计
GEMM · Conv2D · 激活函数 · MaxPool/AvgPool
矩阵卷积
06
NPU数据搬运指令设计
DMA · Load/Store · Transpose/Reshape · Broadcast
数据流存储
07
NPU控制指令设计
Loop · If-Else · Sync/Barrier · 中断与异常
控制流同步
08
指令编码与解码
Opcode/Operand · 固定/可变长度 · 解码器硬件 · 合法性检查
硬件设计格式
09
寄存器与存储体系设计
Register File · 标量/向量寄存器 · SRAM管理 · 带宽优化
存储层次带宽
10
NPU微架构设计
流水线 · 发射队列 · MAC复用 · 写回与数据转发
微架构流水线
11
指令调度与并行性
ILP/DLP/TLP · VLIW · SIMD在NPU中的应用
并行VLIW
12
编译器前端设计
词法/语法分析 · AST构建 · 符号表管理
编译器前端
13
编译器中间表示 (IR)
LLVM IR · 自定义NPU IR · 优化 · IR到指令映射
IR优化
14
指令选择与寄存器分配
树覆盖/动态规划 · 图着色/线性扫描 · Spilling
寄存器算法
15
指令调度优化
列表调度 · 模调度 · 软件流水线 · 循环展开
调度循环
16
代码生成框架设计
生成器架构 · Emit流程 · 标签/跳转 · 调试信息
后端代码生成
17
NPU汇编器设计
工作流程 · 符号解析/重定位 · 目标文件 · 错误诊断
汇编工具链
18
链接器与加载器设计
符号解析 · 段合并 · 动态/静态链接 · 运行时初始化
链接加载
19
模拟器与验证环境
功能/性能模拟器 · 一致性测试 · 覆盖率验证
验证模拟
20
性能分析与调优
性能计数器 · Profiling · 瓶颈分析 · 自动调优
性能调优
21
典型算子指令生成
全连接 · 卷积 · 池化 · BatchNorm/LayerNorm
算子生成
22
图优化与算子融合
计算图优化 · Conv+BN/ReLU融合 · In-Place · 布局转换
图优化融合
23
量化指令支持
INT8/INT4 · Quantize/Dequantize · 混合精度 · QAT
量化精度
24
稀疏计算指令支持
CSR/CSC · 稀疏卷积/注意力 · 剪枝加速
稀疏加速
25
多核NPU指令设计
Send/Recv · Scatter/Gather · 同步屏障 · 负载均衡
多核通信
26
NPU指令集扩展机制
自定义扩展 · VLEN · BF16/FP8 · Transformer/CNN专用
扩展领域专用
27
指令集文档与规范
规范编写 · ISA描述语言 · 自动化文档 · 版本管理
文档规范
28
开源NPU指令集案例分析
RISC-V Vector · Tenstorrent · Samsung · Google TPU
开源分析
29
NPU指令集设计实践项目
需求分析 · 架构设计 · 编译器/模拟器 · 基准测试
项目实战
30
未来趋势与前沿技术
存算一体 · 光计算 · 可重构 · AI自动生成ISA
前沿趋势