OpenCL優化應用項目

OpenCL優化應用項目

1、計算機視覺相關

基於局部域考察的圖像模糊化算法的加速實現(表面模糊,高斯模糊)圖像模糊化

圖像模糊化算法的特點是根據被考察點的局部域特徵對被考察點的顏色進行調整,由於各被考察點的局部域相對獨立,這類算法比較適合於用GPU進行優化,我們通過OpenCL並行編程,並行處理各圖像點的局部域,能將圖像模糊化的速度提高5倍以上。

基於Haar  Cascades分類器的人臉檢測方法的OpenCL加速實現

用haar 級聯分類器對圖像特徵進行提取的過程就是將圖像分割各成指定尺寸的窗口,對每一個窗口用級聯分類器進行過濾,由於各窗口的過濾相互獨立,這種算法比較合適於用GPU進行優化,我們通過OpenCL並行編程,對人臉檢測中,各個窗口的過濾,積分圖的計算 都進行了並行化,總體上能提高人臉檢測時間5至10倍。

基於紋理匹配的圖像修復算法的加速實現

基於紋理的圖像修復過程涉及兩個步驟,首先是從待修復區域邊界的點集中尋找一個優先級最高的點,然後爲該點在整個圖像區域中進行搜索,找到最佳匹配方塊,這兩個步驟的操作都可以表示成對多個獨立數據的併發操作,比較適合於用GPU進行優化,我們通過OpenCL編程,優化了基於紋理的圖像修復中這兩個步驟,使總體的加速比達到5倍以上。

基於非局部均值的圖像去噪算法的 OpenCL 加速實現

非局部均值算法通過利用數字圖像中大量的冗餘信息,建立待去噪像素點鄰域與搜索區域的像素點鄰域的相似函數,計算搜索區域各像素點與待去噪像素點的相似度權重,然後對搜索區域內的像素點進行加權平均,從而得到去噪點的新的灰度值。該算法在紋理, 邊緣信息的保持,以及去噪效果方面是目前最好的兩種算法之一,  由於非局部算法是從像素點到像素點逐個進行處理的,故其計算複雜度較大,但對於各個被考察像素點來說,對其領域和搜索區域的操作都是獨立的,比較適合GPU加速。我們通過OpenCL編程,對該算法實現了30倍以上的加速比。

三維人體運動視覺重建與跟蹤系統的GPU實現

基於視覺信息的三維人體姿態跟蹤和三維人體表麪點雲重建,是計算機視覺領域的重要研究方向,相關技術在虛擬現實、電影動畫、智能監控、高級人機交互、體育和醫療等領域具有廣闊的應用前景。人體運動三維重建與跟蹤的主要目標是從圖像和視頻信息中恢復和估計以參數表示的人體姿態,求解真實人體在三維世界座標系中的位置和姿態參數。由於問題的複雜度較高,計算量較大,一直以來都是計算機視覺領域的一個挑戰性難題。目前,隨着計算機硬件系統的不斷升級和計算機視覺理論的繼續完善,建立應用級的人體姿態重建系統已成爲極具商業前景的研究項目,而GPU計算在計算機視覺中的普及應用爲構建實時、快速的人體姿態重建系統提供了契機。

基於OpenCL的Adaboost並行人臉檢測算法

Boosting是一個將一個弱學習算法提升爲強學習算法的過程,主要應用在機器學習領域中,比如運動目標檢測和識別等, Adaboost算法(Adaptive Boosting)是最具代表性的算法之一。Adaboost算法及與之相關的積分圖運算過程具有很高的並行性。在基於CPU的算法中,Haar小波基函數的特徵值計算是串行求值的過程,與之對應的窗口掃描過程也是串行的。利用GPU的高度並行計算特性,我們可以將Haar小波基特徵值計算過程以及窗口掃描過程並行化,從而大大加快算法運行速度。

基於OpenCL的SIFT算法優化設計

在計算機視覺領域,圖像匹配是解決許多具有挑戰性難題的基石,例如: 物體、場景識別,從多幅圖像中恢復3維結構,立體匹配以及動作追蹤。 SIFT (Scale-invariant feature transform,尺度不變特徵轉換) 是一種很好的用來偵測和描述圖象局部特徵的算法,它通過從訓練圖象集中提取大量的特徵點,從而獲得識別的圖象的大量信息,最大程度上減小遮擋和噪聲對檢測圖象的影響。我們結合OpenCV提供的API和OpenCL編程,提高了SIFT的執行性能,尤其對高清圖片的處理相對CPU更加從容。

