《電子技術(shù)應(yīng)用》
您所在的位置:首頁(yè) > 嵌入式技術(shù) > 設(shè)計(jì)應(yīng)用 > 基于多核DSP的激光點(diǎn)云解算算法并行設(shè)計(jì)
基于多核DSP的激光點(diǎn)云解算算法并行設(shè)計(jì)
2017年電子技術(shù)應(yīng)用第2期
牛京玉,胡 堅(jiān),孟凡榮,賀文靜
中國(guó)科學(xué)院光電研究院 中國(guó)科學(xué)院定量遙感信息技術(shù)重點(diǎn)實(shí)驗(yàn)室,北京100094
摘要: 快速、實(shí)時(shí)地進(jìn)行點(diǎn)云解算以及獲取三維坐標(biāo)信息是當(dāng)前遙感應(yīng)用的發(fā)展趨勢(shì)。針對(duì)機(jī)載激光雷達(dá)點(diǎn)云計(jì)算量大、處理算法復(fù)雜等特點(diǎn),設(shè)計(jì)了基于TMS320C6678多核DSP的并行、高效激光點(diǎn)云處理方法。首先,簡(jiǎn)要介紹了點(diǎn)云解算的算法原理和特點(diǎn);其次,具體說(shuō)明了基于TMS320C6678多核DSP的并行點(diǎn)云解算架構(gòu)設(shè)計(jì);最后,利用機(jī)載激光雷達(dá)系統(tǒng)獲取的數(shù)據(jù)對(duì)設(shè)計(jì)的多核DSP并行處理架構(gòu)進(jìn)行了驗(yàn)證,并比較分析了同平臺(tái)下單核和多核處理器的運(yùn)行效率。
中圖分類號(hào): TP752.1
文獻(xiàn)標(biāo)識(shí)碼: A
DOI:10.16157/j.issn.0258-7998.2017.02.012
中文引用格式: 牛京玉,胡堅(jiān),孟凡榮,等. 基于多核DSP的激光點(diǎn)云解算算法并行設(shè)計(jì)[J].電子技術(shù)應(yīng)用,2017,43(2):54-57.
英文引用格式: Niu Jingyu,Hu Jian,Meng Fanrong,et al. The parallel processing design of LiDAR point cloud calculation based on multicore DSP[J].Application of Electronic Technique,2017,43(2):54-57.
The parallel processing design of LiDAR point cloud calculation based on multicore DSP
Niu Jingyu,Hu Jian,Meng Fanrong,He Wenjing
Key Laboratory of Quantitative Remote Sensing Information Technology,Academy of Opto-Electronics, Chinese Academy of Science,Beijing 100094,China
Abstract: Currently, the research on performing real-time points position cloud calculation method, which is aimed to obtain high precision surface models, is a trend of remote sensing technology. According to the features that airborne LiDAR point cloud calculation contains a large amount of computation and complex processing algorithms, a multi-core DSP parallel processing system is designed. This system, which is based on TMS320C6678, implements efficiently. Firstly, the principles and characteristics of the LiDAR system are introduced briefly. Secondly, the architecture of this multi-core DSP parallel system is described in detail. Finally, the fight data, which is from an airborne LiDAR system experiment, has been used to prove the effectiveness of this parallel architecture. At the same time, the operational efficiency of single core and multi-core processor has been compared and analyzed.
Key words : multicore DSP;parallel process;IPC;LiDAR points position calculation

