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

基于ARM GPU的機載SAR成像算法并行優化策略

2020-10-15 08:32:26威,梁軍,張楨,李
計算機工程 2020年10期
關鍵詞:嵌入式優化

李 威,梁 軍,張 楨,李 青

(1.北京聯合大學 北京市信息服務工程重點實驗室,北京 100101; 2.北京聯合大學 機器人學院,北京 100027)

0 概述

合成孔徑雷達(Synthetic Aperture Radar,SAR)是一種全天候、全天時的高分辨率微波遙感成像雷達,廣泛應用于地球遙感、海洋研究、資源勘探和災情預報等領域[1]。近幾年由于無人機技術的快速發展,機載SAR成為測繪困難地區實現全天候、全天時快速成像的主要遙感手段[2-4]。然而,SAR采集的原始數據量相當龐大,若將數據直接傳輸再由主機端進行處理,則對于設備的傳輸速度要求過高,因此機載SAR的實時處理至關重要[5-6]。同時,由于機載SAR計算資源有限,分析過程可能需要大量時間,因此降低了無人機對外界環境的響應能力[7]。

為權衡無人機的性能和功耗問題,對嵌入式機載設備提出了更高要求,雖然利用專用芯片、現場可編程門陣列(Field Programmable Gate Array,FPGA)、數字信號處理(Digital Signal Processing,DSP)等專用硬件的性能優化方案具有較大優勢,但研發成本也很高。通過移動ARM GPU對通用計算進行加速是近幾年在嵌入式平臺新興的優化方案,能夠降低額外的硬件成本與功耗,且通用性和可移植性強[8],此外,在并行加速計算中具有較大的性能優勢,可提供高于CPU數十倍甚至數百倍的計算性能[9]。但由于嵌入式ARM GPU硬件資源的限制,導致目前傳統GPU平臺上的優化方法無法應用于嵌入式ARM GPU,因此其意味著需要投入更多專門的工作來進行嵌入式ARM GPU優化。可見,嵌入式ARM GPU優化研究具有重要意義。

目前,研究人員對于機載SAR已開展了大量的研究工作。文獻[10]通過GPU對無人機SAR成像的性能進行加速。文獻[11]在具有GPU和CPU的異構平臺上設計并實現機載SAR處理系統。文獻[12]提出基于圖像的新GPU光線跟蹤方法進行單靜態SAR雙反射仿真。文獻[13]設計異構CPU-GPU框架,解決了無人機拍攝的高清視頻檢測成本過高問題。文獻[14]通過GPU并行加速來提高SAR成像目標檢測效率。文獻[15]在多個GPU平臺上通過反投影進行多通道SAR處理。文獻[16]在配備Tegra K1的片上系統上進行完全聚焦SAR算法并行優化以實現算法實時處理。然而,國內外關于SAR并行算法的通用性研究較少,由于不同硬件平臺需對算法進行針對性優化及改進,因此會增加軟件算法人員的工作量和移植難度。本文在ARM Mali-T860 GPU異構計算平臺上,提出基于OpenCL的多視處理算法、旋轉放縮算法和圖像量化算法的并行優化策略,以提升SAR算法整體性能。

1 ARM Mali-T860 GPU架構

Mali-T860是一款由ARM公司研發設計的Midgard架構的最高性能GPU,如圖1所示。該GPU可擴展至16個連通著色器核心(Shader Core,SC)。在每個核心中包含2個算術流水線、1個數據讀寫流水線和1個紋理流水線。每個算術流水線是基于單指令多數據(Single Instruction Multiple Data,SIMD),指令可同時對多個數據元素進行操作。數據讀寫流水線對RAM進行讀寫操作,紋理流水線負責所有與紋理相關的內存訪問。Mali Midgard GPU中的算術管道基于SIMD樣式矢量化,指令可同時對多個數據元素進行操作[17]。

圖1 ARM Mali-T860 GPU架構Fig.1 ARM Mali-T860 GPU architecture

2 SAR算法及其并行性分析

2.1 多視處理

多視處理是早期對SAR圖像相干斑進行處理的技術[18]。本文采用的多視處理技術對合成孔徑的多普勒帶寬進行分割,孔徑被分割后各自成像(出現多視),然后將疊加后的各子視圖進行平均處理[19]。但是,多視處理技術的前提是每一個子視圖必須觀測相同的地物,幾乎是同時且沒有輻射失真,還需要使用相同的極化方式和頻率。