圖像重採樣算法的GPU優化

圖像重採樣是利用插值手段放大縮小圖像,達到目標分辨率。它是圖像處理中的基本操作。爲了保持圖像的準確信息,很多不同的插值算法被開發出來。作爲一種基本操作,重採樣具有很重要的應用場景和市場基礎。我們選用開源的H.264/SVC的參考軟件模型中的重採樣算法作爲優化依據,通過任務並行和數據並行來優化亞像素的插值濾波器運算。

視頻圖像去隔行算法GPU優化

隔行掃描是視頻採集中一種常見的手段,它通常把每幀圖像分爲兩場進行隔行採集,這樣可以在陰極射線管爲基礎的顯示器上很好的恢復運動圖像。然而,在數字圖像領域則會造成隔行失真。因此,很多不同的視頻去隔行算法被開發出來,其有助於提高人們對隔行視頻的體驗效果,在視頻處理領域有重要作用。我們選用開源的VLC播放器的視頻去隔行算法作爲優化依據,通過任務並行和數據並行來優化其各種運算。

基於GPU加速的3D超聲圖像去噪

三維醫學圖像在現在的醫療診斷中發揮着很大的作用,但是由於3D超聲成像機制使得採集到的3D超聲圖像都存在着相干斑噪聲,影響了醫療診斷,目前已經有一些相應的去噪算法,但是由於數據量太大處理速度很慢,GPU並行計算的出現使得3D超聲圖像的實時處理成爲了可能。我們在3D SRAD算法的基礎上提出了基於GPU的並行加速算法,該算法對串行算法進行了細化和分解,利用GPU的並行計算能力,能大大提高計算速度。

基於GPU的HARRIS角點快速提取的研究與實現

角點檢測在目標檢測跟蹤、物體識別、圖像配準、3D重建、立體視覺等方面都有着重要的應用。Harris算法就是通過分析圖像局部灰度值實現角點提取的一種重要算法,但是該算法利用高斯濾波,有大量卷積和鄰域操作,導致運算量較大,實時處理能力較差。結合GPU體系結構特點,我們研究了一種基於GPU實現Harris角點檢測的並行算法以達到角點的快速提取,並對提取出的角點進行了角點的匹配,可以利用匹配的角點完成對非接觸物體的實時測量和感知,爲物聯網在物物感知上提供了一種新的方法和手段。如機場、車站旅客的行李體積計算、高速公路車輛超載的判定等等。這種基於harris角點檢測的圖像匹配技術對非接觸測量有着廣泛的實際應用前景。

基於GPU的圖像小波變換的研究和實現

通過小波分解可以減少圖像分辨率,降低圖像維度,在降低運算量的同時還可以保持圖像特徵信息,是很多圖像處理應用的基礎。但由於其運算複雜,在CPU上的串行實現佔用CPU的運算時間長,嚴重影響了計算效率,涉及到大規模數據處理時更是難於滿足實時性要求。結合GPU的結構體系特點,我們研究了小波變換的算法,並將其改造爲適於並行計算的矩陣表達形式,實現了一種基於GPU的圖像小波變換並行處理,它能有效提升圖像分解效率,基本滿足大規模數據圖像處理的實時性要求。

基於OpenCL的三維模型凸包生成算法

在計算機軟件以及電腦遊戲中,三維凸包的計算常見於三維模型的碰撞檢測、體積近似計算、三維空間分析、幾何相似度計算、三維模型分割與分塊等諸多應用。對於複雜物體,如何快速精確的構造三維物體的凸包一直是技術難點。爲了三維凸包的快速生成和實時計算,我們提出一種基於GPU的三維凸包快速並行生成算法。該算法採用了基於OpenCL 架構的局部內存讀寫、流數據縮減等加速方法,並通過GPU實現了map、vector、queue等數據結構,更充分地利用了GPU的並行處理能力。實驗結果表明,與基於CPU的算法相比,該算法可以精確計算三維凸包,並且可以並且獲得13-16倍的計算速度提升。

基於廣義勢力場的3D骨架抽取算法的GPU OpenCL實現

3D骨架在很多領域內有着重要的應用,如碰撞檢測、虛擬導航、科學分析、模式識別、模型渲染、形狀分析、表面重建、動作規劃等。在進行骨架抽取時,計算量和準確度是解決問題的關鍵。有着顯著的魯棒性和靈活性的基於廣義勢力場的曲線骨架抽取算法卻因爲面臨着沉重的計算負荷而無法突出其優勢。它是通過模擬物理學中的勢力場,尋找3D物體上的勢力平衡的點,形成其一維表示—曲線骨架,因此需要計算每個內部點所受的勢力總和,計算量大。但是該算法本身具有高度可並行性,若能挖掘其運算能力,提高性能,可得到進一步的廣泛應用。

