幫助中心 | 我的帳號 | 關於我們

OpenCL異構計算(入門FPGA和TensorFlow神經網路普通高等院校電子信息系列教材)

  • 作者:編者:胡正偉//謝志遠//王岩|責編:郭賽
  • 出版社:清華大學
  • ISBN:9787302593980
  • 出版日期:2021/12/01
  • 裝幀:平裝
  • 頁數:223
人民幣:RMB 59 元      售價:
放入購物車
加入收藏夾

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

作者介紹
編者:胡正偉//謝志遠//王岩|責編:郭賽

目錄
第1章  緒論
  1.1  異構計算系統
  1.2  OpenCL
  1.3  FPGA
  1.4  FPGA+CPU異構計算系統
  1.5  HDL和OpenCL
    1.5.1  OpenCL的優點
    1.5.2  OpenCL的缺點
  1.6  人工神經網路
    1.6.1  人工神經網路的基本概念
    1.6.2  人工神經網路的基本特徵
    1.6.3  人工神經網路的應用
  習題1
第2章  TensorFlow基礎知識及運行環境搭建
  2.1  TensorFlow簡介
  2.2  TensorFlow兩步編程模式
  2.3  TensorFlow兩步編程模式實例
    2.3.1  定義計算圖的基本操作
    2.3.2  運行計算圖的基本操作
  2.4  TensorFlow環境搭建
    2.4.1  軟體安裝
    2.4.2  TensorFlow軟體運行
    2.4.3  計算圖常式運行實例
  習題2
第3章  TensorFlow實現神經網路模型訓練與測試
  3.1  神經網路訓練與測試的基本概念
    3.1.1  神經網路的訓練
    3.1.2  神經網路的測試
  3.2  基於TensforFlow訓練神經網路實現MNIST數據集識別
    3.2.1  MNSIT數據集
    3.2.2  Softmax Regression模型
    3.2.3  MNIST數據識別的Softmax Regression神經網路模型
    3.2.4  MNIST數據識別的卷積神經網路模型
  3.3  MNIST數據集轉換
    3.3.1  將數據集轉換為以txt文件保存的數據
    3.3.2  將數據集轉換為以bmp文件保存的圖片
    3.3.3  將bmp轉換為tfrecords格式
  3.4  讀取tfrecords格式數據實現MNIST手寫字體識別
    3.4.1  Softmax Regression模型
    3.4.2  卷積神經網路模型
  習題3
第4章  OpenCL基礎
  4.1  OpenCL標準框架
  4.2  OpenCL基本概念基礎
  4.3  OpenCL程序的組成部分
  4.4  OpenCL框架的4種模型
  4.5  編寫第一個OpenCL程序
    4.5.1  kernel程序
    4.5.2  host程序
  4.6  OpenCL基本知識點

    4.6.1  kernel函數格式
    4.6.2  kernel編程模式
    4.6.3  kernel地址限定符
    4.6.4  kernel語句描述
    4.6.5  kernel數據類型
    4.6.6  kernel編程限制
  習題4
第5章  面向Intel FPGA的OpenCL運行平台搭建
  5.1  搭建OpenCL平台的軟硬體要求
  5.2  面向OpenCL應用的DE10_nano開發板簡介
  5.3  平台所需軟體下載
    5.3.1  Quartus Prime Standard下載
    5.3.2  Intel FPGA SDK for OpenCL下載
    5.3.3  Intel SoC FPGA EDS下載
  5.4  平台所需軟體安裝
    5.4.1  安裝Quartus Prime Standard Edition+Intel FPGA SDK for OpenCL
    5.4.2  安裝SoCEDS
    5.4.3  安裝DE10_nano BSP
  5.5  環境變數設置
    5.5.1  環境變數設置步驟
    5.5.2  環境變數測試
  5.6  編譯OpenCL kernel
  5.7  編譯host 程序
  5.8  燒寫img文件到SD卡(在Windows系統下完成)
  5.9  minicom驅動安裝與測試
    5.9.1  minicom驅動安裝
    5.9.2  minicom 使用測試
  5.10  hello world kernel運行測試
  5.11  DE10_nano與PC交換數據
  習題5
