GRAFIKUS PROCESSZOROK ALKALMAZÁSA …11] Sudipta N. Sinha, Jan-Michael Frahm, Marc Pollefeys, and...

8
GRAFIKUS PROCESSZOROK ALKALMAZÁSA KÉPFELDOLGOZÁSI FELADATOKRA Simon Pál PhD hallgató Miskolci Egyetem Hatvany József Informatikai Tudományok Doktori Iskola ABSTRACT The aim of this paper is the presentation of the graphical processors and the image processing tasks which can be executed with them. Nowadays graphical processors not only used to computation of computer graphics, but to general computational tasks. Using it strongly parallel task their executive abilities the execution time of the computational tasks significantly reducible. The relatively plain operations to be made on the big data set are makes it suitable for the execution of image processing algorithms because of his intense parallel. ÖSSZEFOGLALÓ Ennek a cikknek a tárgya a grafikus processzorok és azokkal végrehajtható képfeldolgozási feladatoknak a bemutatása. Napjainkban a grafikus processzorokat nemcsak megjelenítési feladatok számításaihoz alkalmazzák, hanem általános számítási feladatokhoz is. Kihasználva az erősen párhuzamos feladat végrehajtó képességeiket a számítási feladatok végrehajtási ideje jelentősen csökkenthető. A nagy adathalmazon végzendő viszonylag egyszerű műveletek nagyfokú párhuzamosíthatósága miatt képfeldolgozó algoritmusok végrehajtására is alkalmasak. BEVEZETÉS Napjaink grafikus kártyái már nem csak megjelenítésre használhatóak. A rajtuk található feladatspecifikus processzor, a GPU képes fix és lebegőpontos számítások elvégzésére és a megjelenítési követelmények miatt erősen párhuzamos architektúrájú. A grafikai algoritmusok kifinomultsága miatt, ezeket a hardver eszközöket felhasználók által programozhatóvá tették. Mindez ahhoz vezetett, hogy a grafikus processzorokat általános számítási műveletek végrehajtására is használni kezdték. Mivel a nagyfokú párhuzamossága miatt a számítási teljesítménye jóval meghaladja a CPU számítási teljesítményét, így általános célú használata gyorsan elterjedt. Később ezt megkönnyítendő különféle fejlesztőkörnyezeteket és függvénykönyvtárakat kezdtek fejleszteni az általános számítási feladatok implementálására. Jelenleg bizonyos feladatokat a grafikus processzorok képesek akár 150-szer gyorsabban is elvégezni a hagyományos processzorokhoz képest, a nagy probléma kisebb feladatokra osztásával, majd az eredmények későbbi egyesítésével. Ezen képesség miatt nagyon alkalmasak képfeldolgozási algoritmusok végrehajtására. 84

Transcript of GRAFIKUS PROCESSZOROK ALKALMAZÁSA …11] Sudipta N. Sinha, Jan-Michael Frahm, Marc Pollefeys, and...

Page 1: GRAFIKUS PROCESSZOROK ALKALMAZÁSA …11] Sudipta N. Sinha, Jan-Michael Frahm, Marc Pollefeys, and Yakup Genc: ... STRUCTURAL IMPROVEMENTS OF THE OPENRTM ROBOT MIDDLEWARE 72 …

GRAFIKUS PROCESSZOROK ALKALMAZÁSA KÉPFELDOLGOZÁSI FELADATOKRA

Simon PálPhD hallgató

Miskolci Egyetem Hatvany József Informatikai Tudományok Doktori Iskola

ABSTRACT

The aim of this paper is the presentation of the graphical processors and the image processing tasks which can be executed with them. Nowadays graphical processors not only used to computation of computer graphics, but to general computational tasks. Using it strongly parallel task their executive abilities the execution time of the computational tasks significantly reducible. The relatively plain operations to be made on the big data set are makes it suitable for the execution of image processing algorithms because of his intense parallel.

ÖSSZEFOGLALÓ