0 引言

    近年來(lái),將遙感技術(shù)與自動(dòng)化控制技術(shù)、通信技術(shù)、傳感器檢測(cè)技術(shù)相結(jié)合,快速獲取并實(shí)時(shí)處理分析環(huán)境、時(shí)間等多維遙感信息是一種新型的遙感應(yīng)用方式。該方式融合了多種專業(yè)的技術(shù)特點(diǎn),已成為促進(jìn)遙感技術(shù)在多領(lǐng)域得以廣泛應(yīng)用的重點(diǎn)研究問(wèn)題。其中,機(jī)載激光雷達(dá)技術(shù)(Light Detection And Ranging,LiDAR)作為一種實(shí)現(xiàn)高精度地表多維信息快速獲取的新興航空遙感技術(shù)[1],已被廣泛應(yīng)用于油氣勘測(cè)、電力傳輸、城市規(guī)劃、土地資源調(diào)查、災(zāi)害評(píng)估等領(lǐng)域。

    目前,國(guó)內(nèi)外針對(duì)機(jī)載激光雷達(dá)的研究和商業(yè)化應(yīng)用不斷發(fā)展[2],其中 LiDAR系統(tǒng)直接獲取的原始數(shù)據(jù)(包括發(fā)射角、測(cè)距值)必須經(jīng)過(guò)點(diǎn)云解算才能形成三維數(shù)據(jù),因此,點(diǎn)云解算是LiDAR系統(tǒng)數(shù)據(jù)處理算法中不可或缺的環(huán)節(jié)。然而,面對(duì)當(dāng)今應(yīng)用對(duì)精度、實(shí)時(shí)性要求不斷提升的需求,具有計(jì)算量很大、處理算法復(fù)雜等特點(diǎn)的點(diǎn)云解算需要依托于高性能的機(jī)載處理平臺(tái)。其中,DSP憑借著運(yùn)算能力強(qiáng)、功耗低、資源豐富、靈活性強(qiáng)等優(yōu)勢(shì),在圖像視頻處理、數(shù)字通信、神經(jīng)網(wǎng)絡(luò)等方面[3,4]得到了廣泛運(yùn)用。

    隨著超大規(guī)模集成電路技術(shù)的日益發(fā)展,DSP技術(shù)已發(fā)展至可高效共享資源、降低功耗成本[5,6]的高性能多核DSP階段。這也是面對(duì)不斷向大帶寬、高精度、高實(shí)時(shí)性要求發(fā)展的信號(hào)處理趨勢(shì)的必然選擇。

    本文將利用多核DSP展開(kāi)面向機(jī)載陣列推掃式激光雷達(dá)系統(tǒng)的點(diǎn)云解算方法的并行設(shè)計(jì)與實(shí)現(xiàn),在點(diǎn)云解算原理、多核DSP系統(tǒng)資源方面介紹基礎(chǔ)上,對(duì)點(diǎn)云解算算法的并行模型設(shè)計(jì)、核間通信設(shè)計(jì)、效能測(cè)試方面進(jìn)行研究與分析。

1 點(diǎn)云解算原理

    陣列推掃式機(jī)載激光雷達(dá)系統(tǒng)建立三維點(diǎn)云解算模型的數(shù)據(jù)采集模塊,而點(diǎn)云解算則是將該系統(tǒng)獲取的激光點(diǎn)數(shù)據(jù)通過(guò)一系列處理得到三維空間信息的過(guò)程。首先,利用激光雷達(dá)載荷獲得激光脈沖的往返時(shí)間間隔及載荷位置姿態(tài)信息;然后,將激光掃描坐標(biāo)系下的測(cè)距值經(jīng)激光掃描坐標(biāo)系、慣性導(dǎo)航坐標(biāo)系、導(dǎo)航投影坐標(biāo)系、地心坐標(biāo)系轉(zhuǎn)換后,求出每個(gè)激光腳點(diǎn)精確的三維空間坐標(biāo)(X,Y,Z),從而完成激光點(diǎn)云解算。為提高激光點(diǎn)云的解算精度,在解算的過(guò)程中需將系統(tǒng)檢校參數(shù)代入,進(jìn)行校正處理[1]

    另外,由于掃描過(guò)程中會(huì)出現(xiàn)誤將低空飛行物當(dāng)作被測(cè)目標(biāo)記錄,或受到多路徑誤差或激光測(cè)距儀誤差影響等情況,可能導(dǎo)致數(shù)據(jù)中出現(xiàn)粗差。為保證機(jī)上處理速度,在算法中加入基于掃描距離值的快速粗差濾除閾值處理。處理流程如圖1所示。

qrs3-t1.gif

