發表於2024-11-10
由AMD和清華大學專傢聯袂推齣的異構計算扛鼎之作。
本書結閤瞭作者的*新科研成果,對於光綫追蹤和稀疏矩陣算法的應用進行全麵剖析。本書立足實戰和應用,案例豐富,可操作性強
圖形處理器已經成為機器學習、圖形顯示和科學計算等領域的核心計算工具,本書係統地講述具有跨平颱兼容能力的圖形處理器通用計算編程語言—OpenCL。在介紹圖形處理器體係結構和編程思想的基礎上,提供一組經典計算問題的編程實例,幫助讀者快速提高針對圖形處理器通用計算的編程能力,並且養成並行思維習慣。
本書適用於具有計算機編程基礎的初學者、準備開展圖形處理器計算的程序員和計算機、軟件工程以及相關專業的高年級本科生與研究生。
本書特色:
本書結閤硬件,係統詮釋瞭異構計算的概念。
本書提供一組針對常見數據的並行計算模式代錶性算法,讀者可以使用這些模型編寫復雜異構計算應用程序。
本書給齣結閤高性能計算和物理真實渲染的光綫追蹤應用程序,淋灕盡緻地展現瞭圖形處理器的運算潛力。
本書係統講解瞭GPU體係結構和OpenCL編程。全書分為14章:第1~3章主要講解GPU的體係結構與編程;第4~7章主要講解OpenCL的語法與常用的API;第8~13章主要用實例的方式講解OpenCL編程;第14章則從案例齣發,以項目的方式講解HSA的實現。
鄧仰東 2006年獲得卡內基·梅隆大學計算機工程博士學位,現在是清華大學軟件學院副教授,知名集成電路計算機輔助設計和圖形處理器通用計算專傢,被譽為“GPU通用計算技術的先行者”。
硃茂華 加州大學聖塔芭芭拉分校計算機科學係博士候選人,研究方嚮包括計算機體係結構和機器學習算法。
劉春峰 慕尼黑工業大學電機和計算機工程係博士候選人,研究方嚮包括生物芯片和計算機輔助設計。
推薦序
前言
第1章GPU計算的發展曆程 l
1.1計算機圖形學的發展 2
1.2圖形流水綫 6
1.3 GPU的發展過程 8
1.4 GPU通用計算的發展曆程 15
參考文獻 18
第2章現代圖形處理器的體係結構 20
2.1計算機體係結構基礎 2l
2.2 GPU的設計思想 23
2.3 NVIDIA圖形處理器 25
2.3.1總體體係結構 _26
2.3.2流多處理器 29
2.3.3流多處理器的擴展 31
2.3.4存儲器 34
2-4 AMD Graphics Core Next圖形
處理器體係結構 37
2.4.1 GCN計算單元 38
2.4.2 GCN緩存 40
2.4.3 GCN GPU 41
2.5 ImaginationPowerVR移動圖形
處理器體係結構 一42
參考文獻 _44
第3章異構係統體係結構和
融閤處理器 45
3.1 HSA基本概念 47
3.2異構係統體係結構存儲器
模型 50
3.2.1虛擬存儲器的地址空間 ‘51
3.2.2緩存一緻性 52
3.2.3內存一緻性 53
3.3異構任務隊列式調度
機製 54
3.4任務搶占和內容切換 57
3.5 HSA中間語言 57
3.6 AMD的HSA硬件 一60
習題 62
參考文獻 63
第4章OpenCL基本概念 64
4.1 0penCL程序的工作流程 64
4.2 0penCL平颱與設備 65
4.3上下文、命令隊列、kernel
函數 70
4.4存儲對象 72
4.5 Hello World例程 73
習題 82
參考文獻 82
第5章0penCL並行編程基礎83
第6章0penCL事件和隊列108
第7章0penCL2.0高級特徵119
第8章並行程序設計方法134
第9章N體問題152
第10章歸約問題165
第11章快速傅裏葉變換178
第12章稀疏矩陣---嚮量積191
第13章直方圖208
第14章光綫追蹤算法的0penCL實現214
參考文獻237
這是一本關於圖形處理器計算的書,也是一本為圖形處理器程序員編寫的書,但不是一本關於圖形程序的書。圖形處理器本來是專門處理圖形顯示的處理器,所以GPU總是與圖形程序還有圖形編程語言OpenGL聯係在一起,但是本書提到的“計算”和“程序”就是每個程序設計初學者所說的“計算”和“程序”,與圖形完全沒有任何關係。
本書使用的語言是OpenCL,是使用GPU進行通用計算的編程語言。、這裏所說的“通用”,其實就是“圖形之外”的意思。那麼,為什麼要使用圖形處理器做通用汁算呢?第1章會深入討論這個問題,這裏我們隻需要記住簡單答案:①圖形處理器可以同時支持大l並行任務,其峰值處理能力超過當前所有其他處理器;②如果應用程序具備足夠的並行性,則圖形處理器比當前所有其他處理器的計算速度都要快。
這裏用到瞭“並行”的概念。計算機科學中的“並行處理”定義是:南若乾處理單元協作完成某一計算任務,並且這些動作的完成過程一般在時間上有所重疊。並行處理其實是Fi然界最常見的現象。我們所生活的世界本質上就是並行的,大傢隻要想象高速公路-l -的車流就可以獲得直觀的感覺。如果從公路角度看,公路就是處理車流的裝置。苒‘先,公路分成多個車道,相當於提供瞭多個並行處理單元,這是空間的並行;其次,一條車道1-也可以同時行駛多輛汽車,隻是這些車輛在空間上是順序分布的,這是時間上的並行,類似T CPU內部的流水綫。公路上的汽車在統一行為協議(即交通駕駛規則)下以協作和競爭並存的方式分享資源。我們不僅擁有並行的外部世界,人腦也是並行_丁作的。人類思維和意識的基本單元是神經元,它們能夠通過電化學反應對周圍的刺激産生響應。人腦中的100億N 150億個神經元細胞可聯結為異常復雜的網絡,思維活動被映射到這個網絡並進行高度並行處理。
雖然並行現象無處不在,人類製造的計算機卻從順序處理機製起步。在計算機技術的甲.期發展階段,硬件成本昂貴,沒有足夠資源去采用並行結構。隨著集成電路技術的發展,硬件資源越來越多,從20世紀八九十年代開始發展起來的流水綫、超標量計算機和超長指令字等技術為CPU引入瞭並行執行硬件,但是在編程上仍然沿用順序語言,由硬件或編譯器尋找指令間的並行性。這種隱含並行模型其實是絕好的硬件“封裝”方法,程序無需任何修改就可以在更新一代的處理器上獲得更好的性能。2000年以後,隨著指令間並行性的逐漸飽和,計算機體係結構發生瞭重大轉變,普遍的做法是在處理器芯片上部署多個指令執行內核,從而利用仍在不斷增長的集成電路資源。換言之,未來不會有更快的處理器內核,但是能夠使用的內核數量會越來越多。這一趨勢的意義極為深遠:首先,我們並不瞭解兼顧性能、功耗和可編程性的最佳並行處理器體係結構,因此未來的並行處理器必然會齣現一個群雄並起的階段;其次,目前的處理器能夠提供任務級、數據級、綫程級等多種並行方式,然而,自動並行化技術遠未成熟,隻能由程序員指定具體的並行方式,以最大限度地發揮並行處理器的能力,所以眾多嶄新的並行編程語言必然應運而生;最後,主流計算平颱要求從算法設計到代碼執行的全麵並行化,這還是人類文明史上的第一次,我們將不可逆轉地走嚮並行計算之路。
在當前眾多的新興並行處理器和編程模型中,GPU通用計算具有獨到的特色和優勢。經曆30年的發展,GPU已經擁有成熟的體係結構、完備的工具鏈和龐大的用戶規模。GPU的最初設計目的是高速圖形顯示,該任務具有先天的高度並行性,因此GPU體係結構始終是為支持海量並行處理而設計的,而人類對視覺效果的無盡追求使得GPU發展成為高度優化的硬件平颱。隨著眾多研究人員意識到GPU在通用計算方麵的潛力,NVIDIA首先推齣瞭圖形處理器通用編程技術,從而在高性能計算領域占據瞭一定的市場份額。隨著眾多GPU製造商的紛紛跟進,大傢開始意識到兼容性問題。GPU市場仍然處於“戰國”時代,桌麵GPU市場由Intel、NVIDIA和AMD三傢公司分享,後兩者主導高端GPU。而移動GPU的競爭者更多,Imagination、ARM、NVIDIA、Qualcomm、Samsung等公司也都有自己的産品。
為瞭藉鑒OpenGL的成功經驗,使得基於不同硬件體係結構的GPU能夠在源代碼級實現兼容,各大GPU及其下遊産品製造商閤作製定瞭OpenCL圖形處理器通用計算語言標準,並由Khronos集團發布和維護。作為OpenGL的姊妹語言,OpenCL也是跨平颱兼容的標準化語言。實際上,任何處理器隻要提供相應編譯器、驅動和動態運行時( runtime)環境,就可以執行OpenCL程序,著名的可編程芯片製造商Altera甚至可以將OpenCL編譯到硬件上執行。當然,OpenCL的語法和語義是針對圖形處理器硬件設計的,隻有具有相應結構的硬件纔能高效執行OpenCL代碼。
OpenCL和CUDA也經常被稱為異構編程語言,這是因為相應代碼總是使用CPU和GPU這兩種在硬件體係結構和代碼執行方式上有很大區彆的計算資源。一方麵,目前的GPU還不能運行操作係統,所以GPU通用計算程序總是在CPU上啓動;另一方麵,在GPU通用計算程序中也允許使用C/C++語言編寫在CPU上執行的代碼。從目前的技術看,CPU和GPU分彆適應不同的計算結構,雙方在應用角度上的互補關係遠大於競爭關係,這種定位在可預見的未來並不會發生改變,因此異構計算代錶瞭未來的方嚮。大部分異構平颱一般采用CPU處理器芯片+GPU處理器芯片的形式,而對於在軟件層麵整閤兩種計算資源,唯有AMD公司邁齣瞭關鍵一步,通過定義異構係統體係結構(Heterogeneous SystemArchitecture,HSA)實現瞭CPU和GPU的緊密耦閤,使兩種處理器集成在同一芯片上並共享片外存儲器。
介紹到這裏,本書的舞颱就已經搭建好瞭。本書共有14章,第1~3章從圖形處理器的曆史開始,依次討論GPU硬件體係結構和HSA,以及具有代錶性的HSA處理器。
第4~7章介紹OpenCL編程,包括基本語法、並行組織方式、事件和任務隊列,以及OpenCL 2.0引入的高級特徵。第8~13章用一組實例由淺人深地講述並行程序設計和編程技巧。第14章介紹瞭一個比較復雜的應用實例——光綫追蹤圖形渲染,總結瞭OpenCL程序設計技術。
設計簡潔、高效的代碼從而最大限度地發揮並行硬件的能力,是每一位嚴肅對待工作的程序員發自心底的願望。謹以此書獻給嚴肅的程序員們。
異構處理器OpenCL編程導論 下載 mobi pdf epub txt 電子書 格式 2024
異構處理器OpenCL編程導論 下載 mobi epub pdf 電子書這是一本關於圖形處理器計算的書,也是一本為圖形處理器程序員編寫的書,但不是一本關於圖形程序的書。圖形處理器本來是專門處理圖形顯示的處理器,所以GPU總是與圖形程序還有圖形編程語言OpenGL聯係在一起,但是本書提到的“計算”和“程序”就是每個程序設計初學者所說的“計算”和“程序”,與圖形完全沒有任何關係。
評分是正品,很不錯,比電子書看著好啊
評分計算機圖書,印刷精美,強烈推薦
評分是正品,很不錯,比電子書看著好啊
評分速度快,服務好,給個贊!
評分本書使用的語言是OpenCL,是使用GPU進行通用計算的編程語言。、這裏所說的“通用”,其實就是“圖形之外”的意思。那麼,為什麼要使用圖形處理器做通用汁算呢?第1章會深入討論這個問題,這裏我們隻需要記住簡單答案:①圖形處理器可以同時支持大l並行任務,其峰值處理能力超過當前所有其他處理器;②如果應用程序具備足夠的並行性,則圖形處理器比當前所有其他處理器的計算速度都要快。
評分寄件快速,包裝完整,非常滿意。
評分速度快,服務好,給個贊!
評分本書使用的語言是OpenCL,是使用GPU進行通用計算的編程語言。、這裏所說的“通用”,其實就是“圖形之外”的意思。那麼,為什麼要使用圖形處理器做通用汁算呢?第1章會深入討論這個問題,這裏我們隻需要記住簡單答案:①圖形處理器可以同時支持大l並行任務,其峰值處理能力超過當前所有其他處理器;②如果應用程序具備足夠的並行性,則圖形處理器比當前所有其他處理器的計算速度都要快。
異構處理器OpenCL編程導論 mobi epub pdf txt 電子書 格式下載 2024