999精品在线视频,手机成人午夜在线视频,久久不卡国产精品无码,中日无码在线观看,成人av手机在线观看,日韩精品亚洲一区中文字幕,亚洲av无码人妻,四虎国产在线观看 ?

海量遙感數據的GPU通用加速計算技術

2014-03-27 09:03:14周松濤石婷婷
地理空間信息 2014年3期
關鍵詞:效率模型

洪 亮,周松濤,羅 伊,石婷婷,胡 飛

(1.湖北省航測遙感院,湖北 武漢 430074;2. 武漢大學 國際軟件學院,湖北 武漢 430070;3. 湖北省基礎地理信息中心,湖北 武漢 430074;4.安陸市國土資源局,湖北 安陸 432600)

遙感數據多為圖像數據,對它們的處理涉及大量特征數據的計算、統計等。對這些數據的運算往往是基于分塊的算法,即將柵格數據的局部按某種經緯格網裁剪出來進行計算,然后將結果寫回數據庫。在單一工作站上,這一運算往往是一個串行的過程,因此效率比較低。目前的高性能計算主要是采用并行計算技術來實現[1]。在硬件體系結構上,并行計算機主要分為3種形式:多處理機系統、多計算機系統和集群計算技術。但考慮到成本、安全及使用頻度、運算效率等問題,基于網絡的多計算機系統和集群運算并不合適,而簡單的多處理機系統運算能力有限。基于GPU的加速計算技術為海量遙感數據處理效率的提高帶來了新的手段。GPU最初是針對圖形渲染,但在其上的通用計算技術顯然非常適合類似于圖像這類數據的計算與處理。在面向GPU的通用計算技術中,CUDA技術是發展最早、目前相對完善、普及的一種技術。

1 CUDA技術簡介

與早期的圖形處理器不同,現代的圖形處理器往往具有可編程單元,用于處理龐大而復雜的三維圖形數據。通常,一個GPU內部有兩個可編程單元,即頂點著色器和像素著色器,這兩個單元包含有幾十個甚至幾百個流處理器,可并行處理圖形的頂點和像元數據,有很強的浮點運算能力。目前國際上兩大圖形處理器廠商——NVIDIA和AMD,都在自己的GPU基礎上,構建了一套通用數學運算的機制,即NVIDIA的CUDA技術和AMD的STREAM技術,其中CUDA技術應用比較成熟和廣泛[2]。

CUDA是一個通用的并行計算架構,將GPU強大的并行計算能力充分調動起來,使之在解決復雜計算問題上發揮其先天優勢。開發人員僅使用C語言,就能在基于CUDA架構的GPU上編寫程序,在支持CUDA的處理器上以超高性能運行。不僅如此,CUDA還是免費的開源技術,任何開發人員都能通過最新的NVIDIA GPU,在個人計算機上實現高性能計算,解決復雜的科學運算問題。

與英特爾的X86架構不同,CUDA基于GPU,但不拘于GPU,而是取長補短,將CPU的串行計算和GPU的并行計算融合,開啟“CPU+GPU協同計算”的全新時代,即“異構計算”。“異構計算”真正實現了系統整體計算能力的最大化利用:GPU和CPU協同工作,GPU處理大量的圖形和并行處理,CPU處理操作系統和指令的邏輯控制。兩者的協同比單純CPU運算高出幾十倍甚至幾百倍、上千倍,使得PC和工作站具有超級計算的能力,使得個人超級計算機的普及成為可能。

目前,采用GPU進行通用運算越來越普及,一些常用軟件,如Photoshop、3DMax以及一些視頻處理軟件已大量使用該技術。從應用的效果來看,均有幾倍或幾十倍的效率提升,前景非常廣闊。有鑒于此,在GPU基礎上,NVIDIA又進一步開發了Tesla處理器。該處理器外觀跟顯卡非常相似,只是沒有顯示輸出接口。這種“顯卡”的主要作用就是“多塊并聯”,通過CUDA來進行科學運算。和傳統服務器/工作站相比,塔式Tesla主機也有CPU等常規硬件,只是內部有多塊“顯卡”組多路SLI,如圖1所示。通過Tesla處理器構建的個人高性能計算機,利用多路顯卡的強大并行處理能力,使一些以往主要依靠CPU計算的領域大大提速,甚至使部分依靠CPU無法完成的計算成為可能。

圖1 帶有Tesla處理器的個人超級計算機

圖2 CUDA中運算任務的邏輯劃分

