OpenCL異構並行編程實戰

OpenCL異構並行編程實戰 下載 mobi epub pdf 電子書 2024


簡體網頁||繁體網頁
[美] 雷濛德·泰(Raymond Tay) 著,張立浩 譯



點擊這裡下載
    

想要找書就要到 圖書大百科
立刻按 ctrl+D收藏本頁
你會得到大驚喜!!

發表於2024-11-05

類似圖書 點擊查看全場最低價


圖書介紹

齣版社: 機械工業齣版社
ISBN:9787111515616
版次:1
商品編碼:11797528
品牌:機工齣版
包裝:平裝
叢書名: 高性能計算技術叢書
開本:16開
齣版時間:2015-10-01
用紙:膠版紙
頁數:230


相關圖書





圖書描述

編輯推薦

  

  資深軟件開發人員撰寫,濃縮作者多年的OpenCL使用經驗和異構編程心得,係統講述OpenCL的核心概念、技術及實用技巧

  從軟件開發人員的角度,深入剖析OpenCL異構並行編程技術,通過50多個OpenCL技巧案例及大量示例代碼,加速掌握異構並行編程技術並理解高性能計算

  OpenCL是一個免版稅的標準,適用於對個人計算機、服務器、手機和嵌入式設備中的現代處理器進行跨平颱的並行編程。

  本書可大緻劃分為兩部分,第一部分介紹OpenCL並行開發的基礎知識,第二部分則給齣各種算法。每一部分都包含許多代碼示例和圖解,以便演示各種概念。通過閱讀本書,你將學到:

  OpenCL的使用方式

  OpenCL中的數據劃分和傳送

  OpenCL數據類型

  OpenCL的各種函數,包括數學、原子、綫程模型、數據傳送等

  在OpenCL中開發直方圖

  在OpenCL中開發索貝爾邊緣檢測濾波器

  在OpenCL中實現矩陣乘法和稀疏矩陣嚮量乘法

  在OpenCL中實現雙調排序和基數排序

  並行編程的相關知識

內容簡介

  

  資深軟件開發人員撰寫,從軟件開發者的角度,深入剖析OpenCL異構並行編程技術,係統講述OpenCL的核心概念、技術及實用技巧,融閤作者多年OpenCL使用經驗和異構編程心得,包含大量示例代碼,有助於軟件開發人員快速掌握異構並行編程技術並理解高性能計算。

  本書共10章,第1章介紹使用OpenCL的目的,並概述OpenCL的核心概念;第2章討論OpenCL中的緩衝區對象以及劃分數據的策略;第3章解釋OpenCL提供的兩種常規數據類型,以及如何使用這些數據類型解決不同的問題;第4章討論OpenCL提供的各種函數,以及如何使用對應的嚮量化函數加快執行速度;第5章給齣典型OpenCL開發的生命周期及一些數據劃分策略;第6章討論如何開發索貝爾邊緣檢測濾波器;第7章講述如何使用OpenCL實現矩陣乘法;第8章討論如何在OpenCL中實現稀疏矩陣嚮量乘法;第9章介紹如何使用OpenCL開發雙調排序;第10章介紹使用OpenCL開發基數排序。

作者簡介

  Raymond Tay,資深軟件開發者,擁有非常豐富的軟件開發經驗,精通Scala、Haskell、C和C++等編程語言。Raymond於2008年開始接觸GPGPU技術,最初使用的是NVIDIA提供的CUDA工具箱和AMD提供的OpenCL工具箱,然後使用的是Intel工具箱。他參與瞭多個使用CUDA和OpenCL中所提供GPGPU技術與技巧的項目,同時對雲計算中的函數編程範例和相關應用充滿熱情,並研究通過使用GPGPU技術和函數編程範例加速雲中應用程序的各種途徑。

目錄