2 基于多核DSP的并行設(shè)計(jì)

2.1 硬件平臺(tái)資源介紹

    相比于單核DSP,多核DSP具有更強(qiáng)的并行處理能力和更優(yōu)化的功耗管理能力[7],因而得到了更多的關(guān)注。各主要數(shù)字信號(hào)處理器廠商,如Cradle、TI、ADI以及Freescale公司都相繼推出多核DSP。其中,TI公司的TMS320C6678在內(nèi)核數(shù)、主頻、功耗、運(yùn)算能力等方面均具有較為突出的優(yōu)勢(shì)。

    TMS320C6678是基于Keystone架構(gòu)的定點(diǎn)/浮點(diǎn)混合多核DSP[8],內(nèi)置8個(gè)C66x DSP核,最高工作頻率可達(dá)1.4 GHz,具有320GMACS的定點(diǎn)處理能力和160 GFLOPS的浮點(diǎn)運(yùn)算能力。其還擁有豐富的片內(nèi)資源,多種高速互聯(lián)接口[9]。此外,TI公司還提供了具有任務(wù)調(diào)度、資源管理等功能的SYS/BIOS實(shí)時(shí)操作系統(tǒng),可大大縮短開(kāi)發(fā)周期。可見(jiàn),C6678能很好地適應(yīng)對(duì)低功耗、高性能、可編程性等多方面有嚴(yán)格要求的應(yīng)用環(huán)境,是實(shí)現(xiàn)實(shí)時(shí)處理復(fù)雜算法的最佳選擇。

2.2 并行模型設(shè)計(jì)

    在多核DSP的系統(tǒng)設(shè)計(jì)中,并行處理模型的構(gòu)建包括任務(wù)調(diào)度、消息通信、內(nèi)存訪問(wèn)三者間的綜合考慮,只有采用最優(yōu)化的結(jié)合方案,才能達(dá)到處理效果和資源功耗間的平衡狀態(tài),從而獲得處理系統(tǒng)的高性能。因此,選擇適合的并行模型無(wú)疑是多核DSP系統(tǒng)開(kāi)發(fā)的最關(guān)鍵步驟之一。目前,多核DSP并行模型主要有兩種:數(shù)據(jù)流模型(Data Flow Model)和主從模型(Master Slave Model)[10]。其中,數(shù)據(jù)流模型描述了DSP的多個(gè)內(nèi)核串行的工作方式,具有思路簡(jiǎn)單、實(shí)時(shí)性較好、模塊間依賴性強(qiáng)、通信頻繁的特點(diǎn),較為適合處理流程單一、內(nèi)核間強(qiáng)相關(guān)性的應(yīng)用;主從模型則是從多個(gè)內(nèi)核中選定一個(gè)作為主核負(fù)責(zé)總體控制,其余內(nèi)核作為從核執(zhí)行具體計(jì)算任務(wù)的工作方式,具有各從核間相互獨(dú)立、配置靈活的特點(diǎn),更適于處理流程算法復(fù)雜、核間弱相關(guān)性的應(yīng)用。

    本次設(shè)計(jì)中應(yīng)用的點(diǎn)云解算算法具有處理流程復(fù)雜、浮點(diǎn)運(yùn)算量大的特點(diǎn),且待處理的數(shù)據(jù)將以一行的量為基本處理單位,處理過(guò)程獨(dú)立。可見(jiàn)該算法并不適合將整體算法分塊拆分至不同核的設(shè)計(jì)思路,這樣會(huì)造成大量由于機(jī)載點(diǎn)云數(shù)據(jù)質(zhì)量檢測(cè)引入的邏輯消耗、核間同步以及數(shù)據(jù)通信消耗,是一種得不償失的做法。因此,本文將采用主從方式設(shè)計(jì)點(diǎn)云解算的并行模型。

    本文的具體設(shè)計(jì)思路是:將0核設(shè)置為主核,其任務(wù)包括監(jiān)控所有從核的任務(wù)進(jìn)度、建立與多種外設(shè)以及從核間的有效通信橋梁;1~7核為從核,其任務(wù)包括當(dāng)前狀態(tài)反饋、點(diǎn)云解算主體操作。