根據多視參數(scale)將圖像按行和列取均值輸出,例如scale=4,其中scale需選取2~16中的偶數,因此本文選取4和16作為scale的值。如圖2所示,圖像按行x和列y每4個像素取均值輸出為1個像素F(x′,y′),圖像整體縮小為原圖像的1/16,如式(1)~式(3)所示:

圖2 scale為4和16時的多視處理 Fig.2 Multi-view processing with scales of 4 and 16

x′=x÷scale

(1)

y′=y÷scale

(2)

(3)

多視處理算法中每個結果數據都需要訪存scale×scale個數據并進行均值計算,數據和數據之間不存在依賴關系,具有良好的并行性。但該算法在讀取不同行數據時,無法保證數據地址的連續性,這是導致算法性能下降的原因之一,其優化重點為提高訪存帶寬的利用率。

2.2 旋轉放縮

旋轉放縮作為圖像幾何變換中最復雜的操作,廣泛應用于軍事、航空、生物醫學等領域[20]。由于在圖像旋轉放縮的過程中需要使用浮點運算,原始圖像為整數像素坐標(x,y),變換為目標圖像的位置坐標并非整數,反之亦然。因此,圖像旋轉變換包括坐標的幾何運算和對運算結果的插值處理兩方面,并且根據選擇的插值方法不同,得到的旋轉效果也不同。

輸入算法所需參數輸出矩陣的行Orow、列Ocol、角度a和放縮比例s,計算原圖像中心位置(xmid,ymid)與輸出圖像中心位置(xoutMid,youtMid),如式(4)~式(7)所示:

(4)

(5)

(6)

(7)

在圖像放縮過程中,首先計算旋轉角度后對應到原圖位置,坐標轉換以放縮后的圖像中心為原點,如式(8)和式(9)所示。其次計算旋轉前坐標,獲取4個角點坐標,如式(10)所示。最后進行雙線性插值計算,如式(11)~式(17)所示:

x′i=(yi÷s-youtMid)×sina+

(xi÷s-xoutMid)×sina+xmid(i=0,1,…,n)

(8)

y′i=(yi÷s-youtMid)×cosa+

(yi÷s-youtMid)×cosa+ymid(i=0,1,…,n)

(9)

x1=?x′」,x2=「x′?,y1=?y′」,y2=「y′?

(10)

Q11=(x1,y1)

(11)

Q12=(x1,y2)

(12)

Q21=(x2,y1)

(13)

Q22=(x2,y2)

(14)

(15)

(16)

(17)

旋轉放縮算法需要計算每個圖片像素處理前后的坐標位置F(x,y),所有像素坐標計算并不存在數據依賴關系,具有較好的并行度,但每個像素都存在密集計算,并且該算法在雙線性插值計算中存在較多的條件分支,其優化重點為簡化計算及對條件分支的優化。

2.3 圖像量化

圖像量化是圖像處理領域的一項基本技術,其可以在保證圖像顏色失真度較小的前提下,將含有豐富顏色信息的圖像用少數的代表色進行表示[21],如圖3所示。圖像量化等級(coef)多,所得圖像層次豐富,灰度分辨率高,圖像質量好,但數據量會增加;圖像量化等級少,圖像層次欠豐富,灰度分辨率低,會出現假輪廓現象,圖像質量變差,但數據量會降低。

圖3 圖像量化過程Fig.3 Image quantization process

在圖像量化過程中,需要求矩陣的行均值Rmean、列均值Cmean、全均值M以及結果像素F(x,y),如式(18)~式(21)所示:

(18)

(19)

(20)

F(x,y)=M×coef÷Rmean(x)÷Cmean(y)

(21)

圖像量化算法是典型的訪存密集型算法,算法執行過程中需要計算行均值、列均值以及全均值,至少需要對所有像素訪存兩次,并且結果矩陣的運算也需要對所有像素進行一次訪存,這將極大增加算法執行時間。該算法優化重點為提高訪存效率并減少重復數據訪存。

3 算法優化策略

3.1 多視處理算法優化策略