Ennek a cikknek a tárgya a grafikus processzorok és azokkal végrehajtható képfeldolgozási feladatoknak a bemutatása. Napjainkban a grafikus processzorokat nemcsak megjelenítési feladatok számításaihoz alkalmazzák, hanem általános számítási feladatokhoz is. Kihasználva az erősen párhuzamos feladat végrehajtó képességeiket a számítási feladatok végrehajtási ideje jelentősen csökkenthető. A nagy adathalmazon végzendő viszonylag egyszerű műveletek nagyfokú párhuzamosíthatósága miatt képfeldolgozó algoritmusok végrehajtására is alkalmasak.

BEVEZETÉS

Napjaink grafikus kártyái már nem csak megjelenítésre használhatóak. A rajtuk található feladatspecifikus processzor, a GPU képes fix és lebegőpontos számítások elvégzésére és a megjelenítési követelmények miatt erősen párhuzamos architektúrájú. A grafikai algoritmusok kifinomultsága miatt, ezeket a hardver eszközöket felhasználók által programozhatóvá tették. Mindez ahhoz vezetett, hogy a grafikus processzorokat általános számítási műveletek végrehajtására is használni kezdték. Mivel a nagyfokú párhuzamossága miatt a számítási teljesítménye jóval meghaladja a CPU számítási teljesítményét, így általános célú használata gyorsan elterjedt. Később ezt megkönnyítendő különféle fejlesztőkörnyezeteket és függvénykönyvtárakat kezdtek fejleszteni az általános számítási feladatok implementálására.

Jelenleg bizonyos feladatokat a grafikus processzorok képesek akár 150-szer gyorsabban is elvégezni a hagyományos processzorokhoz képest, a nagy probléma kisebb feladatokra osztásával, majd az eredmények későbbi egyesítésével. Ezen képesség miatt nagyon alkalmasak képfeldolgozási algoritmusok végrehajtására.

84

Page 2: GRAFIKUS PROCESSZOROK ALKALMAZÁSA …11] Sudipta N. Sinha, Jan-Michael Frahm, Marc Pollefeys, and Yakup Genc: ... STRUCTURAL IMPROVEMENTS OF THE OPENRTM ROBOT MIDDLEWARE 72 …

GRAFIKUS PROCESSZOR

A GPU architektúrájának köszönhetően erősen párhuzamos műveletvégzésre alkalmas, emellett nagy és gyorsan elérhető gyorsítótárat is tartalmaz. Az összetett 3D-s alakzatok megjelenítésére lettek kifejlesztve és emiatt az utasítás készlete jóval kisebb mint egy CPU-é. De emiatt a specializáltság miatt lehet elérni azt a nagy teljesítményt.

A GPU előnyös tulajdonságai

1. Nagymértékű párhuzamos lebegőpontos számításA jelenlegi GPUkban több mint 400 lebegőpontos számításra képes processzor

található, így számítási teljesítménye többszörösen nagyobb mint amire a CPU képes [1]. A jelenlegi Tesla GPU dupla pontosságú lebegőpontos számítási sebessége 515 Gflop [2]. Ezt a számítási sebbegéset a jelenlegi CPU-k meg sem közelítik.

2. Nagy memória sávszélességA GPU a belső memóriáját gyorsabban tudja elérni, mint a CPU a

rendszermemóriát. A GPU belső memóriája 128MB-tól akár 6GB-ig is terjedhet és a sávszélessége akár 144 GB/sec is lehet.

3. Multi-GPUs számításEgy számítógépen belül akár több grafikus kártyát is lehet alkalmazni, így a

rendszer számítási teljesítménye még inkább megnövelhető.A GPU-k architektúráját folyamatosan fejlesztik és nem csak a számítási

teljesítmény növelése céljából, hanem a könnyebb programozhatóság érdekében is. A kezdeti szigorúan feladat-párhuzamos működést támogató architektúrát leváltotta az adat-párhuzamos működési architektúra [3]. Napjainkban a grafikus kártyákat gyártó AMD és NVIDIA egységesített shader architektúrájú GPU-kat fejleszt.