2.3 核間通信設(shè)計(jì)

    核間通信是多核處理器實(shí)現(xiàn)并行處理的重要組成部分[11],其主要有消息通信和數(shù)據(jù)搬移兩方面。消息通信通常用于實(shí)現(xiàn)核間同步通知以及狀態(tài)反饋,而數(shù)據(jù)移動(dòng)則適用于大量的運(yùn)算數(shù)據(jù)傳輸。C6678中也提供了多種通信方式和模塊庫(kù),主要的有:同步變量監(jiān)視、核間直接中斷、Event Notify、MessageQ Queue、多核導(dǎo)航器以及EDMA3[10,12,13]。

    其中,同步變量監(jiān)視模式所需模塊最少,實(shí)現(xiàn)簡(jiǎn)單,但需不斷維護(hù)Cache一致性和CPU占有情況;核間直接中斷方式無(wú)BIOS參與,實(shí)現(xiàn)思路清晰,但頻繁的中斷增加額外耗時(shí),靈活度低;Event Notify方式簡(jiǎn)單快捷,但數(shù)據(jù)傳輸能力弱,復(fù)雜度較高;Message Queue方式提供了更精細(xì)的數(shù)據(jù)消息,靈活性和適應(yīng)性強(qiáng),應(yīng)用廣泛,但復(fù)雜度高;多核導(dǎo)航器方式實(shí)現(xiàn)設(shè)備內(nèi)的數(shù)據(jù)高性能傳輸,靈活度大,但復(fù)雜度很大;增強(qiáng)型直接內(nèi)存訪問(wèn)(Enhanced Direct Memory Access 3,EDMA3)方式可實(shí)現(xiàn)數(shù)據(jù)的高效傳輸,且該過(guò)程幾乎不占用CPU時(shí)鐘[14],但復(fù)雜度也高。因此,同步變量監(jiān)視、核間直接中斷、Event Notify和Message Queue這4種方式比較適合于核間同步消息通知,而多核導(dǎo)航器和EDMA3則更適合于數(shù)據(jù)通信。

    本文待實(shí)現(xiàn)的點(diǎn)云解算算法在多核通信方面有如下需求:消息通信方面,需要實(shí)現(xiàn)主核和從核間的同步通知,用于監(jiān)控處理的進(jìn)度;數(shù)據(jù)通信方面,需要實(shí)現(xiàn)對(duì)原始數(shù)據(jù)塊、各階段處理結(jié)果的劃分及高速數(shù)據(jù)傳輸過(guò)程。

    再結(jié)合DSP內(nèi)部存儲(chǔ)器空間小但訪問(wèn)速度快、外部存儲(chǔ)器DDR3空間大而訪問(wèn)速度慢以及陣列推掃式激光雷達(dá)系統(tǒng)具有按描行存儲(chǔ)處理數(shù)據(jù)的特點(diǎn),為了盡可能提高傳輸效率,以PING-PONG傳輸方式建立數(shù)據(jù)緩存機(jī)制:先將采集的數(shù)據(jù)流逐行緩存到DDR3中,并在從核內(nèi)部存儲(chǔ)器建立兩個(gè)緩存區(qū),以EDMA3方式實(shí)現(xiàn)數(shù)據(jù)在DDR3與內(nèi)部存儲(chǔ)器之間的高速傳輸,并且采用靈活度高的Message Queue實(shí)現(xiàn)核間同步消息通信。圖2展示了本文基于TMS320C6678的點(diǎn)云解算總體設(shè)計(jì)構(gòu)架。

qrs3-t2.gif

