猜你喜欢
AI加速器架构设计与实现

AI加速器架构设计与实现

书籍作者:甄建勇 ISBN:9787111729518
书籍语言:简体中文 连载状态:全集
电子书格式:pdf,txt,epub,mobi,azw3 下载次数:2406
创建日期:2024-04-16 发布日期:2024-04-16
运行环境:PC/Windows/Linux/Mac/IOS/iPhone/iPad/Kindle/Android/安卓/平板
内容简介

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

通过阅读本书,你将:

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

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

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

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

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


作者简介

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


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


前言

Preface

前  言

从算法角度看,神经网络分Training(训练)和Inference(推理)两个过程,本书主要讨论Inference过程。从技术类别看,本书主要讨论神经网络硬件,尤其是芯片设计层面的内容,如何训练出优秀的模型、如何设计神经网络加速器的驱动程序和编译器等内容均非本书重点。

本书内容主要分三部分:神经网络的分析、神经网络加速器的设计及具体的实现技术。通过阅读本书,读者可以深入了解主流的神经网络结构,掌握如何从零开始设计一个能用、好用的产品级加速器。

“兵马未动,粮草先行”,在设计神经网络加速器之前,需要对主流的神经网络的结构、常见算子,以及各个算子运算细节有深入的理解。第1章介绍了目前主流图像处理领域神经网络的结构,提取出各个网络的基本块、网络算子及其参数量和运算量,阐述了加速器的编程模型和硬件架构分类。

“程序=数据结构+算法”,第2、3章分别讨论了加速器运算子系统和存储子系统的设计,并对NVDLA、TPU、GPU实现卷积运算的过程进行了详细的推演,以便读者对加速器架构设计有初步的了解。

“加速器设计需要综合能力”,仅靠零碎的灵感和天马行空的创意,设计不出能用、好用的加速器产品。第4~6章用大量篇幅讨论了加速器设计中可能遇到的问题及解决方法。

“生活不止眼前的苟且,还有诗和远方”,在加速器的设计过程中,闭门造车不可取,在埋头苦干的间歇,仰头望望天空和远方,或许有意想不到的收获。第7章对加速器进行盘点,展望了神经网络加速器的未来,希望对读者有所启发。

“一图胜千言”,很多复杂的逻辑用一张图就能轻松解释,很多烦琐的言语用一张图就能直观表达。本书包含100余幅图,希望将讲述的内容清晰地传达给读者。

“一切皆有可能”,本书在讨论具体设计问题时,一般会先给出多种建议,然后筛选出合理的方案,意在传达硬件架构设计的思维方式。很多思维方式不仅限于神经网络加速器,由此及彼,可推而广之。

感谢我的朋友姜君、周焱、王玮琪,他们总是耐心地鼓励和帮助我,我从他们身上学到很多。感谢我的太太张金艳和女儿甄溪,她们也为这本书付出了很多。

阅读本书不需要太多预备知识,需要的是求知探索的勇气和耐心。如果读者有任何问题和建议,欢迎与我联系:[email protected]。


甄建勇

2023年3月于上海


目录

目  录

前言

第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


短评

还没看 大体上还行。

2023-07-07 01:04:58

非常适合,非常适合。

2023-08-16 00:38:59

前一天下的单,隔天就收到了,包装可以,还是彩印,质量很好,作为架构设计入门可以了,希望能够耐心看完,不要半途而废!

2023-08-01 01:46:15

# AI加速器架构设计与实现 人工智能(AI)的快速发展已经改变了我们生活和工作的方式。从语音识别到自动驾驶汽车,AI技术正不断地扩展着其应用领域。然而,AI模型的训练和推理过程需要大量的计算资源,因此,AI加速器的设计和实现成为了不可或缺的一环。本文将介绍AI加速器架构的设计原理和实现方法,以及它们在加速AI工作负载中的重要作用。 ## AI加速器的背景 在深度学习时代,AI加速器已经成为了实现高性能AI应用的关键组件。传统的通用计算硬件,如中央处理器(CPU)和图形处理器(GPU),虽然可以执行AI任务,但往往无法满足实时性能需求。因此,AI加速器的设计变得至关重要,它们专门针对AI工作负载进行了优化,提供了更高的性能和效率。 ## AI加速器的设计原理 AI加速器的设计原理可以概括为以下几个关键方面: ### 并行计算 深度学习模型通常包含数百万或数十亿个参数,因此需要大规模的并行计算来训练和推理。AI加速器采用了大规模的并行计算单元,如流水线和多核心处理器,以加速这些计算任务。 ### 特定硬件优化 AI工作负载具有独特的计算模式和需求,因此AI加速器的设计需要考虑到这些特点。硬件设计师通常会优化内存层次结构、算术单元和数据通路,以提高性能和能效。 ### 异构计算 AI加速器通常包含多个不同类型的处理单元,如张量处理单元(TPU)、神经网络处理单元(NPU)和矩阵处理单元(MPU)。这种异构计算架构可以更好地适应不同类型的AI工作负载。 ### 软件支持 AI加速器的设计不仅仅涉及硬件,还需要与软件进行紧密协作。为了充分利用加速器的性能,需要开发相应的编程框架和优化工具,以简化开发过程。 ## AI加速器的实现方法 AI加速器可以采用不同的实现方法,具体取决于应用需求和设计目标。以下是一些常见的实现方法: ### FPGA(可编程逻辑器件) FPGA是一种灵活的硬件平台,可以根据需要重新编程。AI加速器可以在FPGA上实现,以便在不同的AI工作负载之间切换,并提供定制化的性能。 ### ASIC(应用特定集成电路) ASIC是一种专门设计用于特定任务的集成电路。虽然ASIC的设计和制造成本较高,但它们通常提供了最高的性能和能效,因为它们可以针对特定的AI工作负载进行优化。 ### GPU加速 一些公司将GPU用于AI加速。虽然GPU通常是通用计算硬件,但它们的高度并行性使它们成为执行深度学习计算的强大工具。许多深度学习框架已经对GPU进行了优化。 ### 云端AI加速 云服务提供商也提供了云端AI加速服务,通过在云中托管加速器硬件,可以实现高性能的AI计算。这种方法适用于需要大规模计算资源的应用。 ## AI加速器的应用 AI加速器的应用范围非常广泛,包括但不限于以下领域: ### 自动驾驶 自动驾驶汽车需要实时感知和决策能力,因此依赖于高性能的AI加速器来处理传感器数据和执行决策算法。 ### 自然语言处理 自然语言处理任务,如机器翻译和语音识别,需要大规模的深度学习模型,这些模型可以通过AI加速器来加速。 ### 医疗诊断 AI加速器可以用于医疗图像分析和疾病诊断,帮助医生更准确地识别病变和疾病。 ### 人工智能边缘设备 边缘设备,如智能手机和物联网设备,也可以受益于AI加速器,以在设备上本地执行AI任务,减少云传输延迟。 ## 结论 AI加速器的设计与实现在推动人工智能技术的发展中发挥着关键作用。通过并行计算、特定硬件优化、异构计算和软件支持,AI加速器可以为各种应用领域提供高性能和能效。未来,随着AI技术的不断演进,我们可以期待看到更多创新的AI加速器架构的出现,进一步推动人工智能的发展和应用。

2023-09-02 10:12:04

产品特色