通過分析基於廣義勢力場的3D骨架抽取算法的並行結構,給出了其CPU和GPU的OpenCL的實現。

2、經典數學問題並行優化

B樣條曲線幾何插值算法的GPU實現

B樣條在計算機圖形學中有非常廣泛的應用,特別是計算機輔助設計、製造和工程(CAD,CAM,CAE),也是很多業界廣泛採用的標準的一部分,例如IGES, STEP,和PHIGS,並且是許多標準計算機圖形包的一部分。在實際應用中往往要建立高精度模型,此時數據量和計算量都非常大。幾何插值算法由Maekawa等人在2007年時提出,該算法通過尋找插值點到當前生成的B樣條參數曲線的最近點,以此爲基礎迭代調整控制點直到插值點與生成曲線之間的距離達到精度要求。該算法既能用於局部調整,也能用於整條曲線的插值,且具有一定的並行性。

通過分析幾何插值算法的並行結構,設計適用於OpenCL框架的計算流程,給出了B樣條曲線幾何插值算法的GPU實現。

大型非負矩陣分解算法(NMF)的OpenCL加速實現

近些年由於社區網絡服務(如微博,人人,甚至是每個網站對相關業務對象附帶的推薦系統)需求的激增以及應用範圍的不斷擴大,網絡聚類算法的不斷完善與改進成爲趨勢。人們需要響應更迅速、精度更準確的聚類管理。非負矩陣分解算法(NMF)是解決網絡聚類問題的十分有效的辦法,對大型網絡進行聚類劃分的問題可歸結爲對大型鄰接矩陣進行NMF分解,且NMF分解過程涉及很多的矩陣運算和數組歸約操作, 可利用GPU給出速度上令人滿意的結果。我們通過OpenCL編程,對NMF分解過程中的矩陣乘法,點積,數組求和,矩陣模塊度計算等步驟都進行了並行化,使整體NMF過程能達到30倍以上的加速比,我們的加速方法還特別支持對稀疏格式存儲矩陣(CSR)的NMF分解。由於該算法在網絡上有很大的應用價值,其響應速度和性能是我們應該優先考慮的.

基於OpenCL的自適應快速傅里葉變換(FFT)算法的實現與優化

快速傅里葉變換(Fast Fourier Transform, FFT),是離散傅里葉變換(Discrete Fourier Transform, DFT)的快速算法。採用快速算法能使計算機計算離散傅里葉變換所需要的乘法冊數大爲減少,特別是被變換的抽樣點數N越多,FFT算法計算量的節省就越明顯。作爲二十世紀科學和工程界最具影響力的十大算法之一,FFT在數字濾波、計算大整數乘法、求解偏微分方程和信號分解等領域有着廣泛的應用。

由於FFT算法本身的複雜度,使得在不同的輸入規模下,不同的分解策略除了浮點運算次數不一樣外,其訪存結構也截然不同,因而會導致截然不同的性能。根據GPU的架構特性,Stockham自排序算法沒有耗時的位排序操作,適合在GPU上的實現。

基於GPU的稀疏矩陣LU分解

稀疏矩陣LU分解是線性代數中的一項基本運算,在電路仿真、結構力學、經濟建模等許多領域有着廣泛的應用。這一步驟是當前SPICE (Simulation Program with Integrated Circuit Emphasis)電路仿真器的主要性能瓶頸。稀疏矩陣LU分解的基本算法是G/P left-looking算法。該算法較強的數據依賴性使得它的並行化十分困難。同時,數據間的高依賴性還造成並行G/P left-looking算法只能高效運行在共享內存的計算設備上。但由於共享內存的CPU核數通常很有限(大多數商用CPU都不超過6核),稀疏矩陣LU分解在多核CPU上性能無法進一步提升。GPU具有共享內存的衆核結構,且擁有更高的內存帶寬,爲該問題提供了一個可能的解決方案。

大型常微分方程系統的Parareal算法GPU實現