ARMMali-T860 GPU基于SIMD設計,即將數據以向量形式存儲,再通過一條指令對整個向量進行運算。該GPU寄存器為128位的向量化設計,每執行1次SIMD向量操作,相當于連續4次float/integer或2次double操作。向量化效果基本與并行化效果相一致,且理論上性能是普通標量運算的4倍,提高了訪存帶寬利用率。

3.2 旋轉放縮算法優化策略

旋轉放縮算法是典型的計算密集型算法,由于該算法的每個數據都需要反復計算輸入和輸出圖像的中心坐標、旋轉角度的正弦值和余弦值等參數,而且這些參數由初始輸入決定,因此優化策略將這些參數由CPU進行計算,再以常量參數輸入GPU,以此簡化并行算法中各線程的流水線計算。

在雙線插值計算中存在的4條分支會導致線程間負載不均衡。算術邏輯單元(Arithmetic and Logic Unit,ALU)支持4次mul操作和3次add操作的點積計算,計算周期為7 FLOPS,因此將雙線插值計算轉換成2階矩陣點積,通過條件分支將不符合條件的參數置0,在保證結果正確的情況下實現所有線程的負載均衡,具體公式如式(22)~式(27)所示:

(22)

(23)

v0=(x2-x′,x′-x1)

(24)

v1=((y2-y′)×v0,(y2-y′)×v0)

(25)

v2=(t1,t2)

廣東省藥品檢驗所堅持“為藥品標準做方法,為藥品監督做方法”,不斷提升食品藥品檢測能力和水平,把食品藥品質量風險關進防控籠子里,書寫“最嚴謹標準”的“廣東樣本”。

(26)

(27)

旋轉放縮算法中存在較多的條件判斷語句,這些條件判斷語句主要是為了區分不同元素在雙線性插值中的運算。由于不同的分支運算存在差異,將導致線程間的負載不均衡,因此為減少條件分支,使用A=B?C:D語句代替if…else…語句是減少動態指令的主要方式。

3.3 圖像量化算法優化策略

SIMD向量操作對于數據對齊有較高的要求,因此首先考慮col均值運算,通過一次讀入4個行元素提高訪存效率,再基于線程并行折半求和,最終計算得出當前列的平均值。

row均值計算采用for循環逐個累加所得保證線程連續尋址,但是每個work_group中僅有一個線程,因此如何在開啟大量線程的同時滿足線程的連續尋址是row歸約提升性能的關鍵。通過增加work_group線程數以提升整體處理性能,這樣雖然會導致不同線程的跨步尋址問題,但是能保證每個線程連續尋址。如圖4所示,以4 096×4 096的矩陣規模為輸入,每個work_group開啟64個線程,每個線程負責累加64個數據,然后輸出64×4 096的臨時矩陣,最后在計算所有元素的均值步驟中得出列均值。實驗結果表明,row規約優化對于計算所有元素均值的kernel增加了0.8 ms~0.9 ms的時間開銷,但對于計算列均值的kernel減少了5 ms的時間開銷。

圖4 row mean規約優化Fig.4 row mean reduction optimization

由于col與row均值的求解過程中存在一定的數據重復,如求解col與row均值的kernel需要讀取當前行的值,因此將col與row歸約的兩個kernel合并為一個kernel。單個線程每次讀入的4個行元素可用于求解當前col均值,同時用于累加以求出row均值的4個行元素。以數據規模為4 096×4 096為例,得出64×4 096的預處理矩陣,4 096×1的row均值矩陣。求解全均值的kernel進一步計算預處理矩陣得出col均值矩陣,如圖5所示。

圖5 col mean和row mean的kernel合并Fig.5 Kernel merge of col mean and row mean

kernel合并后每個線程一次讀取4個數據,即每個work_group一次讀取64個數據(每個work_group開啟16個線程)。在此基礎上,為進一步提高帶寬利用率,每個線程執行兩次讀取,即每個work_group一次讀取128個數據,如圖6所示。

圖6 訪存優化Fig.6 Memory access optimization

4 性能評估

4.1 實驗平臺

本文選擇ARM Mali-T860 GPU平臺和Cortex-A53(1.8 GHz) CPU平臺,ARM Mali-T860 GPU性能配置如表1所示。

表1 ARM Mali-T860 GPU性能配置Table 1 Performance configuration of ARM Mali-T860 GPU

4.2 性能分析

本文設定數據規模為512×512~4 096×4 096,通過優化算法的加速比衡量計算性能提升效果,確保測試精度。

