OpenCL編程指南

出版時(shí)間:2012-12-1  出版社:機(jī)械工業(yè)出版社華章公司  作者:Aaftab Munshi,Benedict R. Gaster,Timothy G. Mattson,James Fung,Dan Ginsburg  頁(yè)數(shù):404  譯者:蘇金國(guó),李璜,楊健康  
Tag標(biāo)簽:無(wú)  

內(nèi)容概要

OpenCL領(lǐng)域公認(rèn)的權(quán)威著作,由OpenCL核心設(shè)計(jì)人員親自執(zhí)筆,不僅全
面而深刻地解讀了OpenCL規(guī)范和編程模型,而且通過(guò)大量案例和代碼演示了
基于OpenCL編寫(xiě)并行程序和實(shí)現(xiàn)各種并行算法的原理、方法、流程和最佳實(shí)
踐,以及如何對(duì)OpenCL進(jìn)行性能優(yōu)化,如何對(duì)硬件進(jìn)行探測(cè)和調(diào)整。 蒙施、Benedict R.Gaster、Timothy
G.Mattson、James Fung、Dan Giburg所著的《OpenCL編程指南》分為兩大部分:第一部分(1~13章)
,從介紹OpenCL的核心思想和編寫(xiě)OpenCL程序的基礎(chǔ)知識(shí)開(kāi)始,對(duì)枯燥的
OpenCL規(guī)范進(jìn)行了深刻而系統(tǒng)的解讀,旨在幫助讀者全面、正確地理解
OpenCL規(guī)范及其編程模型;第二部分(14~22章),提供了一系列經(jīng)典的案
例,如圖像直方圖、Sobel邊界檢測(cè)過(guò)濾器、并行實(shí)現(xiàn)Dijkstra單源最短路 徑圖算法、Bullet Physics
SDK中的布模擬、用快速傅里葉變換模擬海洋、 光流、OpenCL與PyOpenCL結(jié)合使用,使用OpenCL完成矩陣相乘與稀疏矩陣矢
量乘法等,目的是讓讀者通過(guò)案例熟練掌握編寫(xiě)復(fù)雜并行程序的方法和技巧
?!禣penCL編程指南》的附錄收錄了OpenCL規(guī)范定義的大量函數(shù)、命名常量 和類型,可供程序員開(kāi)發(fā)時(shí)查閱。

作者簡(jiǎn)介

作者:(美國(guó))蒙施(Aaftab Munshi) 譯者:蘇金國(guó)  Aaftab Munshi,OpenCL核心設(shè)計(jì)小組的靈魂人物之一,同時(shí)他也是OpenCL、OpenGL ES 1.1、OpenGL ES 2.0規(guī)范的編輯,與DanGinsburg和Dave Shreiner合著了《OpenGL ES 2.0 Programming Guide》。目前他任職于Apple公司。

書(shū)籍目錄

譯者序

前言
致謝
第一部分 OpenCL 1.1語(yǔ)言與API
第1章 OpenCL介紹
1.1 什么是OpenCL,或者為什么需要這本書(shū)
1.2 多核的未來(lái):異構(gòu)平臺(tái)
1.3 多核世界中的軟件
1.4 OpenCL的概念基礎(chǔ)
1.4.1 平臺(tái)模型
1.4.2 執(zhí)行模型
1.4.3 內(nèi)存模型
1.4.4 編程模型
1.5 OpenCL與圖形
1.6 OpenCL的內(nèi)容
1.6.1 平臺(tái)API
1.6.2 運(yùn)行時(shí)API
1.6.3 內(nèi)核編程語(yǔ)言
1.6.4 OpenCL小結(jié)
1.7 嵌入式簡(jiǎn)檔
1.8 學(xué)習(xí)OpenCL
第2章 HelloWorld:一個(gè)OpenCL例子
第3章 平臺(tái)、上下文和設(shè)備
第4章 OpenCL C編程
第5章 OpenCL C內(nèi)置函數(shù)
第6章 程序與內(nèi)核
第7章 緩沖區(qū)和子緩沖區(qū)
第8章 圖像和采樣器
第9章 事件
第10章 與OpenCL的互操作
第11章 與Direct3D的互操作
第12章 C++包裝器API
第13章 OpenCL嵌入式簡(jiǎn)檔
第二部分 OpenCL 1.1案例研究
第14章 圖像直方圖
第15章 Sobel邊界檢測(cè)過(guò)濾器
第16章 并行實(shí)現(xiàn)Dijkstra單源最短路徑圖算法
第17章 Bullet Physics SDK中的布模擬
第18章 用快速傅里葉變換模擬海洋
第19章 光流
第20章 用PyOpenCL使用OpenCL
第21章 使用OpenCL完成矩陣乘法
第22章 稀疏矩陣矢量乘法
附錄A OpenCL 1.1小結(jié)

章節(jié)摘錄