2 GPU環境下柵格數據并行計算模型

GPU作為一種圖形運算單元,具有對紋理圖像的各種優化運算功能,支持柵格數據的并行運算。

2.1 任務調度與劃分

在CUDA運算中,每個GPU的運算單元被映射成一個網格(Grid),每個網格單元在邏輯上被分為多個Block,每個Block被分為若干Thread,Thread作為最新運算邏輯單元存在(如圖2)。在與硬件的對應關系上可以近似地認為,每個網格對應一個GPU(或一塊Tesla處理器),一個Block對應一個SM(streaming multiprocessor),而一個Thread則對應硬件上的一個運算單元,即一個SP(streaming processor)。之所以說這種對應關系是近似的,是因為為了防止在I/O等過程中運算單元閑置,GPU會對不同的任務分組進行優化處理和調度。例如在一個Block中,32個Thread會被分為一組并執行,稱為一個Wrap。如果發生任務閑置的情況,則換另外一組,從而導致Thread和SP之間并沒有嚴格的一一對應關系。

可參照這一邏輯模型對柵格數據分塊進行處理。可參照柵格數據的邏輯模型(一個2維矩陣),將柵格數據作2維的邏輯任務劃分,與圖2中所示模型一致。實際應用中,柵格數據的塊狀劃分可根據應用情況進行處理。例如,一些空間數據庫在對柵格數據存儲過程中進行了分塊索引,那么檢索到客戶端的柵格數據也是自然分塊的。分析處理中,這個數據塊可根據其大小,映射到一個Grid單元或一個Block單元進行計算,避免對柵格數據的重新規劃以及重新分塊。

在一個Block內部,涉及到如何將一塊柵格數據分布到不同的Thread中執行運算的問題。實際操作中,這一部分的劃分不是按照矩陣的邏輯模型,而是按照條帶的方式,即將一個數據塊中的不同行放到不同的Thread中進行處理。同一行數據以及相鄰行數據在存儲空間連續,便于地址空間的管理,也便于運算結果的寫回。

2.2 數據存儲模型

在CUDA中,與開發者密切相關的存儲器類型主要有兩種,即全局存儲(global memory)和共享存儲(shared memory),見圖3。全局存儲是在一個運算設備上全局共享存儲區域,一般來講就是顯存的一部分,用戶與CUDA之間的數據傳輸可通過這部分存儲區間完成。圖3中,Host是用戶在CPU中執行的代碼。共享內存是在一個Block中共享存儲區域,其作用可看作是高速緩存,存取速度雖然很快,但大小受限,在目前的硬件水平上一般不超過16 K。在柵格數據的任務調度中,盡量將數據放到共享存儲區域進行處理,這樣效率會較高。在CUDA模型中,將數據放到共享存儲區域的過程是一個需要用戶干預的過程。用戶在開發過程中,需要指定全局存儲中的數據如何組織到共享存儲中。CUDA的內建函數也提供了一些指令,用于不同線程間共享存儲數據的同步。

采用CUDA技術進行海量數據的并行運算,其效率除了受并行線程數量影響以外,還受存儲器的訪問效率影響。GPU訪問顯存的效率要遠遠高于CPU訪問內存的效率,主要是因為它在帶寬和頻率上都要高于CPU所在系統的總線。而在CUDA層面,對數據的訪問則可以考慮全局和共享存儲兩個層面。對于單個線程,在計算比較復雜、涉及的數據量大時,可不使用共享存儲單元;而在運算簡單、數據運算局部性比較強時,可先將一個Block中的線程需要訪問的數據組織到共享存儲單元中,然后再以共享存儲單元的訪問為基礎進行計算。

圖3 CUDA的存儲模型

2.3 海量遙感數據的分布式調度

上述存儲及調度模型是基于單機任務的,如果存在海量遙感數據,則需要在單機模式基礎上,建立一個支持分布式或在單一節點上存在多處理器的分布式運算模型[3,4]。

在一個基于GPU的運算集群環境下,柵格數據處理任務劃分可參照圖4中的邏輯模型,將柵格數據作2維的邏輯任務劃分。柵格數據的塊狀劃分可根據應用情況進行處理。例如,一些空間數據庫在對柵格數據存儲過程中進行了分塊索引,那么,檢索到客戶端的柵格數據也是自然分塊的。分析處理中,這個數據塊可根據其大小映射到一個GPU設備(即一個Grid)單元或一個線程塊(Block)單元中進行計算,從而避免對柵格數據的重新規劃以及重新分塊處理[5]。