CPU vagy GPU

A CPU-t és a GPU-t más céllal fejlesztik, ebből kifolyólag más-más feladatokat képesek hatékonyan végrehajtani. A CPU a számítógép központi egységeként sok folyamat és szál kezelését végzi hatékonyan. A szálak közötti kontextus váltásokra és az egyes szálak szekvenciális végrehajtására tervezték. Ezzel szemben a GPU-t egyetlen folyamat szálainak párhuzamos végrehajtásra tervezték. Emiatt jól lehet alkalmazni olyan esetekben, ahol nagy adathalmazon kell műveteket végrehajtani és az egyes adatok között minimális a függőség.

GPU-K PROGRAMOZÁSA ÁLTALÁNOS CÉLLAL

A GPU-k programozása szinte tetszőleges programozási nyelven történhet, csak a megfelelő függvénykönyvtárakat kell használni. Több ilyen függvénykönyvtár használata is elterjedt.

85

Page 3: GRAFIKUS PROCESSZOROK ALKALMAZÁSA …11] Sudipta N. Sinha, Jan-Michael Frahm, Marc Pollefeys, and Yakup Genc: ... STRUCTURAL IMPROVEMENTS OF THE OPENRTM ROBOT MIDDLEWARE 72 …

CUDA Toolkit

A Compute Unified Device Architecture, az nVidia párhuzamos programozási rendszere, melynek segítségével az nVidia grafikus kártyáit lehet programozni.

OpenCL

Az Open Computing Language, egy olyan standard, melynek segítségével, párhuzamosan programozhatók heterogén rendszerek. A heterogenitás ebben az esetben azt jelenti, hogy ugyanaz a kód képes módosítás nélkül futni bármelyik gyártó GPU-ján vagy CPUn.

GpuCV

A egy nyílt forráskódú GPU-ra implementált képfeldolgozó Computer Vision függvénykönyvtár [4]. A benne található függvények nagyon hasonlóak az OpenCV függvénykönyvtár függvényeihez. Néhány művelet alkalmazása során tapasztalt sebesség növekedést mutat az 1. táblázat.

1. táblázat Műlelet végrehajtási idők összehasonlítása OpenCV-t és GpuCV-t használva 1024x1024 felbontású képen. Használt hardver: Pentium 4 CPU, 1GB RAM,

GeForce 7800 GTX GPU [4]

OpenCV GpuCV

3x3 erózió 24 ms 3,0 ms

5x5 erózió 31 ms 8,5 ms

RGB to XYZ 11 ms 0,6 ms

RGB to HSV 18 ms 1,7 ms

Binary threshold 1,2 ms 0,7 ms

KÉPFELDOLGOZÁS GPU SEGÍTSÉGÉVEL

A GPU-k a párhuzamos feladat végrehajtásuk miatt alkalmasak képfeldolgozó eljárások végrehajtásához. A leggyakoribb művelet a konvolúció, amelyet minden képpontra végre kell hajtani így a nagymértékű párhuzamosítás jelentősen megnöveli a végrehajtás gyorsaságát. Konvolúciót alkalmazó algoritmus a Canny éldetektáló algoritmus, amit jól lehet GPU-ra implementálni [5]. Hasonlóan jó példa a képpontokra alkalmazott transzformációs függvény a Hough-transzformáció él [6] és kör [7] detektálásra.

A GPU-k gyors memória elérését kihasználva mapping algoritmusokat lehet implementálni. Egy mapping algoritmust használó kép szűrő eljárást bemutató tanulmány szerint [8] jelentős sebesség növekedés érhető el a GPU-k használatával (2.táblázat).

86

Page 4: GRAFIKUS PROCESSZOROK ALKALMAZÁSA …11] Sudipta N. Sinha, Jan-Michael Frahm, Marc Pollefeys, and Yakup Genc: ... STRUCTURAL IMPROVEMENTS OF THE OPENRTM ROBOT MIDDLEWARE 72 …

