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

一種基于OpenACC的遙感影像正射糾正快速實現方法

2014-07-25 11:29:17莫德林戴晨光張振超胡玲
影像技術 2014年2期
關鍵詞:程序

莫德林,戴晨光,張振超,胡玲

(信息工程大學地理空間信息學院,鄭州450001)

一種基于OpenACC的遙感影像正射糾正快速實現方法

莫德林,戴晨光,張振超,胡玲

(信息工程大學地理空間信息學院,鄭州450001)

利用CUDA語言移植舊程序時需要重新設計算法,花費較多的時間,效率不高。針對這一問題,本文在分析正射糾正算法并行性的基礎上,提出一種基于OpenACC的遙感影像正射糾正快速實現方法,并與基于CUDA的正射糾正方法進行對比。通過正射糾正實驗表明,OpenACC能通過對源代碼的較小改動將其移植到GPU中,獲得一定的加速比,其可移植性好,代碼開發(fā)效率較高。

OpenACC;CUDA;正射糾正;加速比

1 引言

多核的CPU和眾核的GPU(Graphic Processing Unit,即圖形處理器)已經成為目前大多數計算機中最重要的兩種處理器,科研人員積極尋找專業(yè)領域與GPU并行處理的結合點,對GPU并行計算進行了有益的探索。數字正射影像是地球空間數據框架的一個基礎數據層[1],被視為快速成圖與更新的重要手段。因此,提高數字正射影像的生產效率具有重要的作用。楊靖宇[2]提出一種基于CUDA(Compute Unified Device Architecture,統(tǒng)一計算設備架構)的遙感影像正射糾正GPU-CPU協(xié)同處理方法,實現了重采樣操作的GPU細粒度并行化。然而,初次接觸GPU的科研人員往往需要較長的時間才能完全掌握CUDA程序的編寫與優(yōu)化[3]。為此,PGI、Cray和NVIDIA3家公司聯合創(chuàng)立OpenACC應用編程接口標準。OpenACC使得科研人員能夠更加自由地將時間投入到自己的研究中,而又能在更短的時間內使程序得到加速。本文實現了一種基于OpenACC的遙感影像正射糾正方法,通過將計算密集區(qū)域加載到GPU上進行并行計算,提高了算法的執(zhí)行效率。

2 OpenACC介紹

OpenACC借鑒OpenMP的導語(directive)模式,在原始代碼上添加導語,告訴編譯器將哪些代碼塊加載到加速器上執(zhí)行、如何在主機與加速器之間移動數據[4]。如果編譯器不支持OpenACC標準或支持選項沒有打開,編譯器將忽略所有的OpenACC導語,編譯出的程序只在CPU上運行。OpenACC程序不必對原始代碼作過多的修改,可以讓相同的代碼在多核CPU、GPU或任何編譯器支持的其他類型的并行硬件上運行[5]。

在C/C++語言中,用語言本身提供的#pragam機制來引入OpenACC導語。OpenACC導語在C/C++語言中的語法是:

#pragma acc directive-name[clause[[,]clause]…]new-line

OpenACC導語包含四個部分[5]:

①數據管理

數據管理導語包括data構件和update導語。data構件指明的標量、數組和子數組都會在加速器內存上開辟空間。進入本區(qū)域時,數據被從主機復制到加速器內存,離開本區(qū)域時,數據被從設備復制到主機內存。update導語用在顯式或隱式數據區(qū)域中,使加速器內存中數組的值和主機內存中相應數組的值相互傳遞。

②工作管理

工作管理導語包括parallel構件、kernel構件和loop構件。OpenACC提供兩個計算構件(parallel和kernels),并能詳細指定并行方式(gang、worker、vector的值,對應于CUDA的grid、block、thread的值),通過編譯器將循環(huán)轉換為高效的低層級語言代碼(CUDA/OpenCL)。loop構件可以描述執(zhí)行這個循環(huán)的并行類型,還可以聲明循環(huán)的私有變量、數組和歸約操作。

③其他語法

其他語法包括cache構件、host_data構件、wait導語和declare構件。Cache構件指定哪些數組元素或子數組需要為循環(huán)體而預取到最高層級的緩存中,host_data構件使加速器上數據的地址在主機上可用,wait導語使主機等待一個異步活的完成declare構件指定的變量或數組需要在加速器內存上開辟空間。

④運行時例程

OpenACC提供多個運行時例程,可以設置加速器設備的參數,如例程acc_set_device_type告訴運行時環(huán)境使用哪種類型的設備來執(zhí)行加速器parallel區(qū)域和kernels區(qū)域。

3 基于OpenACC的正射糾正