圖 4 海量柵格數據在分布式環境下任務處理的邏輯模型

圖4中,假設有4個運算節點工作站對數據庫中的柵格數據進行處理。為了避免重新對數據進行任務劃分,可令每個節點計算機處理一塊數據。在獲取到數據后,節點計算機可根據其自身處理能力對數據進行再次劃分。例如,運算節點1中包含有運算能力不同的兩個處理單元,則在任務劃分中,將待處理數據按運算能力的大小分為兩個部分。實際處理中,這種劃分僅僅是一個偏移地址的處理,處理時間可以忽略不計。

3 柵格數據運算效率的比較

為了客觀評價CUDA技術在柵格數據加速運算過程中的效率,本文分別通過相關曲面、Sobel算子以及標準差計算來比較[6-8]。

3.1 相關曲面的計算

由于相關曲面模板大小為可變的,且其寬和高往往較一般卷積算子大,受共享存儲單元大小的限制,不便于放在其中運算。因此,這部分的測試是基于全局存儲訪問進行的。測試過程中,在不同尺寸的數據和匹配模板下分別用CPU和GPU進行計算,并比較二者的效率,見表1。

表1 GPU和CPU環境下相關曲面計算比較

從表中可以看出,在數據量比較小的情況下,GPU計算并無多大的優勢。隨著數據量的加大,GPU相對于CPU計算的加速比逐漸變大。可見,在海量柵格數據的處理中,GPU通用計算的優勢非常明顯。

3.2 Sobel算子的計算

這一測試的目的是檢測基于GPU的全局存儲和共享存儲進行計算的差別,因此,Sobel算子的測試并沒有在CPU下進行運算測試。由于Sobel算子卷積的運算量較小,運算速度較快,為了使結果比較客觀,兩種卷積運算各循環運算100次,然后求平均值。

在GPU采用Geforce GT 420 M的條件下,計算Sobel算子全局存儲訪問運算的平均時間為0.000 023 s,共享存儲訪問的平均時間為0.000 017 s,共享存儲訪問方式下的運算效率要高于全局存儲。因此,對于柵格數據的相關算法,應盡量尋求在共享存儲訪問模式下運算,以充分發揮GPU的優勢。

3.3 標準差的計算

為了反映未進行任務劃分條件下CPU和GPU計算能力的差異,對一個數組進行標準差統計。測試中,分別在CPU單線程、GPU單線程以及GPU多線程條件下進行。其中,GPU單線程指的是未對任務進行任何劃分,直接把整塊數據放到GPU中運算,同一時刻只有GPU的一個運算單元參與;GPU多線程則是將計算平均值以外的部分進行并行計算。數組大小為5 000個浮點數,計算結果見表2。

表2 標準差計算在不同計算條件下的時間比較

由此可見,如果不對任務進行劃分,單純靠GPU本身對任務調度計算,其計算能力甚至遠遠落后于CPU。僅對其中一部分的計算適當并行,GPU計算的效率則有明顯改觀。但是,標準差的計算是一個基于全局的運算,整個算法在實現過程中只有部分可實現并行計算,因此,類似算法如果要提高效率,還需要在算法上進行重構,不能僅僅依靠硬件性能。

另外,一次運算的數據規模也是影響運算效率的因素之一。GPU運算不像CPU,首先需要將運算數據傳輸到GPU存儲器(顯存),并進行一些數據結構的準備,再啟動內核計算。這些必要工作同樣消耗運行時間,而且與運算規模無關。因此,在GPU中進行數據處理,輸入規模越大,GPU中可并行的線程就越多,并行運算優勢就越明顯。圖5是CPU和GPU并行計算效率的比較,橫坐標表示運算規模,縱坐標表示時間消耗,單位為s。可見,當輸入數據量在131 072(即217)左右時,CPU和GPU耗時相當;大于217時,GPU表現出時間上的優勢。

圖5 不同運算規模下標準差計算的CPU-GPU效率比較

4 結 語

本文實驗證實,在海量柵格數據處理中,GPU通用計算技術確有優勢。因此,適當地改良現有柵格數據的算法,使之適應于GPU通用運算環境,是提高柵格數據運算效率的有效途徑。但是,由于GPU架構以及開發形式的特殊性,實際應用中往往很難使程序具有通用性,尤其是在大規模并行計算的環境下,而硬件條件往往比較統一,在允許的情況下可針對特定的GPU硬件進行優化,以達到效率最大化。