2. táblázat A sebességnövekedés és a percenkénti képek száma (FPS) a Tesla C1060 és Xeon Quad Core (2,66 GHz) processzorokat használva, 9x9-es szűrőablakot alkalmazva

különböző méretű képeken. [8]

512x512 1024x1024 2048x2048 4096x4096

FPS (Xeon) 4,58 1,01 0,19 0,005

FPS (Tesla) 306,55 97,05 26,19 0,66

sebességnövekedés 66,95 89,11 135,62 145,88

Összetett képfeldolgozó eljárásokat is implementáltak már GPU-ra, mint az orvosdiagnosztikai képfeldolgozás során használható kép javítási és objektum elkülönítési eljárások [9]. De szegmentáláson kívül a képen található objektumok felismerésére [10] és objektumok sajátosságainak a keresésére [11] is készült algoritmus.

Valós időben történő alkalmazásra a jó példa a szem lehunyásának a detektálása [12]. Hasonlóan komplex képfeldolgozó algoritmus készült kép szűrésére genetikus algoritmust felhasználva [13] vagy az élkiemelésre Russo and Ramponi által elkészített [14] FIRE (Fuzzy Interference Ruled by Else-Action) eljárás. Ennél az eljárásnál is több mint 100 szoros sebesség növekedés lehetett elérni a GPU használatával (3. táblázat). A teszteléshez használt processzor AMD Athlon Fx-55 2,6GHz-es órajellel, a rendszer memória 2GB, a GPU NVIDIA 8800 BFG Ultra 768MB memóriával.

3. táblázat A feldolgozás idejének alakulása CPU és GPU felhasználásával [14]

320x240 kép

76800 pixel

640x480 kép

307200 pixel

960x720 kép

691200 pixel

1280x960 kép

1228800 pixel

1280x1024 kép

1310720 pixel

CPU 0,73 2,86 6,6 11,5 12,3

GPU 0,006 0,024 0,052 0,091 0,098

Sebesség különbség

121X 119X 126X 126X 125X

ÖSSZEFOGLALÁS

A grafikus processzorok alkalmazása képfeldolgozási algoritmusok használatához általánossá válhat. Leginkább a valós időben történő feldolgozási feladatoknál nyújthatnak nagy segítséget. A grafikus processzorok fejlődésével lehetőség válhat a nagy felbontású képek másodperc tört része alatt történő feldolgozására, elemzésére. Ezzel új távlatokat nyithatnak a folyamatok szabályzása, vezérlése valamint a robotika területén.

87

Page 5: GRAFIKUS PROCESSZOROK ALKALMAZÁSA …11] Sudipta N. Sinha, Jan-Michael Frahm, Marc Pollefeys, and Yakup Genc: ... STRUCTURAL IMPROVEMENTS OF THE OPENRTM ROBOT MIDDLEWARE 72 …

KÖSZÖNETNYILVÁNÍTÁS

A bemutatott kutatómunka a TÁMOP-4.2.1.B-10/2/KONV-2010-0001 jelű projekt részeként az Európai Unió támogatásával, az Európai Szociális Alap társfinanszírozásával valósult meg.

IRODALOM

[1] NVIDIA Corporation: NVIDIA CUDA compute unified device architecture programming guide, Version 2.0, 6/7/2008, http://developer.nvidia.com/cuda, [Megtekintve 2011. November 2.]

[2] http://www.nvidia.com/object/personal-supercomputing.html, [Megtekintve 2011 November 2.]

[3] Owens, J., Houston, M., Luebke, D., Green, S., Stone, J., Phillips, J.: GPU Computing, Proceedings of the IEEE 96(5), 879–899, 2008

[4] Yannick Allusse, Patrick Horain, Ankit Agarwal, Cindula Saipriyadarshan: GpuCV: A GPU-accelerated framework for Image Processing and Computer Vision, Lecture Notes in Computer Science, Volume 5359/2008, 430-439