數字微分糾正中,一般是利用反解公式求解坐標變換系數,計算對應像元的坐標,然后進行灰度重采樣,最后將重采樣后的灰度值賦值給糾正后的像元。影像灰度重采樣操作是典型的計算密集型模塊,其處理流程相對固定,每個數據點上的計算形式相同,數據點之間相互獨立,具有內在的并行性,因此非常適合GPU并行處理。由于遙感影像的數據量一般都比較大,相對于坐標變換系數的求解,重采樣操作將耗費更多的時間,所以正射糾正并行化的重點應該是重采樣操作的并行化[3]。正射糾正的流程如圖1所示。

圖1中虛線框內是并行計算區(qū)域。要將并行計算區(qū)域加載到加速器上進行計算,必須先設定環(huán)境以及將數據復制到加速器內存上。

圖1 正射糾正流程圖

基于OpenACC的正射糾正步驟如下:

①環(huán)境設定;

//設定執(zhí)行并行計算區(qū)域的設備類型

void acc_set_device_type(acc_device_t);

②使用data構件將原始影像、結果影像和DEM數據復制進顯存;

#pragma acc data copyin(SourceImage[0:width*height])

③使用kernels指令定義核心;

#pragma acc kernels present_or_copyin (SourceImage[0:width*height]){

④使用loop指令定義外層循環(huán);

#pragma acc loop independent

for(….){

⑤使用loop指令定義內層循環(huán);

#pragma acc loop independent

for(…){

//計算坐標變換系數、灰度重采樣以及灰度賦值,同時把結果放入目標內存

}}}

⑥將結果復制到主機端,釋放空間。

//#pragma acc update host();

void acc_shutdown(acc_device_t);//斷開程序與加速器設備的連接

4 實驗與分析

本文使用的實驗平臺CPU為Intel(R)Core(TM) i5,內存大小為4GB,顯卡為NVIDIA Quadro FX 3700。實驗平臺的軟件開發(fā)環(huán)境為:Windows7 32位操作系統(tǒng),PGI編譯器;NVIDIA公司提供的CUDA 5.0版本的開發(fā)包。

本文使用的實驗數據為2009年獲取的河南登封某地區(qū)DMC航攝影像,地面采樣間隔為0.25米。正射糾正所用的DEM數據為影像多視匹配獲得的點云數據經過濾波獲得,將其內插為0.25米規(guī)則格網數據。表1為不同范圍大小的影像基于CUDA與基于OpenACC的正射糾正時間對比結果。

由表1可見,基于CUDA和基于OpenACC的并行算法與基于CPU的串行算法相比,都能獲得一定的加速比,且加速比隨著數據量的增大而增大。在數據量較小時,加速效果并不明顯。這是因為基于CUDA和基于OpenACC的并行計算過程中,要在主機和加速器之間進行數據傳遞,這將耗費一定的時間資源,如果數據量較小,則在加速器上運算時間與數據傳遞時間之比也小,加速效果則不明顯。當數據量增大,在加速器上運算滿載時,運算時間與數據傳遞時間之比合理,則能達到最大的加速比。

CUDA程序經過優(yōu)化后,其加速比較OpenACC大。其原因是CUDA程序經過存儲器優(yōu)化后,可大大減少存儲訪問的時間。在OpenACC中,數據傳遞與訪問是隱式進行的,無法使用類似CUDA的共享內存,所以其訪存時間要比CUDA程序長。然而,從代碼開發(fā)的效率方面看,OpenACC程序只需要在串行代碼中增加OpenACC指令,就能將指定的并行區(qū)域加載到GPU上,取得10倍左右的加速比。這種方式保留了代碼的通用性,不破壞原代碼,開發(fā)速度快,既可并行執(zhí)行又可恢復串行執(zhí)行。而且,在硬件升級時,重新編譯一次代碼即可,不必手工修改代碼。更為重要的是,隨著編譯器的進一步優(yōu)化和硬件技術的發(fā)展,OpenACC與CUDA在底層技術實現上的差距將會越來越小[6],而且支持OpenACC指令的設備將不僅僅限于CUDA設備,還將擴展到其他更多廠商的硬件加速器,從而提高OpenACC程序的可移植性。

表1 GPU粗粒度并行下灰度重采樣時間結果表

5 結束語

本文以正射糾正算法為對象,通過在串行代碼的基礎上加入OpenACC指令,將坐標計算、灰度重采樣計算以及灰度賦值區(qū)域加載到GPU上,得到較高的加速比,提高了算法的執(zhí)行效率。這種方法不僅效率高,且不改變原來的代碼結構,大大增強了代碼的可移植性,對其他的影像處理算法有一定的參考價值。

[1]耿則勛,張保明,范大昭.數字攝影測量學[M].北京:測繪出版社,2010.8.

[2]楊靖宇,張永生,李正國等.遙感影像正射糾正的GPU-CPU協(xié)同處理研究[J].武漢大學學報(信息科學版),2011,36(9):1043-1046.

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