大型常微分方程在很多學科領域內有着重要的應用,如自動控制、各種電子學裝置的設計、彈道的計算、飛機和導彈飛行的穩定性的研究、化學反應過程穩定性的研究等。在求解大型常微分系統時,計算量是解決問題的關鍵。Parareal算法最初由Lions,Maday和Turinici在2001年提出,它使用粗細兩層時間剖分,在粗網格上進行串行的預估,在細網格上實現並行的校正。該算法可實現的並行化規模大,侷限小,在許多實際應用中都體現了自身的優勢和潛力。

哈密頓迴路問題OpenCL解題程序

基於OpenCL API開發圖論經典問題——哈密頓迴路問題的解題程序。最終程序以一個有向圖作爲輸入,程序在此有向圖中尋找哈密頓迴路,如果找到,則輸出一條找到的哈密頓迴路;如果找不到,則輸出該有向圖不是哈密頓圖。

基於DTW算法和OpenCL的子序列檢測實現

子序列檢測(Subsequence Similarity Search)是許多時間序列數據處理問題中一個重要組成部分。DTW(Dynamic Time Warping)距離在越來越多的研究中被證明是最好的距離度量方式。但傳統DTW距離計算在CPU上的實現是子序列檢測過程中性能上的主要瓶頸。我們提出了一種基於OpenCL和AMD GPU平臺的並行DTW算法實現,得到了在性能上相比於目前最好的CPU實現一到兩個數量級的提高。

基於OpenCL二維Mallat算法並行實現

Mallat在圖像分解與重構的塔式算法啓發下,根據多分辨率理論,提出了小波分解與重構的快速算法,稱爲Mallat算法。我們實現了基於OpenCL並行的二維Mallat算法,並將其應用於圖像融合處理中。

3、數據挖掘與人工智能

基於GPU實現的馬爾可夫決策過程(Markov Decision Process)並行值迭代算法

馬爾可夫決策過程是一個隨機動態系統的最優過程,可以被用來解決包括運籌學、藥物決策的制定、強化學習、經濟學、機器人導航以及遊戲等實際問題。根據馬爾可夫決策過程,我們定義了一個“外出遊玩”的模型,在這個模型中,只要給出了起始地點,模型會自動生成一條最佳的外出遊玩路線。在馬爾可夫決策過程中,策略迭代和值迭代是兩種典型的實現算法。在這裏,我們選擇了用值迭代算法來實現“外出遊玩”模型。爲了能夠凸顯出GPU的加速能力,我們給出了馬爾可夫決策過程值迭代算法的CPU實現和GPU實現。從實驗結果可以得出,運用GPU實現模型比用CPU實現模型在性能上提高了很多。

通過分析馬爾可夫決策過程值迭代算法,結合“外出遊玩”模型,我們給出了基於狀態並行的值迭代算法。通過給出基於CPU的值迭代算法的實現和基於GPU並行值迭代算法的實現,GPU強大的加速能力體現的淋漓盡致。

基於GPU的腦網絡分析算法加速

探索人腦連接模式和腦部病變的科學研究中,對於大腦複雜網絡結構的研究起着至關重要的作用。然而,大規模腦網絡建立和分析的計算量巨大,以致於在此前關於腦網絡的研究中,大部分工作僅停留在以腦區爲單位的粗尺度分析上。這種規模的腦網絡通常包含約100個網絡節點。而以體素爲單位建立的腦網絡,可包含2萬至10萬個節點,因此能夠更精確和細緻地反映出腦網絡的微觀結構。爲了消除大規模網絡分析中的計算瓶頸,我們提出了一種基於AMD GPU的腦體素網絡分析的加速平臺。

基於GPU的並行支撐矢量機排序學習

排序學習在信息檢索等領域發揮着越來越重要的作用, 而通過支撐矢量機的分類方法進行排序也成爲機器學習中的一個研究熱點。支撐矢量機目前已經有比較成熟的串行快速訓練算法, 比如SMO、SVMlight等。 但是, 對於大規模數據挖掘問題, 訓練速度仍然是制約支撐矢量機實際應用的瓶頸。我們提出了基於GPU實現的並行支撐矢量機排序學習的優化方案, 擴展了改進的SMO方法的數據並行特性, 並實現了在ATI Stream SDK平臺上基於OpenCL標準的計算過程。在LETOR排序學習標準數據集上的測試結果表明, 提出的算法具有很好的加速性能。

基於OpenCL和基因表達式的K-means聚類算法

