您好,欢迎来到聚文网。 登录 免费注册
OpenCL异构计算 入门FPGA和TensorFlow神经网络

OpenCL异构计算 入门FPGA和TensorFlow神经网络

  • 字数: 358000
  • 装帧: 平装
  • 出版社: 清华大学出版社
  • 出版日期: 2021-12-01
  • 商品条码: 9787302593980
  • 版次: 1
  • 开本: 16开
  • 页数: 236
  • 出版年份: 2021
定价:¥59 销售价:登录后查看价格  ¥{{selectedSku?.salePrice}} 
库存: {{selectedSku?.stock}} 库存充足
{{item.title}}:
{{its.name}}
精选
编辑推荐
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开发人员。
作者简介
胡正伟,博士、讲师,主要从事FPGA教学和研发等工作。具有多年的FPGA开发经验,完成多个FPGA工程项目的开发设计,曾与华为技术有限公司合作开发基于FPGA的电力线测距系统。主编中国电力出版社“十三五”本科规划教材《电子设计自动化》。
目录
第1章绪论
1.1异构计算系统
1.2OpenCL
1.3FPGA
1.4FPGA+CPU异构计算系统
1.5HDL和OpenCL
1.5.1OpenCL的优点
1.5.2OpenCL的缺点
1.6人工神经网络
1.6.1人工神经网络的基本概念
1.6.2人工神经网络的基本特征
1.6.3人工神经网络的应用
习题1
第2章TensorFlow基础知识及运行环境搭建
2.1TensorFlow简介
2.2TensorFlow两步编程模式
2.3TensorFlow两步编程模式实例
2.3.1定义计算图的基本操作
2.3.2运行计算图的基本操作
2.4TensorFlow环境搭建
2.4.1软件安装
2.4.2TensorFlow软件运行
2.4.3计算图例程运行实例
习题2
第3章TensorFlow实现神经网络模型训练与测试
3.1神经网络训练与测试的基本概念
3.1.1神经网络的训练
3.1.2神经网络的测试
3.2基于TensforFlow训练神经网络实现MNIST数据集识别
3.2.1MNSIT数据集
3.2.2SoftmaxRegression模型
3.2.3MNIST数据识别的SoftmaxRegression神经网络模型
3.2.4MNIST数据识别的卷积神经网络模型
3.3MNIST数据集转换
3.3.1将数据集转换为以txt文件保存的数据
3.3.2将数据集转换为以bmp文件保存的图片
3.3.3将bmp转换为tfrecords格式
3.4读取tfrecords格式数据实现MNIST手写字体识别
3.4.1SoftmaxRegression模型
3.4.2卷积神经网络模型
习题3
第4章OpenCL基础
4.1OpenCL标准框架
4.2OpenCL基本概念基础
4.3OpenCL程序的组成部分
4.4OpenCL框架的4种模型
4.5编写第一个OpenCL程序
4.5.1kernel程序
4.5.2host程序
4.6OpenCL基本知识点
4.6.1kernel函数格式
4.6.2kernel编程模式
4.6.3kernel地址限定符
4.6.4kernel语句描述
4.6.5kernel数据类型
4.6.6kernel编程
习题4
第5章面向IntelFPGA的OpenCL运行平台搭建
5.1搭建OpenCL平台的软硬件要求
5.2面向OpenCL应用的DE10_nano开发板简介
5.3平台所需软件下载
5.3.1QuartusPrimeStandard下载
5.3.2IntelFPGASDKforOpenCL下载
5.3.3IntelSoCFPGAEDS下载
5.4平台所需软件安装
5.4.1安装QuartusPrimeStandardEdition+IntelFPGASDKforOpenCL
5.4.2安装SoCEDS
5.4.3安装DE10_nanoBSP
5.5环境变量设置
5.5.1环境变量设置步骤
5.5.2环境变量测试
5.6编译OpenCLkernel
5.7编译host程序
5.8烧写img文件到SD卡(在Windows系统下完成)
5.9minicom驱动安装与测试
5.9.1minicom驱动安装
5.9.2minicom使用测试
5.10helloworldkernel运行测试
5.11DE10_nano与PC交换数据
习题5
第6章单层神经网络算法模型的FPGA实现流程
6.1基于OpenCL的神经网络算法设计与FPGA实现的基本流程
6.2无隐形层的简易神经网络算法原理
6.3神经网络的TensorFlow实现及训练
6.4TensorFlow框架下输入数据的转换
6.5神经网络算法的OpenCL实现
6.5.1kernel代码编写及编译
6.5.2host代码编写及编译
6.6数据移植复制到FPGA开发板
6.7FPGA运行神经网络
6.8kernelreport.html文件查看
6.8.1高层设计报告布局
6.8.2系统概要
6.8.3迭代分析
6.8.4资源分析
6.8.5系统视图
6.9log文件查看FPGA资源使用估计信息
习题6
第7章单层神经网络算法的kernel程序实现方式分析比较
7.1批量读取输入数据的OpenCL程序
7.1.1kernel程序
7.1.2host程序
7.1.3执行结果
7.2神经网络算法的不同kernel代码实现对比
7.2.1singleworkitem和NDRange(private)
7.2.2local和private(singleworkitem)
7.2.3local和private(NDRange)
7.2.4singleworkitem和NDRange(local)
7.2.5float和char(singleworkitem-local)
7.2.6float和char(NDRange-private)
7.3神经网络算法的ARM与FPGA实现方式对比
7.3.1ARM和FPGA(float数据类型)
7.3.2ARM和FPGA(char数据类型)
7.4host代码与kernel的对应
习题7
第8章具有一个隐形层的神经网络算法模型的OpenCL实现
8.1一个隐形层的简易神经网络算法原理
8.2具有一个隐形层的神经网络的TensorFlow实现及训练
8.3具有一个隐形层的神经网络算法的OpenCL实现
8.3.1ARM实现
8.3.2singleworkitem格式,一个kernel
8.3.3NDRange格式,一个kernel
8.3.4singleworkitem格式,两个kernel
8.3.5NDRange格式,两个kernel
……

蜀ICP备2024047804号

Copyright 版权所有 © jvwen.com 聚文网