作者簡介
審校者簡介
前言
第1章 使用OpenCL 1
1.1 引言 1
1.2 查詢OpenCL平颱 7
1.3 查詢平颱上的OpenCL設備 10
1.4 查詢OpenCL設備擴展 14
1.5 查詢OpenCL上下文 16
1.6 查詢OpenCL程序 20
1.7 創建OpenCL內核 25
1.8 創建命令隊列以及對OpenCL內核排隊 28
第2章 理解OpenCL數據傳送與劃分 32
2.1 引言 32
2.2 創建OpenCL緩衝對象 33
2.3 檢索關於OpenCL緩衝對象的信息 39
2.4 創建OpenCL子緩衝對象 41
2.5 檢索關於OpenCL子緩衝對象的信息 45
2.6 理解事件和事件同步 47
2.7 在存儲對象之間復製數據 50
2.8 使用工作項劃分數據 55
第3章 理解OpenCL數據類型 62
3.1 引言 62
3.2 初始化OpenCL標量數據類型 63
3.3 初始化OpenCL嚮量數據類型 65
3.4 使用OpenCL標量類型 67
3.5 理解OpenCL嚮量類型 69
3.6 嚮量和標量地址空間 80
3.7 配置OpenCL項目以啓用double數據類型 83
第4章 使用OpenCL函數 87
4.1 引言 87
4.2 將嚮量存儲到數組中 88
4.3 從數組加載嚮量 91
4.4 使用幾何函數 94
4.5 使用整型函數 97
4.6 使用浮點函數 99
4.7 使用三角函數 101
4.8 OpenCL中的算術和捨入 104
4.9 使用OpenCL中的shuffle函數 107
4.10 使用OpenCL中的select函數 109
第5章 開發直方圖OpenCL程序 112
5.1 引言 112
5.2 在C/C++中實現直方圖 112
5.3 直方圖的OpenCL實現 115
5.4 工作項同步 124
第6章 開發索貝爾邊緣檢測濾波器 126
6.1 引言 126
6.2 理解捲積理論 127
6.3 理解一維捲積 128
6.4 理解二維捲積 130
6.5 索貝爾邊緣濾波器的OpenCL實現 132
6.6 理解OpenCL中的剖析 137
第7章 使用OpenCL實現矩陣乘法 140
7.1 引言 140
7.2 理解矩陣乘法 141
7.3 矩陣乘法的OpenCL實現 144
7.4 通過綫程粗化獲得矩陣乘法的更快速OpenCL實現 147
7.5 通過寄存器分塊獲得矩陣乘法的更快速OpenCL實現 150
7.6 通過矩陣乘法中的共享內存數據預取減少全局內存 152
第8章 在OpenCL中實現稀疏矩陣嚮量乘法 157
8.1 引言 157
8.2 使用共軛梯度方法對SpMV求解 158
8.3 理解各種SpMV數據存儲格式,包括ELLPACK、ELLPACK-R、COO和CSR 162
8.4 理解如何使用ELLPACK-R格式解決SpMV問題 166
8.5 理解如何使用CSR格式解決SpMV問題 168
8.6 理解如何使用VexCL格式解決SpMV問題 176
第9章 使用OpenCL實現雙調排序 179
9.1 引言 179
9.2 瞭解排序網絡 180
9.3 瞭解雙調排序 182
9.4 在OpenCL中開發雙調排序 187
第10章 使用OpenCL實現基數排序 196
10.1 引言 196
10.2 瞭解基數排序 196
10.3 瞭解MSD和LSD基數排序 198
10.4 瞭解歸約 200
10.5 在OpenCL中開發基數排序 207

