• 
    

    
    

      99热精品在线国产_美女午夜性视频免费_国产精品国产高清国产av_av欧美777_自拍偷自拍亚洲精品老妇_亚洲熟女精品中文字幕_www日本黄色视频网_国产精品野战在线观看 ?

      基于GPU的高速鐵路扣件實時探測技術(shù)

      2011-06-11 03:35:18王夢雪陶衛(wèi)楊金峰吳芳趙輝王衛(wèi)東任盛偉
      大連交通大學(xué)學(xué)報 2011年6期
      關(guān)鍵詞:數(shù)據(jù)量存儲器扣件

      王夢雪,陶衛(wèi),楊金峰,吳芳,趙輝,王衛(wèi)東,任盛偉

      (1.上海交通大學(xué) 電子信息與電氣工程學(xué)院,上海 200240,2.中國鐵道科學(xué)研究院,北京 10081)

      0 引言

      扣件在鐵路系統(tǒng)起到固定鐵軌的重要作用.而現(xiàn)今,扣件檢測主要依靠的是鐵路工人的沿線排查,速度慢效率低.特別是近年來高速鐵路的興起,其封閉環(huán)境更增加了人工巡檢的難度[1].目前國際上對此常用的解決方案多為視覺自動化檢測技術(shù),即在巡檢車上掛載高速相機(jī),拍攝扣件圖片,對圖片進(jìn)行處理分析,實現(xiàn)自動化檢測.

      但是,由于傳統(tǒng)的圖像處理與模式識別存在信息量大、處理速度低的缺陷,扣件在線探測速度低一直是影響該方法實際應(yīng)用的軟肋.到目前為止,國內(nèi)外扣件最快檢測速度出現(xiàn)在西日本鐵路公司2006年的新干線141系綜合檢測車上,但也只在150 km/h左右.

      隨著我國高速鐵路事業(yè)的發(fā)展,其對扣件檢測的速度要求越來越高.特別是我國近期開通的京滬高鐵,其對檢測速度的要求更是達(dá)到了400 km/h以上.由此可見,提高扣件在線檢測速度的要求迫在眉睫.

      針對這個問題,本文提出了一種基于GPU加速的扣件在線檢測技術(shù),可以準(zhǔn)確地識別扣件缺失狀況,同時將處理速度大幅度提高,滿足了400 km/h高鐵試驗速度的在線探測要求.

      1 系統(tǒng)組成與工作原理

      該鐵路扣件在線探測系統(tǒng)由兩個探測器和一個控制系統(tǒng)組成.左右探測器分別監(jiān)測左右兩個鋼軌的扣件狀態(tài),檢測信號送入處理系統(tǒng),進(jìn)行處理、識別、判斷、存儲和輸出.位置信號來自車輪和車體,報警信號送至車載處理中心.圖1中為單個探測器的組成示意圖.

      圖1 扣件探測系統(tǒng)組成原理示意圖

      在列車運行過程中,兩臺高速工業(yè)相機(jī)連續(xù)拍攝扣件所在區(qū)域的灰度圖像,并對其進(jìn)行圖像處理和模式識別,最終得到匹配結(jié)果,實時檢測了扣件缺失狀況.

      采用通用的模式識別算法提取扣件圖像的紋理信息,通過與標(biāo)準(zhǔn)扣件模板進(jìn)行局部梯度值匹配,并與設(shè)定閾值比較,從而判斷扣件缺失情況,具有穩(wěn)定度高,不隨扣件形狀的改變而失效的優(yōu)點.其信息量豐富,故處理速度相對較慢,無法滿足高速鐵路的在線探測需求.

      GPU原本應(yīng)用于復(fù)雜3D圖形及圖像的處理運算.與CPU相比,GPU是一種高并行度、多線程、擁有強(qiáng)大計算能力和極高存儲器帶寬的多核處理器[2].現(xiàn)今,其最高理論浮點計算速度已經(jīng)可以達(dá)到40Tflops,遠(yuǎn)遠(yuǎn)高于同期的 CPU.如今,隨著計算統(tǒng)一設(shè)備架構(gòu)(Compute Unified Device Architecture,CUDA)的出現(xiàn),使得GPU的可編程性能再度得到提升.

      所以本文采用了一種基于GPU與CPU協(xié)作的處理技術(shù),即GPU負(fù)責(zé)圖像算法運算,CPU則負(fù)責(zé)流處理,這樣實現(xiàn)了扣件缺失的高速探測.

      2 GPU相關(guān)研究

      GPU發(fā)展到現(xiàn)在,已經(jīng)遠(yuǎn)遠(yuǎn)不只圖形渲染圖形處理領(lǐng)域的應(yīng)用.作為廣義的圖形處理器,大量的并行處理單元和存儲控制單元使其在通用計算方面能比CPU提供更多的運算資源.

      NVIDIA GPU使用了CUDA編程模型,對圖形硬件和API進(jìn)行封裝,使得開發(fā)人員把GPU看成是一個包含了許多核許多線程的處理器,并在類似于CPU的編程環(huán)境中對GPU進(jìn)行編程,實現(xiàn) GPU 的通用計算[3].

      本文主要以新一代的Fermi架構(gòu)GF100[4]來說明CUDA的軟硬件架構(gòu).從硬件架構(gòu)來看,GF100包含四個圖形處理團(tuán)簇(GPC,Graphic Processing Core).每個GPC包含一個光柵引擎和四個SM(Streaming Multiprocessor,多線程流處理器)單元以及一些存儲單元.如圖2中所示.

      圖2 GPC架構(gòu)

      軟件上,CUDA對底層硬件的封裝,使其對外顯示出線程的三層組織結(jié)構(gòu),如圖3所示.具體如何組織網(wǎng)格(grid)由啟動kernel函數(shù)時提供的配置參數(shù)決定[5].執(zhí)行配置的第一個參數(shù)指定網(wǎng)格的維度,第二個參數(shù)指定塊的維度,如 kernel Function<<<dimGrid,dimBlock> > > (…),dimGrid表示一個Grid中的Block數(shù)量,而dim-Block則表示一個Block中的thread數(shù)量.

      圖3 kernel組織結(jié)構(gòu)

      而GPU理論性能的描述主要從以下幾個方面描述:

      (1)CGMA(Compute to Global Memory Access),是在CUDA程序的某一區(qū)域內(nèi)每次訪問全局存儲器時,執(zhí)行浮點操作運算的次數(shù).

      (2)Speedup(加速比),此項指標(biāo)是指對于同一算法的實現(xiàn),GPU與CPU的耗時比值.記CPU耗時為ts,GPU耗時為tp,則

      3 扣件探測算法在GPU上的實現(xiàn)

      3.1 算法實現(xiàn)步驟

      實際算法在GPU上進(jìn)行并行計算主要有以下步驟:

      (1)將主機(jī)端內(nèi)存中的圖像數(shù)據(jù)和模板紋理通過PCI-E總線傳輸?shù)皆O(shè)備端全局存儲器,并綁定到GPU的紋理存儲器中.

      (2)對輸入圖像數(shù)據(jù)進(jìn)行邊緣提取,抽樣濾波以及模板匹配等處理,將匹配結(jié)果存入全局存儲器中以便送回給主機(jī)端.

      (3)將匹配結(jié)果傳出給主機(jī)端,方便進(jìn)行顯示,分析.

      具體算法流程及存儲器設(shè)計如圖4所示.此算法利用GPU的高吞吐量,采用一次向GPU壓入N幅圖像,降低了平均每幅圖像的傳輸延時;通過充分利用shared memory的塊內(nèi)快存儲特性,減少了程序?qū)lobal memory的讀寫次數(shù),對提高CUDA kernel的性能有很大意義;使用了texture memory對圖像進(jìn)行梯度的計算,同樣提高了算法穩(wěn)定性和快速性.

      圖4 算法流程圖

      3.2 GPU程序的優(yōu)化

      影響CUDA kernel函數(shù)性能的因素主要有以下三個:CPU-GPU之間的數(shù)據(jù)傳輸延時;全局存儲器的訪存頻率(CGMA值);kernel函數(shù)的結(jié)構(gòu)組成(分支、循環(huán)).下面會分別對這三點進(jìn)行詳細(xì)分析,并針對本文的算法進(jìn)行優(yōu)化處理.

      下面是一組未經(jīng)過優(yōu)化的實驗數(shù)據(jù),如圖5所示.50表示一次傳入GPU的圖像數(shù)為50幅,1表示一次傳入一幅.圖像分辨率分別為160 dpi×120 dpi,320 dpi× 240 dpi.

      圖5 多幅圖一次傳入性能比較

      從圖中可以很明顯的看出,一次壓入50幀比一次壓入1幀的平均每幀傳輸延時減少了50~100倍,這是由于多次傳輸會浪費GPU大量warp線程,而一次傳輸會大大減少這種浪費.鑒于這個原因,本文采用大吞吐量設(shè)計,考慮GPU一次處理多幀圖像,降低每幀的平均延時.

      其次,CGMA同樣對CUDA程序性能影響很大.CGMA能綜合反映出許多對執(zhí)行效能有影響的因素如I/O效能,內(nèi)存架構(gòu),cache的一致性.例如,NVIDIA公司生產(chǎn)的GTX470支持全局存儲器的訪問帶寬為135.9 GB/s,則對于單精度浮點數(shù)的加載速度不會超過33.975Gflops(135.9/4).如果CGMA比值為1.0,即執(zhí)行一次單精度浮點運算即加載一次全局存儲器數(shù)據(jù),則每秒鐘可執(zhí)行的浮點操作也不會超過33.975Gflops,這相對于GTX470理論最高單精度浮點處理速度1.633Tflops來說,實在是相形見絀,限制了硬件良好性能的充分發(fā)揮.所以提高CGMA比值,是提高kernel函數(shù)性能的關(guān)鍵.

      本文針對提高CGMA使用了兩種方法:第一,選擇將圖像數(shù)據(jù)和模板紋理數(shù)據(jù)均綁定到紋理存儲器,從而減少對global memory的讀寫.紋理存儲器(texture memory)是由GPU用于紋理渲染的圖形專用單元發(fā)展而來,有著無需考慮圖像訪問越界等獨特的特性,從底層的存儲機(jī)制來說,紋理存儲器是一種SP訪問全局存儲器的不嚴(yán)格機(jī)制,以緩沖來自全局存儲器的數(shù)據(jù).一旦將全局存儲器中的某一區(qū)域與紋理存儲器綁定,那么只有當(dāng)緩沖失敗的情況,才會訪問全局存儲器,大大減少了訪問global memory的次數(shù),提高了CGMA比值.第二,將分塊技術(shù)與數(shù)據(jù)預(yù)取技術(shù)相結(jié)合.即充分利用塊(block)內(nèi)共享存儲器(shared memory)(快讀寫,速度接近寄存器),在使用當(dāng)前數(shù)據(jù)元素時預(yù)取下一個數(shù)據(jù)元素,將其從其他存儲器(如 global memory)加載到共享存儲器[6].

      另外,指令混合也是CUDA優(yōu)化技術(shù)的一種.其旨在kernel函數(shù)中減少循環(huán)和遞歸的使用,通過減少對有限的指令帶寬的占用來提高GPU的指令執(zhí)行速度.但是由于本算法固有的循環(huán)維度比較大的特性,此項技術(shù)的可行性不高,所以本文只對源程序的一個10×10的小循環(huán)做了循環(huán)展開,不過運算速度卻大大提高.實驗結(jié)果會在4.1節(jié)中給出具體分析.

      4 GPU加速性能實驗研究

      本文中采用了七彩虹 iGame GTX470-GD5 CH版顯卡,其GPU為NVIDIA公司的GTX470型號,核心頻率為607MHz,顯存1280MB;CPU采用Intel Core2 Duo 2.7GHz,內(nèi)存 2GB.編程環(huán)境為Windows下 Visual Stdio 2008(VC++9.0).

      實驗中,為了得到統(tǒng)計性能更好的數(shù)據(jù),我們對每次的實驗數(shù)據(jù)量都進(jìn)行了20次平均.

      4.1 指令混合優(yōu)化實驗

      指令混合前后GPU耗時實驗數(shù)據(jù)如表1所示.從表1中可以看出,塊的大小在性能中起著主要作用.在塊大小比較小的時候,循環(huán)展開對性能的提升基本沒有作用.這是由于,當(dāng)塊大小比較小時,全局存儲器的帶寬處于飽和,性能瓶頸會出現(xiàn)在存儲器的讀寫上,循環(huán)展開對此將失去優(yōu)化意義.而當(dāng)塊大小足夠大時,此時指令混合和數(shù)據(jù)預(yù)取技術(shù)就顯得尤為關(guān)鍵,本例中,僅僅一個10×10的循環(huán)展開就讓性能提高了20%~40%,可見此項技術(shù)的優(yōu)化潛力還是很大的.

      表1 優(yōu)化前后耗時對比

      4.2 GPU加速性能實驗

      本實驗對不同分辨率下(160 dpi×120 dpi,320 dpi×240 dpi,640 dpi×480 dpi)的N幅圖同時處理,分別得到CPU耗時和GPU耗時,測時分辨率為0.1 ms.如表2所示.其中GPU運算耗時是指算法在GPU端的計算時間,不包括前期的數(shù)據(jù)準(zhǔn)備以及數(shù)據(jù)傳輸時間;而總耗時是二者均有的總時間.

      表2 耗時測試結(jié)果 ms

      從表中可以明顯的看出,不論是否計入傳輸時間,獲得的加速比都是很大的.特別是在不計入傳輸時間以及設(shè)備端的初始化等工作時間的情況下,加速比可高達(dá)500左右.需要說明是,本文CPU中的算法是經(jīng)過優(yōu)化處理的,所以得到的加速比的可信度是比較高的.

      分析表2,可以得到如下兩個結(jié)論:

      (1)在數(shù)據(jù)量比較小時,如圖像只有一幅的情況下,加速比較小;相反,在數(shù)據(jù)量比較大的情況下,加速比會大大提高.這也正體現(xiàn)了GPU設(shè)計的初衷,即提高吞吐量,而并不是與CPU拼單一速度.

      (2)Kernel函數(shù)的性能優(yōu)化技術(shù)的有機(jī)結(jié)合對性能的提高有重要意義.從圖中可以看出,當(dāng)數(shù)據(jù)量為160×120×50時,加速比一度提升至600左右.這與kernel函數(shù)中的線程粒度與數(shù)據(jù)預(yù)取的合理平衡有很大關(guān)系.數(shù)據(jù)量的合理性使得每個SM上運行的線程數(shù)量大大提高,這對于整個算法的吞吐量有很大的提升.

      (3)數(shù)據(jù)大到一定數(shù)量時,GPU平均每幀的處理時間會出現(xiàn)波動,甚至下降.這是由CUDA底層指令執(zhí)行流所決定的.GPU中指令是以warp為單位發(fā)射的,而每個warp中有32個thread,當(dāng)數(shù)據(jù)量變化時,thread數(shù)量也會隨之變化,多出一個thread可能就會多一輪warp.所以出現(xiàn)波動是正常可預(yù)測的,這也表明,在實際GPU編程中,需要注意thread數(shù)量,最好為32的整數(shù)倍,這樣可以充分利用硬件資源,減少SM的空載浪費.

      另外,本實驗還有一點需要說明:由于本實驗block的維度設(shè)計與圖像寬度和圖像數(shù)有關(guān),當(dāng)數(shù)據(jù)量增加時,block的維度也會隨之增加,當(dāng)數(shù)據(jù)量增加到一定程度時,會出現(xiàn)超過CUDA目前計算能力的block最大允許維度(65536),例如,數(shù)據(jù)量為320 dpi×240 dpi×275 dpi時,程序無法運行.這也很好的說明了,對kernel采用多種技術(shù)時,互相之間會相互影響,從而限制了彼此能優(yōu)化的最大程度.

      5 結(jié)論

      本文圍繞高速鐵路扣件在線檢測的速度難點進(jìn)行了研究,提出了采用GPU對其中改進(jìn)的模板匹配算法進(jìn)行加速的實時檢測技術(shù),并對其的CUDA實現(xiàn)進(jìn)行了深入分析以及實驗驗證.通過對本算法的GPU加速,可以獲得實時的扣件缺失情況.在不低于200幀/s的高速采樣頻率下,實現(xiàn)了扣件實時在線檢測,達(dá)到了平均每幅圖優(yōu)于0.02 ms的處理速度.在160 dpi×120 dpi圖像分辨率下,一次處理50幀時,GPU的處理速度,相對于CPU計算,從3.996 ms/幀的處理速度提高到了0.022 ms/幀,加速比高達(dá)154.由此可見,GPU強(qiáng)大的計算能力及應(yīng)用前景,GPU的加速技術(shù)不僅對于扣件檢測有應(yīng)用意義,更是為整個高速圖像處理領(lǐng)域提供了重要的參考.

      [1]錢廣春,陶衛(wèi).基于相關(guān)直線法德高速運動目標(biāo)快速探測方法[J].大連交通大學(xué)學(xué)報,2011,32(2):79-82.

      [2]吳恩華.基于圖形處理器(GPU)的通用計算[J].計算機(jī)輔助設(shè)計與圖形學(xué)學(xué)報,2004,16(5):601-612.

      [3]柳彬,王開志,劉興釗,等.利用CUDA實現(xiàn)的基于GPU的SAR成像算法[J].信息技術(shù),2009(11):62-65.

      [4]NIVDIA's Next Generation CUDA Compute Architecture:Fermi,Whitepaper[M].NVIDIA CORPORATION,2009.

      [5]NIVIA CUDA Programming Guide Version 2.0[M].NVIDIA CORPORATION,2008.

      [6]JOAO LUIZ DIHL COMBA,DIETRICH CARLOS A,PAGOT CHRISTIAN A.Computation on GPUs:From a programmable pipeline to an efficient stream processor[J].Revist a de Inform tica Tericae Aplicada,2003,X(2):41-70.

      猜你喜歡
      數(shù)據(jù)量存儲器扣件
      靜態(tài)隨機(jī)存儲器在軌自檢算法
      基于大數(shù)據(jù)量的初至層析成像算法優(yōu)化
      計算Lyapunov指數(shù)的模糊C均值聚類小數(shù)據(jù)量法
      高刷新率不容易顯示器需求與接口標(biāo)準(zhǔn)帶寬
      科隆蛋扣件力學(xué)特性分析
      寬帶信號采集與大數(shù)據(jù)量傳輸系統(tǒng)設(shè)計與研究
      電子制作(2019年13期)2020-01-14 03:15:18
      一種改進(jìn)的LBP特征實現(xiàn)鐵路扣件識別
      非均布荷載下扣件式腳手架的隨機(jī)缺陷穩(wěn)定分析
      諧振式浮軌扣件的安裝工藝
      存儲器——安格爾(墨西哥)▲
      县级市| 虹口区| 红原县| 洛阳市| 连平县| 云梦县| 长沙市| 城市| 平果县| 漳州市| 伊通| 达日县| 若尔盖县| 全南县| 原阳县| 栖霞市| 遂昌县| 黔东| 建平县| 嵊泗县| 射洪县| 伽师县| 康平县| 年辖:市辖区| 盐津县| 合山市| 尚志市| 沈丘县| 孝感市| 友谊县| 尉犁县| 株洲市| 佳木斯市| 盱眙县| 安西县| 宁陵县| 南漳县| 保靖县| 宾川县| 祥云县| 缙云县|