4.2.1 多視處理算法性能分析

如圖7所示,na?ve為多視處理算法的GPU初始版本,向量化表示經過向量化處理的多視處理算法,scale=4時多視處理算法優化后取得了45倍~62倍的性能提升。可以看出,隨著數據規模的增大,加速比不斷減小,算法優化效果有所下降,主要原因為開啟的線程資源大于實際硬件的線程數,所有任務必須通過線程的上下文切換實現,但上下文切換的過程中存在數據延時情況。

圖7 多視處理算法優化效果(scale=4)Fig.7 Optimization effect of multi-view processing algorithm(scale=4)

如圖8所示,scale=6時多視處理算法優化后取得了17倍~33倍的性能提升。可以看出,隨著數據規模的增大,算法加速比不斷增加,優化效果越發明顯,主要原因為單個線程處理數據量的增加,即單線程流水線變長,可有效緩解多視處理算法對于線程數量的需求。

圖8 多視處理算法優化效果(scale=16)Fig.8 Optimization effect of multi-view processing algorithm(scale=16)

4.2.2 旋轉放縮算法性能分析

如圖9所示,na?ve表示旋轉放縮算法的GPU初始版本,簡化計算& ALU、減少動態指令和減少分支分別表示經過簡化計算& ALU、減少動態指令和減少分支的旋轉放縮算法,旋轉放縮算法優化后取得了48倍~74倍的性能提升。

圖9 旋轉放縮算法優化效果(a=30°、s=1.5)Fig.9 Optimization effect of rotation scaling algorithm (a=30°、s=1.5)

可以看出,在數據規模為1 024×1 024和512×512時,加速比基本相同,隨著數據規模的進一步增加,算法優化效果有所下降,其主要影響因素為:1)旋轉放縮算法是計算密集型算法,具有較好的并行性,kernel執行時間由單線程執行時間決定;2)Mali-T860 GPU平臺線程數量有限,若開啟線程數超過硬件本身,則需要通過上下文切換來完成所有任務。同時,筆者對旋轉放縮算法進行SIMD向量操作,但算法性能仍有所下降,其主要原因為每個線程處理單個數據的運算流水線已經滿載,向量化操作會進一步增加計算量。

4.2.3 圖像量化算法性能分析

如圖10所示,na?ve表示圖像量化算法的GPU初始版本,row歸約優化、kernel合并和訪存優化分別表示經過row歸約優化、kernel合并和訪存優化的圖像量化算法,圖像量化算法優化后取得了31倍~33倍的性能提升。

圖10 圖像量化算法優化效果(coef=35)Fig.10 Optimization effect of image quantization algorithm (coef=35)

可以看出,在數量規模為512×512和1 024×1 024時,row歸約優化的加速比相比na?ve有所下降,但隨著數據規模的增加,row歸約優化的加速效果越發明顯,其主要因素為:1)在row歸約優化后,row均值kernel會生成一個臨時矩陣,需要在全均值kernel中做進一步計算,這就造成了一部分額外訪存開銷;2)隨著數據規模的增大,線程計算量不斷增加,線程計算開銷隱藏了訪存延遲。數據規模為4 096×4 096時的圖像量化算法計算時間消耗如表2所示。

表2 圖像量化算法計算時間消耗(數據規模為4 096×4 096)Table 2 Computing time consumption of image quantization algorithm(data size is 4 096×4 096)

4.3 不同嵌入式異構GPU平臺上的實現對比

如圖11所示,分別將本文算法在NVIDIA Tegra X2(TX2)和AMD RyzenTMEmbedded V1000(APU)上進行實現,可以看出算法優化效果為:APU>TX2>Mali-T860,但各平臺運行程序時的功耗為:APU>TX2>Mali-T860(如表3所示),因此綜合考慮該性能差距為可接受。TX2的旋轉放縮算法性能遠低于其他平臺,其主要原因為TX2硬件不支持點積計算,通過軟件實現的點積操作不能達到性能提升的效果。

圖11 不同嵌入式異構GPU平臺上的算法優化效果(數據規模4 096×4 096)Fig.11 Algorithm optimization effect on different embedded heterogeneous GPU platforms(data size is 4 096×4 096)

嵌入式異構平臺執行程序功耗/WMali-T8603.6TX26.8APU30.0

5 結束語

