OpenCL編程指南
OpenCL領(lǐng)域公認的權(quán)威著作,由OpenCL核心設(shè)計人員親自執(zhí)筆,不僅全面而深刻地解讀了OpenCL規(guī)范和編程模型,而且通過大量案例和代碼演示了基于OpenCL編寫并行程序和實現(xiàn)各種并行算法的原理、方法、流程和最佳實踐,以及如何對OpenCL進行性能優(yōu)化,如何對硬件進行探測和調(diào)整。
本書分為兩大部分:第一部分(1~13章),從介紹OpenCL的核心思想和編寫OpenCL程序的基礎(chǔ)知識開始,對枯燥的OpenCL規(guī)范進行了深刻而系統(tǒng)的解讀,旨在幫助讀者全面、正確地理解OpenCL規(guī)范及其編程模型;第二部分(14~22章),提供了一系列經(jīng)典的案例,如圖像直方圖、Sobel邊界檢測過濾器、并行實現(xiàn)Dijkstra單源最短路徑圖算法、Bullet Physics SDK中的布模擬、用快速傅里葉變換模擬海洋、光流、OpenCL與PyOpenCL結(jié)合使用,使用O...
OpenCL領(lǐng)域公認的權(quán)威著作,由OpenCL核心設(shè)計人員親自執(zhí)筆,不僅全面而深刻地解讀了OpenCL規(guī)范和編程模型,而且通過大量案例和代碼演示了基于OpenCL編寫并行程序和實現(xiàn)各種并行算法的原理、方法、流程和最佳實踐,以及如何對OpenCL進行性能優(yōu)化,如何對硬件進行探測和調(diào)整。
本書分為兩大部分:第一部分(1~13章),從介紹OpenCL的核心思想和編寫OpenCL程序的基礎(chǔ)知識開始,對枯燥的OpenCL規(guī)范進行了深刻而系統(tǒng)的解讀,旨在幫助讀者全面、正確地理解OpenCL規(guī)范及其編程模型;第二部分(14~22章),提供了一系列經(jīng)典的案例,如圖像直方圖、Sobel邊界檢測過濾器、并行實現(xiàn)Dijkstra單源最短路徑圖算法、Bullet Physics SDK中的布模擬、用快速傅里葉變換模擬海洋、光流、OpenCL與PyOpenCL結(jié)合使用,使用OpenCL完成矩陣相乘與稀疏矩陣矢量乘法等,目的是讓讀者通過案例熟練掌握編寫復雜并行程序的方法和技巧。本書的附錄收錄了OpenCL規(guī)范定義的大量函數(shù)、命名常量和類型,可供程序員開發(fā)時查閱。
Aaftab Munshi,OpenCL核心設(shè)計小組的靈魂人物之一,同時他也是OpenCL、OpenGL ES 1.1、OpenGL ES 2.0規(guī)范的編輯,與Dan Ginsburg和Dave Shreiner合著了《OpenGL ES 2.0 Programming Guide》。目前他任職于Apple公司。
Benedict R. Gaster,資深軟件架構(gòu)師,他的主要工作是為下一代異構(gòu)處理器開發(fā)編程模型,具體工作是在包含CPU和加速器的新興處理器(如GPU)上探索并行編程的高層抽象。他為OpenCL的設(shè)計做出了巨大貢獻,在Khronos Group開放標準協(xié)會中他是AMD的代表。由于他在可擴展記錄和變量的類型系統(tǒng)方面成績卓著,因而獲得了計算機科學的博士學位。
Timothy G. Mattson,資深并行編程專家,從20世紀80年代中期開始從...
Aaftab Munshi,OpenCL核心設(shè)計小組的靈魂人物之一,同時他也是OpenCL、OpenGL ES 1.1、OpenGL ES 2.0規(guī)范的編輯,與Dan Ginsburg和Dave Shreiner合著了《OpenGL ES 2.0 Programming Guide》。目前他任職于Apple公司。
Benedict R. Gaster,資深軟件架構(gòu)師,他的主要工作是為下一代異構(gòu)處理器開發(fā)編程模型,具體工作是在包含CPU和加速器的新興處理器(如GPU)上探索并行編程的高層抽象。他為OpenCL的設(shè)計做出了巨大貢獻,在Khronos Group開放標準協(xié)會中他是AMD的代表。由于他在可擴展記錄和變量的類型系統(tǒng)方面成績卓著,因而獲得了計算機科學的博士學位。
Timothy G. Mattson,資深并行編程專家,從20世紀80年代中期開始從事相關(guān)工作,一直持續(xù)到現(xiàn)在。在此期間,他使用過各種類型的并行計算機(矢量超級計算機、SMP、VLIW、NUMA、MPP、集群和多核處理器)。1993年加入Intel公司,專注于OpenCL相關(guān)技術(shù)的研究。他還是一位資深的技術(shù)作家,參與撰寫了《Patterns for Parallel Programming》、《An Introduction to Concurrency in Programming Languages》等經(jīng)典著作。他因自己在分子分散理論方面的工作獲得化學博士學位。
James Fung,NVIDIA資深技術(shù)工程師,專注于圖形硬件上的計算機視覺和圖像處理的研究,已經(jīng)從圖形發(fā)展到通用計算,經(jīng)驗十分豐富。擁有多倫多大學的電子與計算機工程博士學位,在并行GPU計算機視覺和介導現(xiàn)實領(lǐng)域發(fā)表過多篇IEEE和ACM論文。
Dan Ginsburg,資深OpenGL和OpenCL專家,曾經(jīng)在AMD工作8年,是AMD技術(shù)部的高級成員,承擔過多種工作,包括開發(fā)OpenGL驅(qū)動程序、創(chuàng)建桌面和手持3D演示應(yīng)用,以及領(lǐng)導手持GPU開發(fā)工具的開發(fā)。他還曾在Still River Systems工作,為Monarch 250質(zhì)子束放射線治療系統(tǒng)開發(fā)GPU加速圖像注冊軟件。目前在Boston兒童醫(yī)院的新生兒神經(jīng)影像和開發(fā)科學中心擔任首席軟件架構(gòu)師,致力于使用OpenCL來提高神經(jīng)影像算法的速度。他擁有Worcester Polytechnic學院的計算機科學學士學位和Bentley大學的MBA學位。