前言/序言

  歡迎閱讀本書。本書並不是淺嘗輒止式的入門書籍,而是由開發人員編寫且麵嚮開發人員的專業圖書。有些讀者可能會對本書感到熟悉,而另一些讀者則會感到陌生。本書濃縮瞭我使用OpenCL的經驗,但更重要的是對異構計算環境進行編程的心得。我希望與讀者分享我所掌握的知識,並且決定采取按照主題分類問題的組織方式。我力求讓這些主題保持簡潔,但不得不承認,其中一些主題有點長。這樣做的原因在於選擇的問題多種多樣,而嚮讀者展現這些問題是因為本書中的章節描述如何將相關技術應用於當前或未來的工作。本書有望成為一份有用的參考手冊,隨時供你查閱。我無疑希望這些問題的解決方案可以像幫助我一樣協助你。
  本書從軟件開發人員的角度進行編寫,麵嚮不僅希望知道如何以並行方式編程,還希望瞭解如何以並行方式思考的那些讀者。依我看,後者比前者更為重要,但兩者隔離都不能解決任何問題。本書通過代碼加強讀者對每個概念的理解,並通過介紹更多主題對這些概念進行擴展。
  本書的組織形式可以幫助你熟悉OpenCL的核心概念,從而輕鬆進入OpenCL領域。然後,我們會深入討論這些概念,具體方式是將新獲得的知識應用於各個主題以及在工作中會遇到的一般性並行計算問題。
  為最有效地利用本書,強烈建議讀者是軟件開發人員或嵌入式軟件開發人員,並且有興趣瞭解並行軟件開發,但並不真正知道從何處及如何開始學習。理想情況下,你應該瞭解一些C或C++知識(可以選擇C,因為它相對簡單),並且熟悉使用跨平颱的生成係統,如Linux環境中的CMake。CMake的優點是它允許為熟悉使用Microsoft Visual Studio、Apple XCode或其他一些集成開發環境的開發人員建立生成環境。必須承認,本書中的示例沒有使用這些工具。
  本書內容
  第1章通過介紹使用OpenCL的目的和動機來為後續內容做好鋪墊。在相應主題中概述瞭核心概念,這些主題涉及設備的內在本質和它們之間的交互;此外也通過真正可正常運行的代碼介紹這些概念。讀者將瞭解相關上下文和設備,以及如何創建在這些設備上運行的代碼。
  第2章討論OpenCL中的緩衝區對象以及劃分數據的策略。隨後,讀者將學習工作項的定義以及如何利用OpenCL抽象化實現數據劃分。
  第3章解釋OpenCL提供的兩種常規數據類型,即標量和嚮量數據類型,介紹如何使用這些數據類型解決不同的問題,以及OpenCL如何抽象化處理器中的原生嚮量架構。該章也會展示如何通過OpenCL産生可編程的嚮量。
  第4章討論OpenCL為解決日常問題而提供的各種函數,例如幾何、置換和三角函數。該章還介紹如何使用對應的嚮量化函數加快執行速度。
  第5章給齣典型OpenCL開發的生命周期。該章也討論一些數據劃分策略,這些策略依賴於對所討論算法的認知程度。讀者會在不經意間發現,並非所有算法或問題都需要相同的處理方式。
  第6章將指導你使用索貝爾的方法構建邊緣檢測濾波器。同時還會介紹一些數學概念,包括一維和二維中的捲積理論以及相應的代碼。最後,該章介紹如何在OpenCL中進行性能分析及其在本主題中的應用。
  第7章通過研究矩陣乘法的並行化形式以及應用從串行到並行的轉換來討論矩陣乘法的並行化。然後,該章將通過討論如何增加計算吞吐量和提升緩存利用率來優化矩陣乘法。
  第8章討論並行計算的環境以及用於解決該問題的傳統方法,即通過充分的數學計算實現共軛梯度。一旦讀者對共軛梯度有直觀瞭解,該章將介紹稀疏矩陣的各種存儲格式如何影響並行計算,然後具體討論ELLPACK、ELLPACK-R、COO和CSR格式。
  第9章介紹各種排序算法,其中重點討論並行排序網絡,也稱為雙調排序。就像在其他所有章節中所做的那樣,該章完成相關主題的討論,具體包括給齣相應理論及其串行實現,通過轉換實現並行化,然後開發最終的並行版本。
  第10章介紹基於排序算法(如快速排序)的非比較形式的經典示例,在這些示例中,此類算法更適閤GPU架構。該章也會介紹另一種核心並行化編程技術,稱為歸約,幫助讀者直觀瞭解歸約如何有助於基數排序更好地執行。基數排序的相關主題也演示瞭多種內核編程,突齣介紹瞭它們的優缺點。
  學習本書的具體要求
  讀者需要能夠在Linux環境下輕鬆工作,因為本書中的示例是針對Ubuntu 12.10 64位操作係統進行測試的。下麵是相關要求:
  GNU GCC C/C++編譯器版本4.6.1(最低版本要求)
  AMD、Intel和NVIDIA提供的OpenCL 1.2 SDK
  AMD APP SDK版本2.8,帶有AMD Catalyst Linux顯卡驅動程序版本13.4
  Intel OpenCL SDK 2012
  CMake版本2.8(最低版本要求)
  Clang版本3.1(最低版本要求)
  Microsoft Visual C++ 2010(如果你在Windows上工作)
  Boost Library版本1.53
  VexCL(由Denis Demidov提供)
  AMD提供的CodeXL Profiler(可選)
  保證每天8小時睡眠
  開放的思想和虛心的態度
  一杯特濃咖啡或其他提神的飲料
  本書讀者對象
  本書麵嚮特定的軟件開發人員,這些開發人員希望瞭解可以用他們新購買的CPU或GPU做些什麼,他們購買這些硬件的目的並不是用來玩計算機遊戲。話雖如此,本書並不打算介紹僅可運行在傢庭工作站上的算法。本書非常適閤於有C/C++實操經驗的開發人員,以及希望學習如何使用OpenCL編寫在異構計算環境中執行的並行程序的開發人員。



alt="" />


OpenCL異構並行編程實戰 下載 mobi epub pdf txt 電子書 格式

OpenCL異構並行編程實戰 mobi 下載 pdf 下載 pub 下載 txt 電子書 下載 2024

OpenCL異構並行編程實戰 下載 mobi pdf epub txt 電子書 格式 2024

OpenCL異構並行編程實戰 下載 mobi epub pdf 電子書
想要找書就要到 圖書大百科
立刻按 ctrl+D收藏本頁
你會得到大驚喜!!

用戶評價

評分

書籍不錯,值得推薦,可以考慮

評分

書寫得很好,值得好好讀。

評分

書籍不錯,值得推薦,可以考慮

評分

好書 今天電腦發熱有點大

評分

不錯不錯,絕對正版,京東自營給力

評分

商品很贊,京東物流給力!

評分

評分

買來沒事兒看看

評分

¥47.50

類似圖書 點擊查看全場最低價

OpenCL異構並行編程實戰 mobi epub pdf txt 電子書 格式下載 2024


分享鏈接




相關圖書


本站所有內容均為互聯網搜索引擎提供的公開搜索信息,本站不存儲任何數據與內容,任何內容與數據均與本站無關,如有需要請聯繫相關搜索引擎包括但不限於百度google,bing,sogou

友情鏈接

© 2024 book.teaonline.club All Rights Reserved. 圖書大百科 版權所有