OpenCL 異構計算

胡正偉、謝志遠、王岩

  • 出版商: 清華大學
  • 出版日期: 2021-12-01
  • 售價: $354
  • 貴賓價: 9.5$336
  • 語言: 簡體中文
  • 頁數: 223
  • 裝訂: 平裝
  • ISBN: 7302593981
  • ISBN-13: 9787302593980
  • 相關分類: FPGADeepLearningTensorFlow
  • 立即出貨 (庫存 < 4)

  • OpenCL 異構計算-preview-1
  • OpenCL 異構計算-preview-2
  • OpenCL 異構計算-preview-3
OpenCL 異構計算-preview-1

買這商品的人也買了...

商品描述

本書以通過FPGA實現簡易神經網絡的推理流程為主線,主要包含以下內容: 在TensorFlow學習框架下實現神經網絡訓練,保存訓練好的權值和偏置;將TensorFlow框架下訓練的神經網絡使用OpenCL語言實現,並編譯生成可執行文件和FPGA編程文件;將輸入數據、權值、偏置等數據通過以太網口傳輸到FPGA開發板;在FPGA開發板上運行神經網絡。 本書的重點在於神經網絡算法的OpenCL描述方法及FPGA實現流程。簡易神經網絡算法不僅可以讓讀者明白神經網絡的工作原理及基本框架,還可以使用較少的OpenCL代碼描述,易於分析神經網絡算法與代碼的對應關系,實現OpenCL語言的學習。 本書以Ubuntu操作系統為運行環境,以***高的FPGA開發板DE10_nano為實現平臺,該開發板尺寸較小,易於攜帶,方便管理,價格較低,適合批量購買以開展相關教學實驗。 本書面向電子信息、電腦、自動化等相關專業的本科生及研究生或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