第6章  單層神經網路演算法模型的FPGA實現流程
  6.1  基於OpenCL的神經網路演算法設計與FPGA實現的基本流程
  6.2  無隱形層的簡易神經網路演算法原理
  6.3  神經網路的TensorFlow實現及訓練
  6.4  TensorFlow框架下輸入數據的轉換
  6.5  神經網路演算法的OpenCL實現
    6.5.1  kernel代碼編寫及編譯
    6.5.2  host代碼編寫及編譯
  6.6  數據移植複製到FPGA開發板
  6.7  FPGA運行神經網路
  6.8  kernel report.html文件查看
    6.8.1  高層設計報告布局
    6.8.2  系統概要
    6.8.3  迭代分析
    6.8.4  資源分析
    6.8.5  系統視圖
  6.9  log文件查看FPGA資源使用估計信息
  習題6
第7章  單層神經網路演算法的kernel程序實現方式分析比較
  7.1  批量讀取輸入數據的OpenCL程序

    7.1.1  kernel程序
    7.1.2  host程序
    7.1.3  執行結果
  7.2  神經網路演算法的不同kernel代碼實現對比
    7.2.1  single work item和NDRange(private)
    7.2.2  local和private(single work item)
    7.2.3  local和private(NDRange)
    7.2.4  single work item和NDRange(local)
    7.2.5  float和char(single work item-local)
    7.2.6  float和char(NDRange-private)
  7.3  神經網路演算法的ARM與FPGA實現方式對比
    7.3.1  ARM和FPGA(float數據類型)
    7.3.2  ARM和FPGA(char數據類型)
  7.4  host代碼與kernel的對應
  習題7
第8章  具有一個隱形層的神經網路演算法模型的OpenCL實現
  8.1  一個隱形層的簡易神經網路演算法原理
  8.2  具有一個隱形層的神經網路的TensorFlow實現及訓練
  8.3  具有一個隱形層的神經網路演算法的OpenCL實現
    8.3.1  ARM實現
    8.3.2  single work item格式,一個kernel
    8.3.3  NDRange格式,一個kernel
    8.3.4  single work item格式,兩個kernel
    8.3.5  NDRange格式,兩個kernel
    8.3.6  single work item格式,兩個kernel,channel
    8.3.7  single work item格式,兩個kernel,pipe
  習題8
第9章  簡易卷積神經網路的OpenCL實現
  9.1  簡易卷積神經網路演算法結構與原理
  9.2  簡易卷積神經網路的TensorFlow實現及訓練
  9.3  簡易卷積神經網路演算法的OpenCL實現
    9.3.1  NDRange實現
    9.3.2  single work item實現
  習題9
第10章  上機實驗
  實驗1  TensorFlow基礎命令
  實驗2  TensorFlow實現簡易神經網路模型的訓練與測試
  實驗3  TensorFlow實現卷積神經網路模型的訓練與測試
  實驗4  TensorFlow實現MNIST數據集轉換
  實驗5  讀取tfrecords格式數據並實現MNIST手寫字體識別
  實驗6  DE10_nano開發板運行OpenCL程序
  實驗7  DE10_nano與PC數據交換
  實驗8  OpenCL程序編譯
  實驗9  編寫一個OpenCL程序
  實驗10  單層神經網路演算法模型的FPGA實現流程
  實驗11  單層神經網路演算法的kernel程序的不同實現方式
  實驗12  具有一個隱形層的神經網路演算法模型的OpenCL實現
  實驗13  簡易卷積神經網路演算法模型的OpenCL實現
參考文獻

  • 商品搜索:
  • | 高級搜索
首頁新手上路客服中心關於我們聯絡我們Top↑
Copyrightc 1999~2008 美商天龍國際圖書股份有限公司 臺灣分公司. All rights reserved.
營業地址:臺北市中正區重慶南路一段103號1F 105號1F-2F
讀者服務部電話:02-2381-2033 02-2381-1863 時間:週一-週五 10:00-17:00
 服務信箱:bookuu@69book.com 客戶、意見信箱:cs@69book.com
ICP證:浙B2-20060032