[5] Y. Luo and R. Duraiswami: Canny edge detection on NVIDIA CUDA, Computer Vision and Patern Recognation Workschops, 2008. CVPR Workschops 2008. IEEE Computer Society Conference on, 23-28 June 2008 pp 1-8.

[6] James Fung, Steve Mann, and Chris Aimone: OpenVIDIA: Parallel GPU computer vision, Proceedings of the ACM Multimedia 2005, Singapore, Nov. 6-11 2005, pp. 849–852.

[7] M. Ujaldn, A. Ruiz, and N. Guil: On the computation of the circle hough transform by a GPU rasterizer, Pattern Recognition Letters, vol. 29, no. 3, pp. 309– 318, 2008.

[8] Richard Membarth, Hritam Dutta, Frank Hannig, and Jürgen Teich : Efficient Mapping of Streaming Applications for Image Processing on Graphics Cards, Transactions on High-Performance Embedded Architectures and Compilers (Transactions on HiPEAC), 2011

[9] L. Pan, L. Gu and J. Xu: Implementation of medical image segmention in CUDA, Technology and Applications in Biomedicine, 2008. ITAB 2008. International Conference on, 30-31 May 2008 pp. 82- 85.

[10] Hicham Ghorayeb, Bruno Steux, and Claude Laurgeau: Boosted algorithms for visual object detection on graphics processing units, Lecture Notes in Computer Science, ACCV 2006, vol. 3852/2006, pp. 254–263.

[11] Sudipta N. Sinha, Jan-Michael Frahm, Marc Pollefeys, and Yakup Genc: Feature tracking and matching in video using programmable graphics hardware, Machine Vision and Applications, 2007.

[12] Lalonde, Byrns, Gagnon, Teasdale, and Laurendeau: Real-time eye blink detection with gpu-based sift tracking, CRV, vol. 00, pp. 481–487, 2007.

[13] Simon Harding: Evolution of image filters on graphics processor units using Cartesian Genetic Programming, IEEE Congress on Evolutionary Computation 2008: 1921-1928.

88

Page 6: GRAFIKUS PROCESSZOROK ALKALMAZÁSA …11] Sudipta N. Sinha, Jan-Michael Frahm, Marc Pollefeys, and Yakup Genc: ... STRUCTURAL IMPROVEMENTS OF THE OPENRTM ROBOT MIDDLEWARE 72 …

[14] R. H. Luke, D. T. Anderson, J. M. Keller, S. Coupland: Fuzzy Logic-Based Image Processing Using Graphics Processor Units, IFSA/EUSFLAT Conf. 2009: pp 288-293.

89

Page 7: GRAFIKUS PROCESSZOROK ALKALMAZÁSA …11] Sudipta N. Sinha, Jan-Michael Frahm, Marc Pollefeys, and Yakup Genc: ... STRUCTURAL IMPROVEMENTS OF THE OPENRTM ROBOT MIDDLEWARE 72 …

TARTALOMJEGYZÉK Antal Dániel

EJTÉSI TESZT EGYSZER�SÍTETT MODELLEZÉSE A TERVEZÉS FÁZISÁBAN 1

Bodolai Tamás

MINTATESZTEL� SZOFTVER FEJLESZTÉSE LINE SCAN KAMERÁS ALKALMAZÁSOKHOZ 7

Bodzás Sándor

DESIGNING AND MODELLING OF WORM GEAR HOB 12 Burmeister Dániel

BUCKLING OF SHELL-STIFFENED AND AXISYMMETRICALLY LOADED ANNULAR PLATES 18

Daróczy Gabriella

EMOTION AND THE COMPUTATIONAL MODEL OF METAPHORS 24 Drágár Zsuzsa

NEM SZABVÁNYOS SZERSZÁM-ALAPPROFIL KIALAKÍTÁSÁNAK LEHET�SÉGEI FOGASKEREKEKHEZ 30

Fekete Tamás

