×
暂无评论
图文详情
  • ISBN:9787302593980
  • 装帧:70g胶版纸
  • 册数:暂无
  • 重量:暂无
  • 开本:16开
  • 页数:223
  • 出版时间:2021-12-01
  • 条形码:9787302593980 ; 978-7-302-59398-0

本书特色

FPGA在现代电子系统设计中扮演越来越重要的角色,特别是近几年飞速发展的人工智能、机器学习、硬件加速等领域。与GPU实现方式相比,FPGA具有较好的能效比,可以实现低功耗和低延时,具有广阔的应用前景。OpenCL作为一种业界异构计算标准,对FPGA的应用起到了重要的推动作用,是未来大型FPGA系统设计的重要方法。为了便于开展面向FPGA平台的OpenCL教学,本教材结合人工智能领域中的神经网络为实现目标,通过学习TensorFlow框架下的神经网络训练、神经网络算法的OpenCL描述、神经网络的FPGA实现等内容,掌握FPGA实现神经网络算法推理的整个流程,为今后从事人工智能、算法加速、FPGA开发等相关领域工作奠定基础。

内容简介

本书以通过FPGA实现简易神经网络的推理流程为主线,主要包含以下内容: 在TensorFlow学习框架下实现神经网络训练,保存训练好的权值和偏置;将TensorFlow框架下训练的神经网络使用OpenCL语言实现,并编译生成可执行文件和FPGA编程文件;将输入数据、权值、偏置等数据通过以太网口传输到FPGA开发板;在FPGA开发板上运行神经网络。 本书的重点在于神经网络算法的OpenCL描述方法及FPGA实现流程。简易神经网络算法不仅可以让读者明白神经网络的工作原理及基本框架,还可以使用较少的OpenCL代码描述,易于分析神经网络算法与代码的对应关系,实现OpenCL语言的学习。 本书以Ubuntu操作系统为运行环境,以***高的FPGA开发板DE10_nano为实现平台,该开发板尺寸较小,易于携带,方便管理,价格较低,适合批量购买以开展相关教学实验。 本书面向电子信息、计算机、自动化等相关专业的本科生及研究生或FPGA开发人员。

目录

目录



第1章绪论1

1.1异构计算系统1

1.2OpenCL2

1.3FPGA3

1.4FPGA+CPU异构计算系统5

1.5HDL和OpenCL6

1.5.1OpenCL的优点7

1.5.2OpenCL的缺点7

1.6人工神经网络8

1.6.1人工神经网络的基本概念8

1.6.2人工神经网络的基本特征9

1.6.3人工神经网络的应用10

习题112第2章TensorFlow基础知识及运行环境搭建14

2.1TensorFlow简介14

2.2TensorFlow两步编程模式14

2.3TensorFlow 两步编程模式实例15

2.3.1定义计算图的基本操作15

2.3.2运行计算图的基本操作18

2.4TensorFlow环境搭建23

2.4.1软件安装23

2.4.2TensorFlow软件运行25

2.4.3计算图例程运行实例25

习题230第3章TensorFlow实现神经网络模型训练与测试31

3.1神经网络训练与测试的基本概念31

3.1.1神经网络的训练31

3.1.2神经网络的测试32

3.2基于TensforFlow训练神经网络实现MNIST数据集识别32

3.2.1MNSIT数据集32

3.2.2Softmax Regression模型33

3.2.3MNIST数据识别的Softmax Regression神经网络模型35

3.2.4MNIST数据识别的卷积神经网络模型40

3.3MNIST数据集转换49

3.3.1将数据集转换为以txt文件保存的数据49

3.3.2将数据集转换为以bmp文件保存的图片50

3.3.3将bmp转换为tfrecords格式54

3.4读取tfrecords格式数据实现MNIST手写字体识别56

3.4.1Softmax Regression模型56

3.4.2卷积神经网络模型58

习题361第4章OpenCL基础63

4.1OpenCL标准框架63

4.2OpenCL基本概念基础64

4.3OpenCL程序的组成部分65

4.4OpenCL框架的4种模型66

4.5编写**个OpenCL程序71

4.5.1kernel程序71

4.5.2host程序72

4.6OpenCL基本知识点78

4.6.1kernel函数格式78

4.6.2kernel编程模式79

4.6.3kernel地址限定符79

4.6.4kernel语句描述80

4.6.5kernel数据类型80

4.6.6kernel编程限制80

习题480第5章面向Intel FPGA的OpenCL运行平台搭建82

5.1搭建OpenCL平台的软硬件要求82

5.2面向OpenCL应用的DE10_nano开发板简介83