[4]Tetsuya Hoshino,Naoya Maruyama,Satoshi Matsuoka. CUDA vs OpenACC:Performance Case Studies with Kernel Benchmarks and a Memory-Bound CFD Application[C]. 13th IEEE/ACM International Symposium on Cluster, Cloud,and Grid Computing,2013(136-143).

[5]"The OpenACCApplication Programming Interface,Version 1.0,"November 2011.

[6]曾文權,胡玉貴,何擁軍等.一種基于OPENACC的GPU加速實現高斯模糊算法[J].計算機技術與發(fā)展,2013,23(7):147-151.

A Fast Implementation M ethod of Remote Sensing Image Ortho-rectification Based on OpenACC

MO De-lin,DAIChen-guang,ZHANG Zhen-chao,HU Ling
(Institude of Geospatial Information,Information Engineering University,Zhengzhou 450001,China)

Algorithms need to be redesigned when using CUDA to transplant old programs.This will cost a long period of time,which leads to a low efficiency.Aiming at solving this problem,a fast implementationmethod of remote sensing image ortho-rectification based on OpenACC is proposed,and compared with ortho-rectification based on CUDA in this paper.Ortho-rectification experiments show that OpenACC can transplant program to the GPU with small changes,and get a speed up ratio.The portability is good,and the efficiency of code development is high.

OpenACC;CUDA;Ortho-rectification;Accelerated ratio

P231

B

10.3969/j.issn.1001-0270.2014.02.21

2014-01-20

莫德林(1988-),男,廣西貴港人,碩士研究生,主要從事遙感圖像處理的研究。

猜你喜歡
程序
給Windows添加程序快速切換欄
電腦愛好者(2020年6期)2020-05-26 09:27:33
試論我國未決羈押程序的立法完善
人大建設(2019年12期)2019-05-21 02:55:44
失能的信仰——走向衰亡的民事訴訟程序
“程序猿”的生活什么樣
英國與歐盟正式啟動“離婚”程序程序
基于VMM的程序行為異常檢測
偵查實驗批準程序初探
我國刑事速裁程序的構建
創(chuàng)衛(wèi)暗訪程序有待改進
恐怖犯罪刑事訴訟程序的完善
主站蜘蛛池模板: 成人免费黄色小视频| 喷潮白浆直流在线播放| 一本色道久久88综合日韩精品| 香蕉视频国产精品人| 久久综合成人| 亚洲色图欧美| 久久午夜影院| 日本不卡在线播放| 亚洲精品你懂的| 午夜福利视频一区| 在线观看欧美国产| 久久永久精品免费视频| 亚洲精品国偷自产在线91正片| 色爽网免费视频| 华人在线亚洲欧美精品| 午夜人性色福利无码视频在线观看| 精品久久国产综合精麻豆| 制服丝袜亚洲| 丁香六月综合网| 拍国产真实乱人偷精品| www欧美在线观看| 99性视频| 国产在线观看精品| 韩日免费小视频| 日本91在线| 精品无码一区二区在线观看| 欧美激情,国产精品| 色丁丁毛片在线观看| 久久综合成人| 日韩在线观看网站| 茄子视频毛片免费观看| 午夜小视频在线| 亚洲福利网址| av在线手机播放| 国产成人综合在线观看| 久久午夜夜伦鲁鲁片不卡 | 国产精品xxx| a级毛片一区二区免费视频| 久久婷婷六月| 毛片视频网| 久久精品最新免费国产成人| 强奷白丝美女在线观看| 日韩欧美国产三级| 久久久波多野结衣av一区二区| 国产69精品久久久久孕妇大杂乱| 国产鲁鲁视频在线观看| 国产性猛交XXXX免费看| 精品福利视频导航| 中文字幕欧美日韩| 亚洲成人精品在线| 国产一区二区三区免费| 国产麻豆aⅴ精品无码| 亚洲一区二区三区国产精华液| 国产午夜无码专区喷水| 中文字幕色在线| 成人福利在线视频| 色有码无码视频| 本亚洲精品网站| 久久人人97超碰人人澡爱香蕉 | 天天激情综合| 天天综合色网| 国产成人1024精品| 国产91精选在线观看| 黄色国产在线| 毛片卡一卡二| 欧美精品成人一区二区在线观看| 亚洲成年人网| 欧美午夜在线播放| 91九色视频网| a级毛片免费看| 亚洲高清免费在线观看| 91麻豆精品视频| 中文字幕无码av专区久久 | 成年午夜精品久久精品| 国产精品第一区在线观看| 国产毛片不卡| av在线人妻熟妇| 亚洲欧美天堂网| 欧美啪啪一区| 91午夜福利在线观看| 成人午夜精品一级毛片| 久久情精品国产品免费|