作品简介

这是一本讲解NPU硬件架构设计与技术实现的著作。作者将自己在CPU、GPU和NPU领域15年的软硬件工作经验融会贯通,将四代NPU架构设计经验融为一体,将端侧和云侧NPU架构合二为一,总结并提炼出本书内容。本书主要讨论神经网络硬件层面,尤其是芯片设计层面的内容,主要包含神经网络的分析、神经网络加速器的设计以及具体实现技术。通过阅读本书,读者可以深入了解主流的神经网络结构,掌握如何从零开始设计一个能用、好用的产品级加速器。

通过阅读本书,你将:

透彻理解与深度学习相关的机器学习算法及其实现

学会主流图像处理领域神经网络的结构

掌握加速器运算子系统和存储子系统的设计

摸清加速器设计中遇到的具体问题及其解决方法

了解NPU架构需要考虑的控制通路和数据通路

甄建勇,资深CPU、GPU、NPU三栖架构师,从事相关软硬件架构与设计工作超过15年。现就职于地平线,担任BPU首席架构师。曾就职于英伟达,担任高级架构师,作为多款CPU、NPU、GPU的核心架构师,参与了Xburst、NVDLA、TensorCore的架构设计工作。熟悉SIMT/RayTracing等模块的架构设计与实现。擅长的领域还包括经济学、法学、心理学以及Linux内核、计算机图形加速和全同态加密。

王路业,优矽科技联合创始人兼总经理,中国开放指令生态(RISC-V)联盟(CRVA)软件开源工作组副组长。曾就职于ARM安谋科技、Synopsys新思科技、ST意法半导体和中国长城计算机。

作品目录

  • 前言
  • 第1章 卷积神经网络
  • 1.1 神经网络的结构
  • 1.2 GCN
  • 1.3 网络的基本块
  • 1.4 网络的算子
  • 1.5 网络参数量与运算量
  • 1.6 加速器编程模型
  • 1.7 硬件加速器架构分类
  • 第2章 运算子系统的设计
  • 2.1 数据流设计
  • 2.2 算力与带宽
  • 2.3 卷积乘法阵列
  • 2.4 卷积运算顺序的选择
  • 2.5 池化模块的设计
  • 第3章 存储子系统的设计
  • 3.1 存储子系统概述
  • 3.2 数据格式的定义
  • 第4章 架构优化技术
  • 4.1 运算精度的选择
  • 4.2 硬件资源的复用
  • 4.3 Winograd算法和FFT算法
  • 4.4 除法变乘法
  • 4.5 LUT的使用
  • 4.6 宏块并行技术
  • 4.7 减少软件配置时间
  • 4.8 软件优化技术
  • 4.9 一些激进的优化技术
  • 第5章 安全与防护
  • 5.1 安全技术
  • 5.2 安全性评估
  • 5.3 防护
  • 第6章 神经网络加速器的实现
  • 6.1 乘法器的设计
  • 6.2 数字电路常见基本块的设计
  • 6.3 时序优化
  • 6.4 低功耗设计
  • 第7章 盘点与展望
  • 7.1 AI加速器盘点
  • 7.2 Training加速器
  • 7.3 展望
  • 后记
展开全部