5.3平台所需软件下载84

5.3.1Quartus Prime Standard下载84

5.3.2Intel FPGA SDK for OpenCL下载85

5.3.3Intel SoC FPGA EDS下载85

5.4平台所需软件安装86

5.4.1安装Quartus Prime Standard Edition+Intel FPGA SDK for

OpenCL86

5.4.2安装SoCEDS91

5.4.3安装DE10_nano BSP95

5.5环境变量设置96

5.5.1环境变量设置步骤96

5.5.2环境变量测试97

5.6编译OpenCL kernel98

5.7编译host 程序98

5.8烧写img文件到SD卡(在Windows系统下完成)99

5.9minicom驱动安装与测试101

5.9.1minicom驱动安装101

5.9.2minicom 使用测试102

5.10hello world kernel运行测试103

5.11DE10_nano与PC交换数据104

习题5108第6章单层神经网络算法模型的FPGA实现流程109

6.1基于OpenCL的神经网络算法设计与FPGA实现的基本流程109

6.2无隐形层的简易神经网络算法原理110

6.3神经网络的TensorFlow实现及训练111

6.4TensorFlow 框架下输入数据的转换114

6.5神经网络算法的OpenCL实现115

6.5.1kernel代码编写及编译115

6.5.2host代码编写及编译116

6.6数据移植复制到FPGA开发板120

6.7FPGA运行神经网络123

6.8kernel report.html文件查看124

6.8.1高层设计报告布局124

6.8.2系统概要125

6.8.3迭代分析127

6.8.4资源分析128

6.8.5系统视图131

6.9log文件查看FPGA资源使用估计信息133

习题6133第7章单层神经网络算法的kernel程序实现方式分析比较135

7.1批量读取输入数据的OpenCL程序135

7.1.1kernel程序135

7.1.2host程序136

7.1.3执行结果142

7.2神经网络算法的不同kernel代码实现对比142

7.2.1single work item和NDRange(private)142

7.2.2local和private(single work item)145

7.2.3local和private(NDRange)148

7.2.4single work item和NDRange(local)150

7.2.5float和char(single work itemlocal)154

7.2.6float和char(NDRangeprivate)156

7.3神经网络算法的ARM与FPGA实现方式对比159

7.3.1ARM和FPGA(float 数据类型)159

7.3.2ARM和FPGA(char数据类型)162

7.4host代码与kernel的对应165

习题7165第8章具有一个隐形层的神经网络算法模型的OpenCL实现166

8.1一个隐形层的简易神经网络算法原理166

8.2具有一个隐形层的神经网络的TensorFlow实现及训练168

8.3具有一个隐形层的神经网络算法的OpenCL实现171

8.3.1ARM实现171

8.3.2single work item格式,一个kernel171

8.3.3NDRange格式,一个kernel174

8.3.4single work item格式,两个kernel176

8.3.5NDRange格式,两个kernel178

8.3.6single work item格式,两个kernel,channel181

8.3.7single work item格式,两个kernel,pipe182

习题8186第9章简易卷积神经网络的OpenCL实现187

9.1简易卷积神经网络算法结构与原理187

9.2简易卷积神经网络的TensorFlow实现及训练189

9.3简易卷积神经网络算法的OpenCL实现194

9.3.1NDRange实现194

9.3.2single work item实现206

习题9218第10章上机实验219

实验1TensorFlow基础命令219

实验2TensorFlow实现简易神经网络模型的训练与测试219

实验3TensorFlow实现卷积神经网络模型的训练与测试220

实验4TensorFlow实现MNIST数据集转换220

实验5读取tfrecords格式数据并实现MNIST手写字体识别220

实验6DE10_nano开发板运行OpenCL程序220

实验7DE10_nano与PC数据交换221

实验8OpenCL程序编译221

实验9编写一个OpenCL程序221

实验10单层神经网络算法模型的FPGA实现流程221

实验11单层神经网络算法的kernel程序的不同实现方式221

实验12具有一个隐形层的神经网络算法模型的OpenCL实现222

实验13简易卷积神经网络算法模型的OpenCL实现223


参考文献224


展开全部

作者简介

胡正伟,博士、讲师,主要从事FPGA教学和研发等工作。具有多年的FPGA开发经验,完成多个FPGA工程项目的开发设计,曾与华为技术有限公司合作开发基于FPGA的电力线测距系统。主编中国电力出版社“十三五”本科规划教材《电子设计自动化》。

预估到手价 ×

预估到手价是按参与促销活动、以最优惠的购买方案计算出的价格(不含优惠券部分),仅供参考,未必等同于实际到手价。

确定
快速
导航