版權(quán)頁(yè):   插圖:   再次說(shuō)明,OpenCL并沒(méi)有在宿主機(jī)上規(guī)定內(nèi)存一致性模型。先從離宿主機(jī)最遠(yuǎn)的內(nèi)存(私有內(nèi)存區(qū)域)開(kāi)始考慮,逐步轉(zhuǎn)向宿主機(jī)。私有內(nèi)存對(duì)宿主機(jī)是不可見(jiàn)的。它只對(duì)相應(yīng)的工作項(xiàng)可見(jiàn)。這個(gè)內(nèi)存采用順序編程中很熟悉的加載/存儲(chǔ)內(nèi)存模型。換句話說(shuō),對(duì)私有內(nèi)存的加載和存儲(chǔ)不能重新排序,即除了程序文本中定義的順序外,不能以其他順序出現(xiàn)。 對(duì)于局部?jī)?nèi)存,可以保證一個(gè)工作組中一組工作項(xiàng)能夠看到的值在工作組同步點(diǎn)是一致的。例如,一個(gè)工作組柵欄(work—group barrier)要求在柵欄之前定義的所有加載和存儲(chǔ)必須先完成,工作組中這個(gè)柵欄之后的工作項(xiàng)才能繼續(xù)。換句話說(shuō),柵欄標(biāo)記了一組工作項(xiàng)執(zhí)行中的某一點(diǎn),在這一點(diǎn)可以保證內(nèi)存是一致的,在繼續(xù)執(zhí)行之前處于已知狀態(tài)。 由于局部?jī)?nèi)存只是在一個(gè)工作組內(nèi)共享,所以這對(duì)于定義局部?jī)?nèi)存區(qū)域的內(nèi)存一致性就足夠了。對(duì)于一個(gè)工作組中的工作項(xiàng),在工作組柵欄,全局內(nèi)存也是一致的。不過(guò),盡管這個(gè)內(nèi)存在工作組間共享,但無(wú)法強(qiáng)制執(zhí)行一個(gè)內(nèi)核的不同工作組之間全局內(nèi)存的一致性。 對(duì)于內(nèi)存對(duì)象,OpenCL定義了一個(gè)寬松一致性模型。換句話說(shuō),單個(gè)工作項(xiàng)在內(nèi)存中看到的值不能保證任何時(shí)刻在整個(gè)工作項(xiàng)集中都保持一致。在給定的時(shí)刻,對(duì)于不同的工作項(xiàng),對(duì)OpenCL內(nèi)存對(duì)象的加載和存儲(chǔ)可能以不同的順序出現(xiàn)。這稱為寬松一致性(relaxed consistency)模型,因?yàn)樗鼪](méi)有我們期望的加載/存儲(chǔ)模型那么嚴(yán)格,即并發(fā)執(zhí)行要與串行執(zhí)行的順序完全匹配。 最后一步是定義相對(duì)于命令隊(duì)列中命令的內(nèi)存對(duì)象一致性。在這種情況下,我們使用了釋放一致性的一個(gè)修改版本。與一個(gè)內(nèi)核相關(guān)聯(lián)的所有工作項(xiàng)完成時(shí),這個(gè)內(nèi)核釋放的內(nèi)存對(duì)象的相應(yīng)加載和存儲(chǔ)完成后,內(nèi)核命令才能標(biāo)志為完成。對(duì)于有序隊(duì)列,這足以定義內(nèi)核問(wèn)的內(nèi)存一致性。對(duì)于亂序隊(duì)列,則有兩個(gè)選擇(稱為同步點(diǎn))。第一個(gè)選擇是在特定的同步點(diǎn)(如命令隊(duì)列柵欄)強(qiáng)制一致性。第二個(gè)選擇是通過(guò)事件機(jī)制(將在后面介紹)顯式地管理一致性。這些選擇同樣用于強(qiáng)制宿主機(jī)和OpenCL設(shè)備之間的一致性,也就是說(shuō),內(nèi)存僅在命令隊(duì)列中的同步點(diǎn)是一致的。 1.4.4編程模型 OpenCL執(zhí)行模型定義了一個(gè)OpenCL應(yīng)用如何映射到處理單元、內(nèi)存區(qū)域和宿主機(jī)。這是一個(gè)“以硬件為中心”的模型?,F(xiàn)在我們換個(gè)角度,介紹如何使用編程模型將并行算法映射到OpenCL。編程模型實(shí)際上就是程序員如何考慮他們的算法。因此,這些模型本質(zhì)上比執(zhí)行模型更為靈活。 OpenCL定義了兩種不同的編程模型:任務(wù)并行和數(shù)據(jù)并行??梢钥吹剑€可以考慮一種混合模型:包含數(shù)據(jù)并行的任務(wù)。程序員很有創(chuàng)造性,可以預(yù)期,過(guò)一段時(shí)間可能還會(huì)創(chuàng)建映射到OpenCL基本執(zhí)行模型的另外的編程模型。 數(shù)據(jù)并行編程模型 前面內(nèi)容描述了數(shù)據(jù)并行編程模型的基本思想(見(jiàn)圖1—4)。適合采用數(shù)據(jù)并行編程模型的問(wèn)題都與數(shù)據(jù)結(jié)構(gòu)有關(guān),這些數(shù)據(jù)結(jié)構(gòu)的元素可以并發(fā)更新?;旧希褪菍⒁粋€(gè)邏輯指令序列并發(fā)地應(yīng)用到數(shù)據(jù)結(jié)構(gòu)的元素上。并行算法的結(jié)構(gòu)被設(shè)計(jì)為一個(gè)序列,即對(duì)問(wèn)題領(lǐng)域中數(shù)據(jù)結(jié)構(gòu)并發(fā)更新的序列。

