出版時(shí)間:2009-10 出版社:水利水電出版社 作者:張舒,褚艷利 主編 頁數(shù):276 字?jǐn)?shù):438000
Tag標(biāo)簽:無
前言
CUDA是NVIDIA公司于2007年推出的GPU通用計(jì)算產(chǎn)品。CUDA能夠有效利用GPU強(qiáng)勁的處理能力和巨大的存儲(chǔ)器帶寬進(jìn)行圖形渲染以外的計(jì)算,廣泛應(yīng)用于圖像處理、視頻播放、信號(hào)處理、人工智能、模式識(shí)別、金融分析、數(shù)值計(jì)算、石油勘探、天文計(jì)算、流體力學(xué)計(jì)算、生物計(jì)算、分子動(dòng)力學(xué)計(jì)算、數(shù)據(jù)庫管理、編碼加密等領(lǐng)域,并在這些應(yīng)用中對(duì)CPU獲得了一到兩個(gè)數(shù)量級(jí)的加速,取得了令人矚目的成績。CUDA在產(chǎn)業(yè)界和學(xué)術(shù)界引發(fā)了巨大反響,目前已有Adobe、Autodesk、HP、聯(lián)想、浪潮等國內(nèi)外著名企業(yè)推出了基于CUDA的產(chǎn)品;哈佛、伯克利、清華等大批國內(nèi)外高校也開設(shè)了相關(guān)課程,將CUDA作為一種典型的并行系統(tǒng)來幫助學(xué)生學(xué)習(xí)高性能計(jì)算的原理與應(yīng)用。多核的CPU和眾核的GPU已經(jīng)成為目前大多數(shù)計(jì)算機(jī)中最重要的兩種處理器。傳統(tǒng)上,GPU只用于處理3D圖像渲染任務(wù),而其他大多數(shù)的任務(wù)都交給了CPU。作為一種通用處理器,CPU的設(shè)計(jì)必須兼顧各種任務(wù)的需要。因此,CPU中大多數(shù)的晶體管都被用于制造龐大的緩存和復(fù)雜的控制邏輯,而運(yùn)算單元占用的面積則并不多。近幾年來,CPU生產(chǎn)廠商已經(jīng)認(rèn)識(shí)到依靠增加單個(gè)核心的緩存尺寸和控制邏輯的復(fù)雜程度對(duì)提高處理器性能已經(jīng)沒有太大幫助,因此紛紛在一塊芯片中集成更多的CPU核心。不過,這樣做只是能夠用更多的晶體管制造一個(gè)處理器,并沒有提高晶體管的利用率。與此同時(shí),由于圖形渲染的并行特性,GPU與生俱來就是一種擁有大量運(yùn)算單元的并行處理器。近幾年來的發(fā)展經(jīng)驗(yàn)表明,一塊高端GPU的單精度浮點(diǎn)處理性能可以達(dá)到一塊同時(shí)期高端桌面CPU的10倍,其顯存帶寬也達(dá)同時(shí)期桌面平臺(tái)的5倍左右。并且,由GPU提供相同的計(jì)算能力,所需要的成本和功耗都要小于基于CPU的系統(tǒng)。由于傳統(tǒng)GPU硬件架構(gòu)的限制,很難有效利用其資源進(jìn)行通用計(jì)算。NVIDIA推出的CUDA產(chǎn)品則完全扭轉(zhuǎn)了這一局面。與傳統(tǒng)GPU通用計(jì)算開發(fā)方式相比,CUDA編程更簡單,功能更強(qiáng)大,應(yīng)用領(lǐng)域更廣泛,支持CUDA的硬件性能也更強(qiáng)。CUDA完全改變了PC中的一些游戲規(guī)則,使用GPU計(jì)算無需投入額外的成本,卻可以在一些應(yīng)用中獲得一個(gè)數(shù)量級(jí)的加速。在科學(xué)計(jì)算中,一些過去必須由集群處理的任務(wù),現(xiàn)在也可以由每個(gè)研究人員的桌面Pc完成了,這使得科研人員能夠更加自由地將時(shí)間投入到自己的研究中。在超級(jí)計(jì)算機(jī)與集群中,過去往往拆除“多余的”顯卡以節(jié)省功耗,現(xiàn)在的設(shè)計(jì)卻開始采用大量GPU來獲得更加綠色的計(jì)算能力。CUDA的強(qiáng)大性能引發(fā)了一場通用計(jì)算革命,這場革命將極大地改變計(jì)算機(jī)的面貌。我們很幸運(yùn)地參與了這場GPU通用計(jì)算革命。在2007~2009年間,我們看到國內(nèi)有越來越多的開發(fā)者嘗試將CUDA應(yīng)用到自己感興趣的領(lǐng)域中,在學(xué)術(shù)和產(chǎn)業(yè)領(lǐng)域都取得了令人欣喜的成績。與此同時(shí),我們也注意到很多程序員在由CPU程序開發(fā)轉(zhuǎn)移到CUDA程序開發(fā)的過程中遇到了一些問題。特別是出于CUDA程序的性能往往和并行算法以及硬件架構(gòu)有很大關(guān)系,初次接觸GPU的程序員往往需要較長的時(shí)間才能完全掌握CUDA程序的編寫與優(yōu)化。
內(nèi)容概要
本書是全國第一本全面介紹CUDA軟硬件體系架構(gòu)的書籍。全面介紹使用CUDA進(jìn)行通用計(jì)算所需要的語法、硬件架構(gòu)、程序優(yōu)化技巧等知識(shí),是進(jìn)行GPU通用計(jì)算程序開發(fā)的入門教材和參考書。 本書共分5章。第1章介紹GPU通用計(jì)算的發(fā)展歷程,介紹并行計(jì)算的歷史、現(xiàn)狀以及面臨的問題;第2章介紹CUDA的使用方法,幫助讀者理解CUDA的編程模型、存儲(chǔ)器模型和執(zhí)行模型,掌握CUDA程序的編寫方法;第3章探討CUDA硬件架構(gòu),深入分析Tesla GPU架構(gòu)與CUDA通用計(jì)算的相互作用:第4章總結(jié)CUDA的高級(jí)優(yōu)化方法,對(duì)任務(wù)劃分、存儲(chǔ)器訪問、指令流效率等課題進(jìn)行探討;第5章以豐富的實(shí)例展示如何使用CUDA的強(qiáng)大性能解決實(shí)際問題。 本書可作為CUDA的學(xué)習(xí)入門和編程參考書,主要面向從事高性能計(jì)算的程序員與工程師,使用GPU加速專業(yè)領(lǐng)域計(jì)算的科研人員,以及對(duì)GPU通用計(jì)算感興趣的程序員。開設(shè)相關(guān)課程的高等院校與科研機(jī)構(gòu)也可選用本書作為教材。
作者簡介
張舒,電子科技大學(xué)信息與通信工程專業(yè)碩士,現(xiàn)任NvIDIA深圳有限公司系統(tǒng)設(shè)計(jì)驗(yàn)證工程師,CUDA技術(shù)顧問。曾實(shí)現(xiàn)基于CUDA的神經(jīng)網(wǎng)絡(luò)、聚類分析、主分量分析等模式識(shí)別算法,以及信號(hào)仿真、密碼破解、字符串匹配等應(yīng)用。
書籍目錄
前言第1章 GPU通用計(jì)算 1.1 多核計(jì)算的發(fā)展 1.1.1 CPU多核并行 1.1.2 超級(jí)計(jì)算機(jī)、集群與分布式計(jì)算 1.1.3 CPU+GPU異構(gòu)并行 1.2 GPU發(fā)展簡介 1.2.1 GPU渲染流水線 1.2.2 著色器模型 1.2.3 NVIDIA GPU發(fā)展簡介 1.3 從GPGPU到CUDA 1.3.1 傳統(tǒng)GPGPU開發(fā) 1.3.2 CUDA開發(fā)第2章 CUDA基礎(chǔ) 2.1 CUDA編程模型 2.1.1 主機(jī)與設(shè)備 2.1.2 Kernel函數(shù)的定義與調(diào)用 2.1.3 線程結(jié)構(gòu) 2.1.4 硬件映射 2.1.5 deviceQuery示例 2.1.6 matrixAssign示例 2.2 CUDA軟件體系 2.2.1 CUDA C語言 2.2.2 nvcc編譯器 2.2.3 運(yùn)行時(shí)APl與驅(qū)動(dòng)APl 2.2.4 CUDA函數(shù)庫 2.3 CUDA存儲(chǔ)器模型 2.3.1 寄存器 2.3.2 局部存儲(chǔ)器 2.3.3 共享存儲(chǔ)器 2.3.4 全局存儲(chǔ)器 2.3 5 主機(jī)端內(nèi)存 2.3.6 主機(jī)端頁鎖定內(nèi)存 2.3.7 常數(shù)存儲(chǔ)器 2.3.8 紋理存儲(chǔ)器 2.4 CUDA通信機(jī)制 2.4.1 同步函數(shù) 2.4.2 Volatile關(guān)鍵字 2.4.3 ATOM操作 2.4.4 VOTE操作 2.5 異步并行執(zhí)行 2.5.1 流 2.5.2 事件 2.6 CUDA與圖形學(xué)APl互操作 2.6.1 CUDA與OpenGL的互操作 2.6.2 CUDA與Direct3D互操作 2.7 多設(shè)備與設(shè)備集群 2.7.1 CUDA設(shè)備控制 2.7.2 CUDA與openMP 2.7.3 CUDA與集群第3章 CUDA硬件架構(gòu) 3.1 NVIDIA顯卡構(gòu)造簡介 3.1.1 圖形顯卡概覽 3.1.2 PCI—E總線 3.1.3 顯存 3.1.4 GPU芯片 3.2 Tesla圖形與計(jì)算架構(gòu) 3.2.1 SPA—TPC—SM 3.2.2 主流GPU架構(gòu) 3.3 Tesla通用計(jì)算模型 3.3.1 數(shù)據(jù)與指令的加載 3.3.2 warp指令的發(fā)射與執(zhí)行 3.3.3 紋理、渲染和存儲(chǔ)器流水線第4章 CUDA程序的優(yōu)化 4.1 CUDA程序優(yōu)化概述 4.2 測量程序運(yùn)行時(shí)間 4.2.1 設(shè)備端測時(shí) 4.2.2 主機(jī)端測時(shí) 4.3 任務(wù)劃分 ……第5章 綜合應(yīng)用附錄A 安裝、配置、編譯及調(diào)試附錄B 常見問題與解答附錄C 技術(shù)規(guī)范附錄D C擴(kuò)展附錄E 數(shù)學(xué)函數(shù)附錄F 紋理拾取附錄G 著色器模型
章節(jié)摘錄
插圖:第1章 GPU通用計(jì)算目前,主流計(jì)算機(jī)中的處理器主要是中央處理器CPU和圖形處理器GPU。傳統(tǒng)上,GPU只負(fù)責(zé)圖形渲染,而大部分的處理都交給了CPU。21世紀(jì)人類所面臨的重要科技問題,如衛(wèi)星成像數(shù)據(jù)的處理、基因工程、全球氣候準(zhǔn)確預(yù)報(bào)、核爆炸模擬等,數(shù)據(jù)規(guī)模已經(jīng)達(dá)到TB甚至PB量級(jí),沒有萬億次以上的計(jì)算能力是無法解決的。與此同時(shí),我們在日常應(yīng)用中(如游戲、高清視頻播放)面臨的圖形和數(shù)據(jù)計(jì)算也越來越復(fù)雜,對(duì)計(jì)算速度提出了嚴(yán)峻挑戰(zhàn)。GPU在處理能力和存儲(chǔ)器帶寬上相對(duì)CPU有明顯優(yōu)勢,在成本和功耗上也不需要付出太大代價(jià),從而為這些問題提供了新的解決方案。由于圖形渲染的高度并行性,使得GPU可以通過增加并行處理單元和存儲(chǔ)器控制單元的方式提高處理能力和存儲(chǔ)器帶寬。GPU設(shè)計(jì)者將更多的晶體管用作執(zhí)行單元,而不是像CPU那樣用作復(fù)雜的控制單元和緩存并以此來提高少量執(zhí)行單元的執(zhí)行效率。圖1-1對(duì)CPU與GPU中晶體管的數(shù)量以及用途進(jìn)行了比較。
編輯推薦
《GPU高性能運(yùn)算之CUDA》精選典型實(shí)用例程,詳解CUDA使用細(xì)節(jié),重視理論結(jié)合實(shí)際,介紹并行程序設(shè)計(jì)方法,深入分析硬件架構(gòu),揭示模型與底層映射關(guān)系,精心總結(jié)優(yōu)化經(jīng)驗(yàn),解析高性能編程技巧。技術(shù)支持:論壇(http://bbs.hpctech.com)
圖書封面
圖書標(biāo)簽Tags
無
評(píng)論、評(píng)分、閱讀與下載