k均值聚類是最著名的劃分聚類算法,由於簡潔和效率使得他成爲所有聚類算法中最廣泛使用的。但由於傳統的k均值聚類算法受到初始k個初始聚類中心的限制,爲此有人提出並實現了基於基因表達式編程的自動聚類算法(GEP-Cluster),解決了未知聚類個數的問題。然而,GEP-Cluster算法在大數據情況下的收斂速度相對較慢,而該算法的計算適應度函數部分存在着可並行性。爲此,我們基於OpenCL開放運算語言,對適應值計算並行化,進而提出一種基於OpenCL和基因表達式編程的聚類算法(OCLGEP-Cluster)。經過實驗表明,OCLGEP-Cluster算法對數據規模較大的情況下,算法性能得到較好的提高。

基於OpenCL的並行人工蜂羣算法

人工蜂羣算法(Artificial Bee Colony)是基於蜜蜂羣體覓食行爲而提出的一種相對比較新的羣體智能算法。該算法模擬了真實世界蜜蜂羣體採蜜行爲,蜜蜂根據各自的分工進行不同的採蜜活動。在採蜜過程中,由於獨有的角色轉換機制、以及在自組織模式下實現信息的交流和共享,從而使蜜蜂尋找到最優蜜源。人工蜂羣算法具有天然的並行性,我們完成了基於GPU加速的人工蜂羣算法並行程序設計和優化,通過採用OpenCL並行編程模型,使得算法得到了很好的加速效果。

基於Ferns的增強現實並行跟蹤算法

移動增強現實是虛擬現實在移動通信領域的應用,跟蹤註冊是增強現實系統的核心技術,而基於自然特徵的跟蹤註冊是目前的研究熱點。Random ferns(隨機厥)是一種半樸素貝葉斯分類器,通過ferns分類器訓練,可以實現穩定且較快速的實時跟蹤註冊。通過GPU加速可以大大提升訓練以及跟蹤註冊的速度,克服速度瓶頸,使得這項技術可以得到更爲廣泛的應用,例如移動設備。

大規模圖劃分算法GPU加速實現

大規模網絡劃分算法是指一類通過給定圖的信息,通過分析這些點的內在聯繫,從網絡中抽象出一些“社區”的算法。我們選擇了Newman在他2011年的論文上提到的針對高重疊性網絡的劃分算法,致力於利用GPU高併發度的特性,對原有的圖劃分算法進行加速。我們通過分析算法中各層並行度以及剖析算法加速的主要瓶頸,設計出該算法的Opencl-GPU版本。我們在測試中達到了平均10倍的加速比,最高可到20倍。

4、其他

GPU加速的函數圖像繪製器

利用OpenCL進行GPU上的並行牛頓迭代法,對任意f(x, y)=0方程繪製圖像。可以支持各種函數、解析幾何方程圖像的繪製。其速度比同等原理的CPU程序快幾十倍(使用AMD HD7970顯卡與最新四核CPU進行比較),可以極快地繪製非常複雜美麗的函數圖像。

基於GPU的軟件GPS接收機

軟件GPS接收機的快速捕獲算法需要大量的FFT操作以及可並行化運算,採用GPU單元可以大大提高軟件接收機的工作效率。

雷達模糊函數計算的GPU加速

雷達模糊函數在雷達系統設計中是非常有力的分析工具,可以評估雷達發射信號的距離、多普勒分辨性能。對於高分辨率合成孔徑雷達的信號選擇,系統分辨率要求信號具有大時寬和大帶寬,這樣在計算模糊函數時存在計算量大、耗時長的問題,採用普通CPU計算難以滿足實時信號處理的需求。從雷達模糊函數的特點出發,其輸出形式爲二維矩陣,各點計算時具有獨立性,符合並行計算中的SIMD(單指令多數據)模型,因此非常適合採用並行方式計算實現。採用基於AMD平臺HD7770顯卡GPU加速的計算方法,得到了約257倍加速比,大大提高了計算效率,爲高分辨率探測雷達波形設計提供了良好的計算支撐。

歸一化植被指數(NDVI)算法的並行化實現

NDVI是目前應用最廣泛的一種植被指數。植被指數是遙感監測地面植物生長和分佈的一種方法。當遙感器測量地面反射光譜時,不僅測得地面植物的反射光譜,還測得土壤的反射光譜。當光照射在植物上時,近紅外波段的光大部分被植物反射回來,可見光波段的光則大部分被植物吸收,通過對近紅外和紅波段反射率的線性或非線性組合,可以消除土壤光譜的影響,得到的特徵指數稱爲植被指數。我們基於APU/GPU異構架構實現了NDVI算法。

轉自:http://hc.csdn.net/resources/resource_detail?id=37

發佈了17 篇原創文章 · 獲贊 5 · 訪問量 10萬+
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章