描述
开 本: 16开纸 张: 胶版纸包 装: 平装-胶订是否套装: 否国际标准书号ISBN: 9787507765762
本书从深度学习与人工智能芯片的研究现状出发,以作者自主设计的TGU深度学习加速器及其配套软件栈为实例,系统性地论述基于FPGA器件的人工智能芯片的设计原理、流程和方法。全书共分10章,分别由深度学习与FPGA基础、 深度学习加速器设计流程、模型设计、训练与量化、架构设计、Verilog实现、SpinaHDL实现、仿真与验证、编译器与工具链等十部分组成。本书适合人工智能、计算机科学相关领域的研究和开发人员阅读。
序
人工智能的发展为计算机架构设计带来了新的挑战和机遇,正如两位图灵奖得主 约翰·L. 亨尼西(John L. Hennessy)和大卫·A. 帕特森(David A. Patterson)所 说,现在是“A New Golden Age for Computer Architecture”。对特定问题域定 制的体系结构,将为该领域提供显著的性能(和能效)增益,这也被称为“领域特定 结构”(DSA)。DSA 通常称为加速器,因为它只会加速某些应用程序,而不像通用的 CPU(中央处理器)可以执行整个应用程序。面向深度学习算法的 DSA 则被称为深度 学习加速器。 FPGA 是实现深度学习加速器的选择之一,其优点非常明显。FPGA 的英文全称 是 Field Programmable Gate Array,翻译成中文则是“现场可编程门阵列”,与常见 的 CPU、GPU 一样,FPGA 也是一种半导体芯片。即使在被制造出来以后,FPGA 都 可以在运行之前和运行期间对硬件进行重构,这给硬件应用带来了极大的灵活性。与 ASIC(专用集成电路)不同,FPGA 不需要流片,在用有效的 EDA(电子设计自动 化)工具电路综合后,即可测试、验证和使用新的设计,节约了成本和时间。 在 FPGA 上实现深度学习加速器一直是非常困难的工程任务,尤其是使用硬件描 述语言(Verilog & VHDL)设计一个工程上可以使用的加速器,这往往需要一个团 队成员艰苦而卓绝的努力才能完成。基于 FPGA 的深度学习加速器需要在应用、算法 和芯片三个层面进行开发,而三个层面涉及的开发技术差异极大,采用的编程工具、 需要的技术储备也各不相同,并且需要三个层面开发人员的相互配合、相互协调才能 开发出深度学习加速器。
宋庆增老师是我任天津市特聘教授时所在科研团队的一员,他博士期间的研究方 向就是高性能嵌入式系统设计,与我在国外十余年的研究非常相近。经过十五年学习、 教学与科研的积累,宋老师的团队开发的深度学习加速器已经在多个领域得到了应用。 尤其难得的是,其将最新的成果进行了开源,并撰写成书。此书提供了较多的工程细 节,降低了学习门槛,为准备从事这一领域的高校师生与科研人员扫清了障碍。 本人欣然为此书作序,期待读者从中获益,成功实现加速。
武继刚
2022 年 11 月
前言
深度学习(Deep Learning,DL)在大的方向上,属于机器学习(Machine Learning,ML)中的一个领域。随着深度学习技术发展,各种相关的模型及其应用层 出不穷,成为一个新的、重要的研究方向。通常来说,深度学习是从样本数据中学习 其内在的特征或者规律,并通过这些信息,对诸如图像、音频、视频、声音、文字等 各类型数据进行分类或者内容解释。目前,深度学习在各种分类、信息搜索、数据挖 掘、自然语言处理、智能推荐等领域都取得了很多成果。为了实现深度学习模型的实 用性,模型的结构越来越复杂,所采用的层数也越来越多。这些无疑都会消耗海量的 计算能力和内存带宽,加重了对加速器性能的依赖。目前通用图形处理器(GPGPU) 是深度学习领域中最常用的计算加速器。虽然 CPU 和 GPU 可以提供最大的灵活性和 易用性,但由于大量的计算资源及时间被那些经常反复的数据读写指令所占据,所以 计算效率通常不高。专用集成电路(ASIC)可以依照功能需求设计模型专有的数据和 控制通路,从而针对一些模型及需求达到高性能,但其开发周期长,可替换性差,成 本过高,无法广泛被各种特定领域的应用所采用。
FPGA 是一种能够编程的半定制集成电路芯片,既有 CPU/GPU 可重新配置的灵 活性,又可以满足性能和能耗方面的优势。FPGA 使用了一种可以反复更改及配置的 结构,根据需求完成不同逻辑门的功能。大型的 FPGA 可以包含大量的查找表,这些 基本单元通过可编程的连线连接成任意的拓扑结构,从而实现任何逻辑功能。大规模 FPGA 还集成了专用 DSP 模块用于加速浮点和整数的加减乘除运算。同时,FPGA 中 还集成了很多小规模的存储模块,这些模块可以缓存计算数据。FPGA 的可编程 IO 接 口模块可以连接任意的输入输出设备。FPGA 可以利用逻辑功能的编写,将指令流固 化在硬件流水线之中。同时,由于采用流水线设计,不同的指令流可以应用 FPGA 片 内的流水线和缓存模块,极大地减少了对内存带宽的需求,同时也降低了能耗。
深度学习中最常用的 CNN 模型,其分层结构与 FPGA 硬件流水线结构十分匹配。FPGA 能够根据 CNN 模型的特点,设计出适合的数据处理流水线,使多个指令流可以并行执 行,还可以利用本地缓存模块降低内存读写的能耗。与 CPU 及 GPU 相比,在嵌入式 设备中,相对于 CPU、GPU 的固定宽度 ALU 和数据通路,FPGA 中通过灵活可编程 的逻辑单元和连接结构,能够设计出适合各类模型的结构,从而更加匹配模型。另外, 利用可配置的 IO 接口,FPGA 可以直接输入并处理网络或者各类传感器采集的数据, 不需要像 GPU 和 CPU 那样通过内存中转数据。
我们依托天津工业大学“高性能嵌入式实验室”和北京电子科技职业学院“基于 机器视觉的集成电路封装测试创新工作室”,致力于基于 FPGA 的深度学习加速器的 设计与软件栈的开发。本书在内容安排上共分 10 章。第 1 章绪论;第 2 章为深度学习 与 FPGA 基础;第 3 章主要介绍深度学习加速器设计流程;第 4 章为模型设计、训练 与量化;第 5 章为架构设计;第 6、7 章为具体的(Verilog 和 SpinaHDL)实现;第 8 章为仿真与验证;第 9 章为编译器与工具链;第 10 章为总结与展望。本书虽经多次 修改,但由于作者能力有限,不足之处敬请读者批评指正。
编著者
天津工业大学
2022 年 12 月 1 日
评论
还没有评论。