編輯推薦

《OpenCL編程指南》為OpenCL世界帶來(lái)了福音?!禣penCL編程指南》出自資深程序員之手,正是程序員需要的實(shí)用指南。

名人推薦

“歡迎來(lái)到異構(gòu)并行編程的新世界,憑借這本通俗易懂的權(quán)威指南,你將深入了解完整的OpenCL編程模型?!?——Pat Hanrahan,斯坦福大學(xué)教授

圖書(shū)封面

圖書(shū)標(biāo)簽Tags

無(wú)

評(píng)論、評(píng)分、閱讀與下載


    OpenCL編程指南 PDF格式下載


用戶評(píng)論 (總計(jì)33條)

 
 

  •   本書(shū)不錯(cuò),學(xué)習(xí)opencl正需要
  •   很經(jīng)典,例子多,講解詳細(xì)建議和《OpenCL異構(gòu)計(jì)算》結(jié)合看
  •   OpenCL的東西看了以后基本上都能懂了!
  •   權(quán)威著作,你懂得!指導(dǎo)參考書(shū),開(kāi)發(fā)人員必備!
  •   對(duì)于一個(gè)全新的東西,第一章介紹能給讀者一個(gè)整體的把握,后面再具體分析,能讓人快速理解接受
  •   GPU方面的權(quán)威圖書(shū)!必看!
  •   整體來(lái)說(shuō)這本書(shū)還是很不錯(cuò)的,就是略貴了些
  •   喜歡這本書(shū)!贊一個(gè)!
  •   書(shū)有薄膜紙包裹,不錯(cuò),內(nèi)容看看還行。
  •   書(shū)很好!配送也很給力!
  •   書(shū)不錯(cuò),全新的,不錯(cuò)啊.
  •   書(shū)很不錯(cuò),快遞也很及時(shí),價(jià)格很合適。
  •   書(shū)全新的,有外包裝,紙質(zhì)不錯(cuò),應(yīng)該是正版
  •   講解蠻細(xì)致的,紙張質(zhì)量不錯(cuò)……就是中文翻譯不太符合語(yǔ)言習(xí)慣
  •   有點(diǎn)深,還要再研究研究?。?/li>
  •   由于做些項(xiàng)目需要學(xué)習(xí)OpenCL,特意買(mǎi)了這本OpenCL編程指南,學(xué)過(guò)一段時(shí)間后感覺(jué)本書(shū)介紹的的確很詳細(xì),但是不太適合我這種初學(xué)者學(xué)習(xí)??赡苁怯⑽姆g版的原因,有些知識(shí)點(diǎn)講解的不夠透徹。不過(guò)本書(shū)總體來(lái)講還是不錯(cuò)的,介紹了OpenCL具體的框架結(jié)構(gòu)和變成流程。
  •   本書(shū)對(duì)我最近的工作很有幫助
  •   書(shū)挺好的,就是邊角那里有點(diǎn)臟了,總體還行。
  •   書(shū)名和文本是匹配的,比較新
  •   終于到手了,加緊學(xué)習(xí)呀~
  •   理論綜合例子,不錯(cuò)的選擇
  •   排版水平比較低,沒(méi)有索引。對(duì)于 GPU 硬件和 OpenCL 各組件之間的關(guān)系說(shuō)得不是很清楚,低于對(duì)作者的期望。
  •   前面大部分內(nèi)容沒(méi)什么深度,最后的與OpenGL VBO的交互以及一個(gè)sample程序理解起來(lái)有點(diǎn)難度
  •   很不錯(cuò)的一本書(shū)。入門(mén)很好。
  •   看了里面一些東西,感覺(jué)挺好的。是OpenCL里面有限的中文資源。預(yù)處理部分講的挺好的。如果內(nèi)置函數(shù)能夠在詳細(xì)的說(shuō)說(shuō)就更好啦。多讀幾遍肯定能收獲你想要的。
  •   書(shū)不錯(cuò),實(shí)用,內(nèi)容豐富。
  •   就看了看引言,居然將doctor直接翻譯為醫(yī)生,而不是博士,徹底無(wú)語(yǔ)………………
  •   之前就想看看opencl的書(shū)了
  •   非常好 很喜歡非常好 很喜歡
  •   OpenCL編程指南
  •   Opencl類不多的幾本書(shū)
  •   公司買(mǎi)的,開(kāi)發(fā)用
  •   API手冊(cè)
 

250萬(wàn)本中文圖書(shū)簡(jiǎn)介、評(píng)論、評(píng)分,PDF格式免費(fèi)下載。 第一圖書(shū)網(wǎng) 手機(jī)版

京ICP備13047387號(hào)-7