[1]Kirk D B,Hwu W W.大規模并行處理器編程實戰[M].北京:清華大學出版社,2010

[2]張舒,禇艷利.GPU高性能運算之CUDA[M].北京:水利水電出版社,2009

[3]Sanders J, Kandrot E.CUDA范例精解——通用GPU編程[M].北京:清華大學出版社,2010

[4]多相復雜系統國家重點實驗室多尺度離散模擬項目組. 基于GPU的多尺度離散模擬并行計算[M].北京:科學出版社,2009

[5]林一松,楊學軍,唐滔,等. 一種基于關鍵路徑分析的CPUGPU異構系統綜合能耗優化方法[J].計算機學報,2012(1):123-133

[6]盧風順,宋君強,銀福康,等.CPU/GPU協同并行計算研究綜述[J].計算機科學,2011(3):5-9

[7]許洪騰.圖像變換與表示技術及其在影像資料修復與增強中的應用[D].上海:上海交通大學, 2013

[8]盧麗君,廖明生,張路.分布式并行計算技術在遙感數據處理中的應用[J].測繪信息與工程,2005,30(3):1-3

猜你喜歡
效率模型
一半模型
重要模型『一線三等角』
提升朗讀教學效率的幾點思考
甘肅教育(2020年14期)2020-09-11 07:57:42
重尾非線性自回歸模型自加權M-估計的漸近分布
注意實驗拓展,提高復習效率
效率的價值
商周刊(2017年9期)2017-08-22 02:57:49
3D打印中的模型分割與打包
FLUKA幾何模型到CAD幾何模型轉換方法初步研究
跟蹤導練(一)2
“錢”、“事”脫節效率低
中國衛生(2014年11期)2014-11-12 13:11:32
主站蜘蛛池模板: 国产后式a一视频| 亚洲欧美日韩成人在线| 71pao成人国产永久免费视频| 国产精品伦视频观看免费| 久久福利网| 久久www视频| 国产无码精品在线播放| 亚洲狼网站狼狼鲁亚洲下载| 人妖无码第一页| 免费日韩在线视频| 国产精品亚洲一区二区在线观看| 日韩中文无码av超清| 国产无码在线调教| 亚洲欧洲日产无码AV| 久久精品最新免费国产成人| 亚洲色欲色欲www网| 亚洲大学生视频在线播放| 日韩无码白| 九色在线观看视频| 亚洲国产清纯| 免费观看男人免费桶女人视频| 无码一区中文字幕| AV不卡在线永久免费观看| 成人午夜天| 久久一级电影| 久久久久久尹人网香蕉 | 亚洲精品无码AV电影在线播放| 天天爽免费视频| 精品99在线观看| 成年女人a毛片免费视频| 日本91在线| 国产区精品高清在线观看| 色综合中文| 国产白浆在线| 成人自拍视频在线观看| 久久久无码人妻精品无码| 日韩精品一区二区三区大桥未久 | 欧美精品黑人粗大| 日韩av在线直播| 97国产在线视频| 国产成人无码久久久久毛片| 国产欧美日韩在线在线不卡视频| 国产一级视频在线观看网站| 欧美色伊人| 国产91视频免费观看| 亚洲第一色网站| 一级不卡毛片| 国产成人精品亚洲77美色| 国产91丝袜在线播放动漫 | 亚洲 日韩 激情 无码 中出| 40岁成熟女人牲交片免费| 亚洲精品天堂在线观看| 亚洲欧美另类视频| 亚洲AV无码一区二区三区牲色| 国产不卡国语在线| 91精品啪在线观看国产60岁| julia中文字幕久久亚洲| 亚洲成人免费在线| 五月丁香伊人啪啪手机免费观看| 欧美亚洲另类在线观看| 丁香婷婷综合激情| 日韩福利视频导航| 99色亚洲国产精品11p| 亚洲综合色吧| 欧美成人免费午夜全| 国产91在线免费视频| 国产在线观看91精品| 九九久久精品国产av片囯产区| 青草精品视频| 亚洲色无码专线精品观看| 色婷婷国产精品视频| 久久久久青草线综合超碰| 伊人91视频| 精品一区二区久久久久网站| 精品在线免费播放| 永久毛片在线播| 91小视频在线观看| 日韩精品中文字幕一区三区| 91在线播放国产| 国产91特黄特色A级毛片| 秋霞国产在线| 亚洲成A人V欧美综合天堂|