3 實(shí)驗(yàn)結(jié)果分析

    本文實(shí)驗(yàn)采用TMDXEVM6678L EVM C6678 DSP開(kāi)發(fā)板,這是一款用于對(duì)TMS320C6678進(jìn)行評(píng)估開(kāi)發(fā)的硬件平臺(tái)。實(shí)驗(yàn)時(shí),DSP核主頻設(shè)置為1 GHz。實(shí)驗(yàn)激光點(diǎn)云原始數(shù)據(jù)來(lái)自某線陣推掃LiDAR載荷飛行試驗(yàn)獲取的一段數(shù)據(jù),行數(shù)為8 400行,每行208 B,總數(shù)據(jù)量約為1.67 MB;載荷位置數(shù)據(jù)也選取對(duì)應(yīng)的8 400行,每行52 B,總數(shù)據(jù)量約為426.56 KB。

    實(shí)驗(yàn)分析了不同大小數(shù)據(jù)塊對(duì)基于多核DSP主從模型的LiDAR數(shù)據(jù)實(shí)時(shí)處理運(yùn)行效率的影響,在數(shù)據(jù)處理總行數(shù)一定的條件下,分別以1、2、4、6、8、10行數(shù)劃分每次處理數(shù)據(jù)傳輸塊,從而獲取數(shù)據(jù)傳輸及點(diǎn)云解算處理的耗時(shí)測(cè)試數(shù)據(jù)。同時(shí),實(shí)驗(yàn)還對(duì)比記錄了相同總數(shù)據(jù)量、每次處理行數(shù)不變的條件下,單核實(shí)現(xiàn)點(diǎn)云解算處理的耗時(shí),如表1所示。

qrs3-b1.gif

    從表1可知,設(shè)計(jì)的點(diǎn)云解算多核并行模型在7核并行運(yùn)算的情況下,效率達(dá)不到7倍單核的理想狀態(tài),原因?yàn)閷?shí)際的運(yùn)算過(guò)程會(huì)由于核間通信、數(shù)據(jù)傳輸?shù)仍虍a(chǎn)生時(shí)間消耗和資源競(jìng)爭(zhēng)。需要注意的是,不合理的方案設(shè)置反而會(huì)增加整體的運(yùn)行耗時(shí),造成與資源消耗情況相距甚遠(yuǎn)的結(jié)果。文中設(shè)計(jì)充分考慮并平衡了通信消耗和傳輸資源競(jìng)爭(zhēng)等方面的影響,將效率提升到單核的6.6倍左右,使得性能得到了較大提升。

    圖3顯示了單/多核模型的總耗時(shí)與處理行數(shù)間的關(guān)系。針對(duì)多核并行處理方式,如圖3(a)所示,運(yùn)行耗時(shí)由核間通信和EDMA3模塊調(diào)用的次數(shù)變化共同影響,其隨著每次處理行數(shù)的增加而降低。在處理總行數(shù)一定的情況下,每次處理的行數(shù)越多,總體處理方案調(diào)用核間同步通信和EDMA 3模塊的次數(shù)越少,通信傳輸消耗降低。此外,從圖3(a)中還能看出:曲線斜率隨著行數(shù)的增加而變緩,其原因在于增加每核處理行數(shù),也會(huì)增大每次傳輸時(shí)間和內(nèi)部緩存壓力,體現(xiàn)出核間調(diào)度和數(shù)據(jù)傳輸兩者的矛盾關(guān)系,需要遇到具體問(wèn)題具體劃分?jǐn)?shù)據(jù)塊行數(shù)。圖3(b)顯示了單核處理方式下,運(yùn)行耗時(shí)和每次處理行數(shù)的關(guān)系,其變化趨勢(shì)與多核一致。隨著每次處理的行數(shù)增多,每次EDMA3傳輸?shù)臄?shù)據(jù)量增加,對(duì)EDMA3相關(guān)控制器設(shè)置的總次數(shù)減少,而EDMA3控制器的設(shè)置耗時(shí)相對(duì)較少。由此可得:EDMA3每次傳輸數(shù)據(jù)量的不同導(dǎo)致了耗時(shí)的不同,充分驗(yàn)證了EDMA3在傳輸大數(shù)據(jù)量時(shí)具有一定的優(yōu)勢(shì)。在具體的設(shè)計(jì)過(guò)程中,需要合理選擇每次的處理行數(shù),以達(dá)到效率最優(yōu)化。