MEMBRÁNOK ALKAKMAZÁSA SZINKRON VÁLTAKOZÓ ÁRAMÚ HIDRAULIKUS HAJTÁSOKBAN 35

Ferenczi István

MODELING THE BEHAVIOR OF PROFINET IRT IN GIGABIT ETHERNET NETWORK 41

Ficsor Emese

AUTOMATIZÁLT AZONOSÍTÁSTECHNIKAI ÉS NYOMONKÖVETÉSI LEHET�SÉGEK VIZSGÁLATA INTERMODÁLIS SZÁLLÍTÁS SORÁN 47

Gáspár Marcell Gyula

NAGYSZILÁRDSÁGÚ ACÉL HEGESZTÉSTECHNOLÓGIÁJÁNAK FEJLESZTÉSE A H�LÉS ID� ELEMZÉSÉVEL 54

Hriczó Krisztián

NEMNEWTONI FOLYADÉKOK HATÁRRÉTEG ÁRAMLÁSÁNAK HASONLÓSÁGI MEGOLDÁSAI KONVEKTÍV FELÜLETI PEREMFELTÉTELEK MELLETT 60

Kelemen László Attila

DOMBORÍTOTT FOGAZAT MATEMATIKAI MODELLEZÉSE FOGASGY�R�S TENGELYKAPCSOLÓKHOZ 66

Page 8: GRAFIKUS PROCESSZOROK ALKALMAZÁSA …11] Sudipta N. Sinha, Jan-Michael Frahm, Marc Pollefeys, and Yakup Genc: ... STRUCTURAL IMPROVEMENTS OF THE OPENRTM ROBOT MIDDLEWARE 72 …

Krizsán Zoltán STRUCTURAL IMPROVEMENTS OF THE OPENRTM ROBOT MIDDLEWARE

72 Mándy Zoltán

A POSSIBLE NEURAL NETWORK FOR A HOLONIC MANUFACTURING SYSTEM 78

Simon Pál

GRAFIKUS PROCESSZOROK ALKALMAZÁSA KÉPFELDOLGOZÁSI FELADATOKRA 84

Skapinyecz Róbert

OPTIMALIZÁLÁSI LEHET�SÉGEK VIZSGÁLATA EGY E-PIACTÉRREL INTEGRÁLT VIRTUÁLIS SZÁLLÍTÁSI VÁLLALATNÁL 90

Somosk�i Gábor

COLD METAL TRANSFER – THE CMT PROCESS 96 Szabó Adél Anett

A TELJES KÖLTSÉG KONCEPCIÓ JELENT�SÉGE A VÁLLALATI BESZERZÉSI GYAKORLATBAN 102

Szamosi Zoltán

MEZ�GAZDASÁGI HULLADÉKOK VIZSGÁLATA 108 Szilágyiné Biró Andrea

BETÉTEDZÉS� ACÉLOK KÜLÖNBÖZ� H�MÉRSÉKLET� KARBONITRIDÁLÁSA 114

Tomkovics Tamás

DARABÁRU OSZTÁLYOZÓ RENDSZEREK KISZOLGÁLÁSI STRATÉGIÁIT BEFOLYÁSOLÓ JELLEMZ�K; A RENDSZEREK MODULJAI KÖZÖTTI ÖSSZEFÜGGÉSEK FELTÁRÁSA 120

Tóth Zsolt

EL� REDUKCIÓ ALKALMAZÁSA A TBL ALGORITMUS ID�KÖLTSÉGÉNEK CSÖKKENTÉSÉRE 126

Varga Zoltán

KONKRÉT LOGISZTIKAI MINTARENDSZER MODELLEZÉSE 131 Vincze Dávid

MATLAB INTERFACE FOR THE 3D VIRTUAL COLLABORATION ARENA 137

Wagner György

INTENZÍTÁS BÁZISÚ OPTIMALIZÁLÁS FORGÁCSOLÁSI PARAMÉTEREK MEGHATÁROZÁSÁHOZ 143