李杰 劉灝 馬恩財 劉明鋒
摘要:圖形處理器(Graphic Processing Unit),簡稱GPU,是針對多線程程序?qū)ν掏铝窟M行優(yōu)化的處理器,在硬件設計上屬于眾核架構,非常適合于大規(guī)模并行計算任務。JPEG圖像壓縮作為計算密集型的矩陣數(shù)據(jù)運算,用GPU技術對JPEG算法進行實現(xiàn),能充分發(fā)揮GPU的并行處理能力,極大提高編碼效率。
關鍵詞:GPU;CUDA;JPEG
中圖分類號:TP391 文獻標識碼:A 文章編號:1009-3044(2014)26-6158-03
1 概述
在計算機系統(tǒng)中,GPU起初用于計算機圖像的加速,為了適應圖形圖像應用中并行度高且計算量大的需要,優(yōu)化硬件架構,相比CPU具有更多的流水線和內(nèi)存吞吐量,使其非常適合于大規(guī)模并行計算[1]。CUDA 是NVIDIA推出的統(tǒng)一計算設備架構,是一種將GPU作為數(shù)據(jù)并行計算設備的軟硬件體系,CUDA采用類C語言編程,掌握并行算法就可以控制GPU進行并行運算開發(fā)[2]。
2 CUDA編程方法
CUDA包含CUDA指令集架構以及GPU內(nèi)部的并行計算引擎,使GPU能夠解決復雜的計算問題[3][4]。GPU相當于擁有成千上百個核的CPU,對于并行計算任務,通過CUDA將相同計算邏輯的任務封裝成kernel,然后控制所有的核同時運行kernel,就能展現(xiàn)GPU的高性能多任務并行處理能力。
4 結束語
本文用1024*1024大小的圖像對程序進行測試。硬件平臺:GPU為NVIDIA GT630;CPU為intel Q9550。軟件平臺:VS2008、CUDA3.2版驅(qū)動和工具開發(fā)包。運算時間測試結果如表1所示。可以看出,JPEG壓縮算法在CPU和GPU兩種不同平臺的實現(xiàn)上速度差別非常明顯,GPU運算占有極大的速度優(yōu)勢;同時由于圖像文件較大,主機和GPU設備的數(shù)據(jù)傳輸占用時間較多,相對拖后了GPU帶來的并行運算速度優(yōu)勢。
在序列圖像持續(xù)產(chǎn)生的環(huán)境中,只要在兩幀圖像的間隔內(nèi)完成數(shù)據(jù)傳輸和壓縮過程,就可顯著降低序列圖像的數(shù)據(jù)流量,當壓縮數(shù)據(jù)流小于硬盤寫入帶寬時,就可實現(xiàn)圖像數(shù)據(jù)流的無失幀寫入硬盤。由此可見,JPEG算法在GPU平臺進行實現(xiàn),可以應用在高速圖像采集存儲領域。
參考文獻:
[1] 王澤寰.GPU并行計算編程技術介紹[J].科研信息化技術與應用,2013(4):81-87.
[2] 張舒.GPU高性能運算之CUDA[M].北京:中國水利水電出版社,2009.
[3] 桑德斯.GPU高性能編程CUDA實戰(zhàn)[M].北京:機械工業(yè)出版社,2011.
[4] 鄧仰東.NVIDIA CUDA超大規(guī)模并行程序設計訓練課程[Z].清華大學,2008:10-200.
[5] 程思遠.CUDA并行數(shù)據(jù)壓縮技術研究[J].電腦知識與技術,2011(5):1035-1036.
[6] 岡薩雷斯.數(shù)字圖像處理[M].北京:電子工業(yè)出版社,2007.
[7] 吳嘉慧.JPEG圖像解碼方案[J].現(xiàn)代計算機,2007(3):49-53.
[8] 郭靜.基于CUDA的快速圖像壓縮[J].計算機工程與設計,2010(14):3302-3304.