qrs3-t3.gif

4 結(jié)論

    本文采用TMS320C6678硬件平臺(tái),設(shè)計(jì)搭建了基于機(jī)載陣列式推掃激光雷達(dá)系統(tǒng)的點(diǎn)云解算算法的多核并行主從處理模型,執(zhí)行效率達(dá)到了單核的6.6倍,使得性能得到了很大的提升,證明了對(duì)激光雷達(dá)技術(shù)的嵌入式實(shí)時(shí)處理系統(tǒng)的可行性。為進(jìn)一步的遙感三維影像生成技術(shù)的嵌入式實(shí)時(shí)處理系統(tǒng)的設(shè)計(jì)實(shí)現(xiàn)奠定了堅(jiān)實(shí)的基礎(chǔ)。

參考文獻(xiàn)

[1] 黎荊梅,周梅,李傳榮.陣列推掃式機(jī)載激光雷達(dá)三維點(diǎn)云解算方法研究[J].遙感技術(shù)應(yīng)用,2013,28(6):1033-1038.

[2] 李番,鄔雙陽(yáng),楊紅果,等.機(jī)關(guān)雷達(dá)多元陣列探測(cè)技術(shù)[J].紅外與激光工程,2009,38(2):295-299.

[3] 賀文靜,胡堅(jiān),李子揚(yáng),等.基于多DSP的遙感圖像實(shí)時(shí)壓縮系統(tǒng)設(shè)計(jì)[J].電子技術(shù)應(yīng)用,2015,41(5):46-56.

[4] SEUI J,SUNG S K.Hardware implementation of a real-time neural network controller with a DSP and an FPGA for nonlinear systems[J].Industrial Electronics,IEEE Transactions on 2007,54(1):265-71.

[5] 李鑫,姜明.多核DSP告訴實(shí)時(shí)信號(hào)處理系統(tǒng)設(shè)計(jì)[J].光學(xué)設(shè)計(jì),2012,38(1):116-120.

[6] 趙振華,鄭紅.嵌入式可重構(gòu)的多DSP圖像并行處理系統(tǒng)[J].單片機(jī)與嵌入式系統(tǒng)應(yīng)用,2009(2):12-15.

[7] 繩偉光,蔣建飛,何衛(wèi)鋒.高性能DSP的發(fā)展現(xiàn)狀與未來(lái)趨勢(shì)[J].中國(guó)集成電路,2011(4):20-25.

[8] Texas Instruments.TMS320C66x DSP CPU and instruction set reference guide(Literature Number: SPRUGH7)[EB/OL].(2010)[2016].www.ti.com.

[9] Texas Instruments.TMS320C6678 multicore fixed and floating-point digital signal processor data manual[EB/OL].(2014)[2016].www.ti.com.

[10] Texas Instruments.Multicore programming guide(Literature Number:SPRAB27B)[EB/OL].(2011)(2016).www.ti.com.

[11] 吳灝,肖吉陽(yáng),范紅旗,等.TMS320C6678多核DSP的核間通信方法[J].電子技術(shù)應(yīng)用,2012,38(9):11-13.

[12] Texas Instruments.SYS/BIOS inter-processor communication user’s guide(Literature Number: SPRUGO6E)[EB/OL].(2012)[2016].www.ti.com.

[13] 劉力,張鵬,楊軍.基于EDMA3控制器的多通道音頻數(shù)據(jù)傳輸[J].電聲技術(shù),2014,38(8):59-61.

[14] 但永平,彭紅濤,王東云,等.EDMA3在圖像數(shù)據(jù)快速傳輸中的應(yīng)用[J].液晶與顯示,2013,28(1):99-104.



作者信息:

牛京玉,胡  堅(jiān),孟凡榮,賀文靜

(中國(guó)科學(xué)院光電研究院 中國(guó)科學(xué)院定量遙感信息技術(shù)重點(diǎn)實(shí)驗(yàn)室,北京100094)

此內(nèi)容為AET網(wǎng)站原創(chuàng),未經(jīng)授權(quán)禁止轉(zhuǎn)載。