傳統ARM嵌入式平臺的CPU無法滿足機載SAR的計算需求,因此ARM CPU+GPU的嵌入式異構多核平臺應運而生。本文充分利用嵌入式ARM Mali-T860 GPU平臺的計算能力,通過對機載SAR成像處理中的多視處理、旋轉放縮和圖像量化算法設計并行優化策略實現算法加速。實驗結果表明,與基于CPU的SAR成像算法相比,基于ARM Mali-T860 GPU優化后的多視處理、旋轉放縮和圖像量化算法整體性能更好。后續將考慮在NVIDIA Tegra X2和AMD RyzenTMEmbedded V1000平臺上對機載SAR成像過程中的多視處理、旋轉放縮和圖像量化算法做進一步性能優化,更好地權衡SAR算法的性能和功耗問題。

猜你喜歡
嵌入式優化
超限高層建筑結構設計與優化思考
房地產導刊(2022年5期)2022-06-01 06:20:14
民用建筑防煙排煙設計優化探討
關于優化消防安全告知承諾的一些思考
一道優化題的幾何解法
由“形”啟“數”優化運算——以2021年解析幾何高考題為例
TS系列紅外傳感器在嵌入式控制系統中的應用
電子制作(2019年7期)2019-04-25 13:17:14
嵌入式系統通信技術的應用
電子制作(2018年18期)2018-11-14 01:48:16
搭建基于Qt的嵌入式開發平臺
嵌入式軟PLC在電鍍生產流程控制系統中的應用
電鍍與環保(2016年3期)2017-01-20 08:15:32
基于低碳物流的公路運輸優化
現代企業(2015年2期)2015-02-28 18:45:09
主站蜘蛛池模板: 性欧美在线| 高清久久精品亚洲日韩Av| 久久久久青草线综合超碰| 国产激爽大片高清在线观看| 亚洲欧美日本国产专区一区| 国产成人综合网在线观看| 午夜色综合| 欧美精品伊人久久| 久久精品人人做人人综合试看| 综合久久五月天| 国产精品99久久久| а∨天堂一区中文字幕| 欧美中文字幕在线视频| 国产黄色免费看| 香蕉视频在线精品| 国产手机在线小视频免费观看| av无码一区二区三区在线| 美女潮喷出白浆在线观看视频| 在线播放国产99re| 在线五月婷婷| 国产午夜人做人免费视频中文 | 国产一区二区三区夜色| swag国产精品| 日韩精品亚洲精品第一页| 亚洲色欲色欲www网| 国产幂在线无码精品| 国产剧情国内精品原创| 中文国产成人精品久久| 狠狠v日韩v欧美v| 国产福利免费视频| 色婷婷电影网| 亚洲人网站| 无码AV高清毛片中国一级毛片| 在线观看av永久| 亚洲黄色片免费看| 国产欧美日韩免费| 欧美成人午夜影院| 久热中文字幕在线| 成人精品视频一区二区在线| 午夜爽爽视频| 中国一级毛片免费观看| 欧美a在线看| 日韩A∨精品日韩精品无码| 久久综合成人| jizz亚洲高清在线观看| 一级看片免费视频| 国产高潮流白浆视频| 国产一级α片| 欧美人与牲动交a欧美精品| 精品久久久久无码| 欧美日韩一区二区在线免费观看| 一区二区三区四区日韩| 国产成人精品第一区二区| 久久国产精品无码hdav| 97一区二区在线播放| 亚洲综合18p| 国产色偷丝袜婷婷无码麻豆制服| 国内精品久久久久鸭| 亚洲福利一区二区三区| a亚洲视频| 免费在线看黄网址| AV在线天堂进入| 亚洲第七页| 无码中文字幕精品推荐| 亚洲男人的天堂久久香蕉| 澳门av无码| 亚洲欧美另类日本| 免费人成网站在线观看欧美| 久久精品人人做人人爽电影蜜月| 美女一级毛片无遮挡内谢| 伊人久久福利中文字幕| 一区二区三区四区在线| 天堂亚洲网| 天天操精品| 成年免费在线观看| 久久九九热视频| 亚洲视频三级| 免费一级全黄少妇性色生活片| 日韩一区二区三免费高清| 亚洲日韩久久综合中文字幕| 手机看片1024久久精品你懂的| 香蕉国产精品视频|