新書推薦:
《
大模型应用开发:RAG入门与实战
》
售價:NT$
407.0
《
不挨饿快速瘦的减脂餐
》
售價:NT$
305.0
《
形而上学与存在论之间:费希特知识学研究(守望者)(德国古典哲学研究译丛)
》
售價:NT$
504.0
《
卫宫家今天的饭9 附画集特装版(含漫画1本+画集1本+卫宫士郎购物清单2张+特制相卡1张)
》
售價:NT$
602.0
《
化妆品学原理
》
售價:NT$
254.0
《
万千教育学前·与幼儿一起解决问题:捕捉幼儿园一日生活中的教育契机
》
售價:NT$
214.0
《
爱你,是我做过最好的事
》
售價:NT$
254.0
《
史铁生:听风八百遍,才知是人间(2)
》
售價:NT$
254.0
|
編輯推薦: |
(1)作者背景权威:作者是地平线的BPU首席架构师,英伟达的前高级架构师。
(2)作者经验丰富:作者在CPU、GPU和NPU等3大领域积累了15年的工作经验,是多款CPU、NPU、GPU的核心架构师,参与了Xburst、NVDLA、TensorCore的架构设计工作。
(3)NPU架构与设计指南:详细讲解NPU的算法以及硬件加速器的架构设计与实现过程,教读者从零开始设计NPU。
(4)图文并茂、化繁为简:一图胜千言,用100余幅图片将复杂的逻辑、算法、表述等直观地呈现出来,化繁为简,降低学习难度。
(5)全彩印刷:为了便于读者理解加速器的原理、架构与实现过程,本书采用了全彩印刷。
|
內容簡介: |
这是一本讲解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意法半导体和中国长城计算机。
|
目錄:
|
CONTENTS
目 录
前言
第1章 卷积神经网络 1
1.1 神经网络的结构 2
1.2 GCN 4
1.3 网络的基本块 7
1.4 网络的算子 17
1.5 网络参数量与运算量 29
1.6 加速器编程模型 31
1.7 硬件加速器架构分类 33
第2章 运算子系统的设计 35
2.1 数据流设计 35
2.2 算力与带宽 38
2.2.1 算力与输入带宽 38
2.2.2 算力与输出带宽 41
2.3 卷积乘法阵列 43
2.3.1 Conv算法详解 43
2.3.2 NVDLA的乘法阵列 47
2.3.3 TPU的乘法阵列 59
2.3.4 GPU的乘法阵列 66
2.3.5 华为DaVinci的乘法阵列 74
2.4 卷积运算顺序的选择 80
2.5 池化模块的设计 81
第3章 存储子系统的设计 86
3.1 存储子系统概述 86
3.1.1 存储子系统的组成 86
3.1.2 内部缓存的设计 89
3.2 数据格式的定义 97
3.2.1 特征图的格式 98
3.2.2 权重的格式 100
第4章 架构优化技术 106
4.1 运算精度的选择 106
4.1.1 dynamic fixed point类型 109
4.1.2 bfloat16类型 110
4.2 硬件资源的复用 111
4.2.1 FC 112
4.2.2 de-Conv 115
4.2.3 dilate Conv 123
4.2.4 group Conv 123
4.2.5 3D Conv 127
4.2.6 TC Conv 130
4.2.7 3D Pool 132
4.2.8 Up Sample Pooling 136
4.2.9 多个加速器的级联 136
4.3 Winograd算法和FFT算法 138
4.3.1 Winograd算法解析 138
4.3.2 FFT算法解析 148
4.4 除法变乘法 150
4.5 LUT的使用 150
4.6 宏块并行技术 155
4.7 减少软件配置时间 156
4.8 软件优化技术 157
4.9 一些激进的优化技术 158
第5章 安全与防护 160
5.1 安全技术 160
5.2 安全性评估 162
5.3 防护 163
第6章 神经网络加速器的实现 165
6.1 乘法器的设计 165
6.1.1 整型乘法器的设计 166
6.1.2 浮点运算器的设计 171
6.2 数字电路常见基本块的设计 184
6.3 时序优化 203
6.4 低功耗设计 207
第7章 盘点与展望 211
7.1 AI加速器盘点 211
7.2 Training加速器 211
7.3 展望 218
后记 220
|
內容試閱:
|
前 言
从算法角度看,神经网络分Training(训练)和Inference(推理)两个过程,本书主要讨论Inference过程。从技术类别看,本书主要讨论神经网络硬件,尤其是芯片设计层面的内容,如何训练出优秀的模型、如何设计神经网络加速器的驱动程序和编译器等内容均非本书重点。
本书内容主要分三部分:神经网络的分析、神经网络加速器的设计及具体的实现技术。通过阅读本书,读者可以深入了解主流的神经网络结构,掌握如何从零开始设计一个能用、好用的产品级加速器。
“兵马未动,粮草先行”,在设计神经网络加速器之前,需要对主流的神经网络的结构、常见算子,以及各个算子运算细节有深入的理解。第1章介绍了目前主流图像处理领域神经网络的结构,提取出各个网络的基本块、网络算子及其参数量和运算量,阐述了加速器的编程模型和硬件架构分类。
“程序=数据结构 算法”,第2、3章分别讨论了加速器运算子系统和存储子系统的设计,并对NVDLA、TPU、GPU实现卷积运算的过程进行了详细的推演,以便读者对加速器架构设计有初步的了解。
“加速器设计需要综合能力”,仅靠零碎的灵感和天马行空的创意,设计不出能用、好用的加速器产品。第4~6章用大量篇幅讨论了加速器设计中可能遇到的问题及解决方法。
“生活不止眼前的苟且,还有诗和远方”,在加速器的设计过程中,闭门造车不可取,在埋头苦干的间歇,仰头望望天空和远方,或许有意想不到的收获。第7章对加速器进行盘点,展望了神经网络加速器的未来,希望对读者有所启发。
“一图胜千言”,很多复杂的逻辑用一张图就能轻松解释,很多烦琐的言语用一张图就能直观表达。本书包含100余幅图,希望将讲述的内容清晰地传达给读者。
“一切皆有可能”,本书在讨论具体设计问题时,一般会先给出多种建议,然后筛选出合理的方案,意在传达硬件架构设计的思维方式。很多思维方式不仅限于神经网络加速器,由此及彼,可推而广之。
感谢我的朋友姜君、周焱、王玮琪,他们总是耐心地鼓励和帮助我,我从他们身上学到很多。感谢我的太太张金艳和女儿甄溪,她们也为这本书付出了很多。
阅读本书不需要太多预备知识,需要的是求知探索的勇气和耐心。如果读者有任何问题和建议,欢迎与我联系:rill_zhen@126.com。
甄建勇
2023年3月于上海
|
|