商品详情

59.00

OpenCL异构计算(入门FPGA和TensorFlow神经网络)(普通高等院校电子信息系列教材) 胡正伟,谢志远,王岩 9787302593980 清华大学出版社

数量

商品详情

  编辑推荐

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

  内容简介

  《OpenCL异构计算(入门FPGA和TensorFlow神经网络)(普通高等院校电子信息系列教材)》以通过FPGA实现简易神经网络的推理流程为主线,主要包含以下内容: 在TensorFlow学习框架下实现神经网络训练,保存训练好的权值和偏置;将TensorFlow框架下训练的神经网络使用OpenCL语言实现,并编译生成可执行文件和FPGA编程文件;将输入数据、权值、偏置等数据通过以太网口传输到FPGA开发板;在FPGA开发板上运行神经网络。

  《OpenCL异构计算(入门FPGA和TensorFlow神经网络)(普通高等院校电子信息系列教材)》的重点在于神经网络算法的OpenCL描述方法及FPGA实现流程。简易神经网络算法不仅可以让读者明白神经网络的工作原理及基本框架,还可以使用较少的OpenCL代码描述,易于分析神经网络算法与代码的对应关系,实现OpenCL语言的学习。

  《OpenCL异构计算(入门FPGA和TensorFlow神经网络)(普通高等院校电子信息系列教材)》以Ubuntu操作系统为运行环境,以***高的FPGA开发板DE10_nano为实现平台,该开发板尺寸较小,易于携带,方便管理,价格较低,适合批量购买以开展相关教学实验。

  《OpenCL异构计算(入门FPGA和TensorFlow神经网络)(普通高等院校电子信息系列教材)》面向电子信息、计算机、自动化等相关专业的本科生及研究生或FPGA开发人员。

  作者简介胡正伟,博士、讲师,主要从事FPGA教学和研发等工作。具有多年的FPGA开发经验,完成多个FPGA工程项目的开发设计,曾与华为技术有限公司合作开发基于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平台的OpenCL教学,本书以人工智能领域中的神经网络为实现目标,通过学习TensorFlow框架下的神经网络训练、神经网络算法的OpenCL描述、神经网络的FPGA实现等内容,帮助读者掌握FPGA实现神经网络算法推理的整个流程,为今后从事人工智能、算法加速、FPGA开发等相关领域的工作奠定基础。

  鉴于作者水平,本书未能详尽介绍OpenCL的优化策略以及复杂神经网络算法的实现,作者力争在后续版本中完成相关内容的介绍。

  欢迎本领域的相关专家学者、读者批评指正,希望本书能够起到抛砖引玉的效果。

  本书的出版受到了华北电力大学“双一流”研究生教材项目及国家自然科学基金项目(52177083)的支持。

  本书学习指导

  (1)学习重点是基于OpenCL的FPGA开发流程。

  (2)书中未对API函数(TensorFlow API、OpenCL API)进行语法知识介绍,若想深入了解相关API的参数意义及详尽使用,请利用网络查询或查看数据手册。

  (3)请自行学习Ubuntu操作系统的使用方法并熟练掌握基本命令。

  (4)读者可采用不同的Quartus Prime 版本。

  (5)读者可采用其他FPGA开发板,但需要结合配套的BSP。

  (6)读者需根据实际的路径信息修改本书例子中的路径信息。

  (7)本书的参考学时为32学时,建议采用理论实践一体化的教学模式,各章的参考学时详见如下学时分配表。

相关产品推荐

服务参数

- 本商品享受上述商家服务 - 关闭

商品参数

×