KÉPFELDOLGOZÓ ALGORITMUSOK FEJLESZTÉSE GRAFIKUS HARDVER KÖRNYEZETBEN

Méret: px
Mutatás kezdődik a ... oldaltól:

Download "KÉPFELDOLGOZÓ ALGORITMUSOK FEJLESZTÉSE GRAFIKUS HARDVER KÖRNYEZETBEN"

Átírás

1 KÉPFELDOLGOZÓ ALGORITMUSOK FEJLESZTÉSE GRAFIKUS HARDVER KÖRNYEZETBEN Takács Gábor Konzulens: Vajda Ferenc PhD, adjunktus 1

2 TARTALOMJEGYZÉK: Budapesti Műszaki és Gazdaságtudományi Egyetem A kutatási projekt ismertetése... 3 A téma ismertetése... 3 Bevezetés... 4 Elmélet... 4 Számítógépes látás... 4 Szegmentálás... 5 GPU (Graphics Processing Unit)... 5 CUDA (Compute Unified Device Architecture)... 6 Megvalósított algoritmusok... 8 CPU-n futó kód... 8 Szürkeárnyalatosítás Küszöbözés Konvolúció Alakzatok keresése Jövőbeli tervek Felhasznált irodalom

3 A kutatási projekt ismertetése Budapesti Műszaki és Gazdaságtudományi Egyetem A számítási teljesítmény növekedésének és a magas integráltságú eszközök költségeinek csökkenésének köszönhetően egyre növekszik az igény valósidejű képfeldolgozó rendszerekre. A képfeldolgozás eszköztára igen széles, és gyakorlatilag elképzelhetetlen, hogy azok, akik különleges algoritmusokat kutatnak, mindig ismerjék az adott feladathoz használandó legmegfelelőbb platformot. A tanszék 3D érzékelés és Mobilrobotika kutatócsoportjában elindult kutatási projekt keretében azt vizsgáljuk, hogy egy adott feladat esetén melyik eszközt esetleg eszközkészletet célszerű alkalmazni. A projekt részét képezi a képfeldolgozás során alkalmazott robusztus szegmentálási algoritmusok kialakítása. A feladat egy régóta kutatott részterület, amelynek valósidejű megoldása egyelőre várat magára. A téma ismertetése A téma keretében meglévő szegmentálási algoritmusok GPU-n történő implementálása és továbbfejlesztése a cél, ami a következő lépéseket tartalmazza: A szegmentálás és hozzá kapcsolódó képfeldolgozási részterület alapos áttekintése, illetve az egyes algoritmusok grafikus kártyán történő implementálás lehetőségeinek vizsgálata. Képfeldolgozó könyvtárrendszerek megismerése. A szegmentálás egyes algoritmusainak implementálása Direct3D illetve CUDA környezetben. Az algoritmusok továbbfejlesztési, gyorsítási lehetőségeinek vizsgálata, illetve a szegmentálás háromdimenziós kiterjesztése videoszekvenciákra mozgáskövetéssel. 3

4 Bevezetés A képfeldolgozás egyik leginkább kutatott részfeladata a szegmentálás, melyre számos jó algoritmus létezik, de ezek viszonylag lassúak. Manapság viszont egyre nagyobb az igény a feladatok valósidejű végrehajtására. Az algoritmusok gyorsítására több lehetőség is létezik. Ilyen például a CPU-k sebességének növelése, de belátható, hogy rövid időn belül a processzorok sebessége nem fog olyan mértékben fejlődni, hogy valós időben le tudja futtatni ezeket az algoritmusok, ezért ez nem jó megoldás. Jó megoldás viszont, a szemléletváltás, vagyis az algoritmusok párhuzamosítása. Adódik a lehetőség: a GPU architektúrájának kihasználása. Ezért ebben a dokumentációban röviden áttekintjük a grafikus kártyák felépítését, megismerkedünk a CUDA környezettel, valamint néhány algoritmust is tanulmányozunk. Elmélet Számítógépes látás Három szintet különböztetünk meg: 1) Alacsonyszintű képfeldolgozás Alapvető, a képhez szervesen hozzátartozó tulajdonságok meghatározása (élek, szín, textúra,...). Ezen feldolgozás eredménye általában egy újabb kép, amely az általunk keresett tulajdonságokat tartalmazza (pl. élkép). 2) Középső szint A képen látható objektumok tulajdonságainak meghatározása. A kiindulási adatokat az alacsony szintű feldolgozásból kapjuk. A feldolgozás eredményeként a kép tartalmának egy kezdetleges, szimbolikus leírását kapjuk, amely főleg a képen látható alakzatok jellemzőit foglalja magába (felületek, kontúrvonalak helyzete, mozgás, sztereó...). 3) Felső szint Képi tartalom értelmezése (objektumok felismerése, képi esemény leírása, ) 4

5 Szegmentálás A képszegmentálás a képfeldolgozás egyik legfontosabb alapproblémája, mely a hasonló tulajdonságú pixelek homogén régiókba történő csoportosításával foglalkozik. A képszegmentálást felületleírásra, alakfelismerésre, képi adatbázis indexelésére, keresésre és még számos más területen alkalmazzák. Máig, az egyik leginkább kutatott részterület, ugyanis a meglévő algoritmusok lassúak, illetve nem létezik abszolút értelemben jó vagy rossz algoritmus, mindig az adott probléma analízise során derül az ki, hogy melyik eljárástól várhatjuk a legjobb eredményt. K-means algoritmus, mely minden egyes pixelt ahhoz a csoporthoz sorol, amelyiknek a középpontja a legközelebb esik az adott pixelhez. GPU (Graphics Processing Unit) A GPU a jobb gyorsítótár kihasználáson túl erőteljes párhuzamosításra képes, architektúrájának köszönhetően. Számos fix funkció van benne hardveresen megvalósítva, melyek sokkal gyorsabb működésre képesek, mint a szoftveres társaik. Ilyen például a logaritmus, hatványozás, raszterizálás, stb. A GPU a CPU-val ellentétben, nem foglalkozik spekulációval, azaz nem tesz sejtést arra, hogy később milyen adatokra lesz szükség, és nem foglalkozik azok cache-be töltésével, inkább a feldolgozásra fektet nagyobb hangsúlyt. GT200-as architektúra 5

6 A GT200-as architektúrára épülő GPU-k tíz darab párhuzamosan elhelyezett Texture Processor Cluster-t (TPC) tartalmaznak, melyekben további három-három darab Streaming Multiprocessor (SM) található, és ezek mindegyike egyenként nyolc darab Streaming Processor-t (SP) tartalmaz. Ez tehát azt jelenti, hogy egy GT200-as architektúrára épülő videokártya összesen kettőszáznegyven darab feldolgozóegységet tartalmaz. Ezen okokból használható a GPU párhuzamos algoritmusok futtatására. CUDA (Compute Unified Device Architecture) Az Nvidia által, grafikus kártyák programozásához fejlesztett egységes eszközökre épülő számítási architektúra, melyet általános számítási célok megvalósítására terveztek. SIMD architektúráról van szó, minden eszköz egyidejűleg ugyanazt a feladatot hajtja végre, különböző adatokon. A GeForce 8000-esnél nagyobb sorozatszámú videokártyák képesek futtatni a CUDA-t. Feldolgozási folyamatábra 6

7 A feldolgozási folyamatábrán megtekinthetjük, hogy CUDA alkalmazásával mi a programvégrehajtás menete. A jobboldali képen pedig a CUDA futási modelljét láthatjuk, ahol a rácsban egyidejűleg egy kernel fut, a szekvenciális program egy párhuzamosítható részlete található itt. A blokk a rács maximum 2D-s felosztása, párhuzamos, de független programelemeket tartalmaz, melyek futhatnak egyszerre, vagy egymás után. A szál a blokk maximum 3D-s felosztása, szekvenciális programrészlet fut rajta. 32 db párhuzamos szál fonatot alkot, mely egyszerre futtat egy SIMD utasítást. Futási modell A CUDA memóriamodelljén látszik, hogy minden egyes szálnak saját regiszterei vannak, melyek statikus RAM-ok, tehát gyorsak, továbbá mindegyikhez tartozik lokális memória is, de ezek dinamikus RAMok, így lassúak. Minden blokkban van osztott memória, melyen keresztül kommunikálnak a szálak, ez is statikus RAM, tehát gyors. A globális, a konstans, és a textúra memóriát minden szál és rács eléri, ezek dinamikus Memóriamodell RAM-ok, de utóbbi kettő ki van egészítve egyirányú gyorsítótárral, így azok viszonylag gyorsak, ellentétben a globális memóriával. CUDA-ra algoritmust áttenni könnyű, mert C nyelven lehet programozni, nem szükséges hozzá párhuzamos programozási nyelv ismerete. Jelentős gyorsítást elérni nagyon nehéz, elengedhetetlen hozzá a GPU felépítésének alapos ismerete, a jó algoritmusválasztás, továbbá a szűk keresztmetszetek feloldása. 7

8 Megvalósított algoritmusok Budapesti Műszaki és Gazdaságtudományi Egyetem Az algoritmusok megvalósításához Microsoft Visual Studio 2008-at és CUDA Toolkitet (ingyenesen elérhető az Nvidia weboldalán) használtam, futtatásuk pedig egy GeForce 9600 GT videokártyán történt. Az algoritmusok azonos részekből állnak: egy, a CPU-n futó kódból és egy GPU-n futó kernelből. A CPU-n futó kód szinte ugyanaz minden esetben, a textúra beállításánál találunk csak lényegi különbséget. A processzoron futó kód fájlból olvassa be a memóriába a feldolgozandó képeket, majd átmásolja azokat az eszköz memóriába, paraméterezi a textúrát és meghívja a GPU-n futó kernelt. Itt a textúra blokkjain a feldolgozóegységek párhuzamosan végzik el a szükséges műveleteket, például konvolúció során a mátrix elemeivel való szorzást. A kernel lefutása után a CPU visszamásolja az eredményül kapott képeket a memóriába, majd fájlba menti azokat, így kapjuk meg mind a három esetben az eredményképeket. CPU-n futó kód int main(int argc, char **argv) { // kép megnyitása float* h_data = NULL; unsigned int width, height; char* image_path = cutfindfilepath(image_filename, argv[0]); cutloadpgmf(image_path, &h_data, &width, &height); unsigned int size = width * height * sizeof( float ); float* d_data = NULL; cudamalloc( (void**) &d_data, size); // tömb lefoglalása és az adatok feltöltése cudachannelformatdesc channeldesc = cudacreatechanneldesc( 8, 8, 8, 8, cudachannelformatkindunsigned); cudaarray* cu_array; // textúramemóriába foglaljuk cudamallocarray( &cu_array, &channeldesc, width, height ); cudamemcpytoarray( cu_array, 0, 0, h_data, size, cudamemcpyhosttodevice); 8

9 // textúra paraméterek beállítása tex.addressmode[0] = cudaaddressmodewrap; tex.addressmode[1] = cudaaddressmodewrap; tex.filtermode = cudafiltermodepoint; // ne legyen átlagolás tex.normalized = false; // a textúra koordináták legyenek valósak cudabindtexturetoarray( tex, cu_array, channeldesc ); dim3 dimblock( 8, 8, 1 ); dim3 dimgrid(width / dimblock.x, height / dimblock.y, 1 ); // GPU-n futó kernel meghívása kernel<<< dimgrid, dimblock, 0 >>>( d_data, width, height); // eredmény visszaírása a host memóriába float* h_odata = (float*) malloc( size); cudamemcpy( h_odata, d_data, size, cudamemcpydevicetohost); // eredmény írása fájlba char output_filename[1024]; strcpy(output_filename, image_path); strcpy(output_filename + strlen(image_path) - 4, "_out.pgm"); cutsavepgmf( output_filename, h_odata, width, height); cudafreearray( cu_array ); } Itt a GPU-n futó kerneleket nem részletezem, ugyanis azok az egyes feladatoknál különböznek, részletezésüket lásd később. 9

10 Szürkeárnyalatosítás Megvalósítása során, a korábban bemutatott kód fut a CPU-n, mely a most részletezésre kerülő GPU-n futó kernelt hívja meg. global void kernel( float* result, int width, int height ) { // textúrakoordináták kiszámítása unsigned int x = blockidx.x * blockdim.x + threadidx.x; unsigned int y = blockidx.y * blockdim.y + threadidx.y; // szükséges pixelek olvasása a textúrából uchar4 value = tex2d( tex, ( float )x, ( float )y ); // szürkeárnyalatosítás unsigned char pixel = value.x*.3 + value.y*.59 + value.z*.11; // eredmény előállítása result[ y * width + x ] = pixel; } A szürkeárnyalatosítás eredménye 10

11 Küszöbözés Megvalósítása során, a korábban bemutatott kód fut a CPU-n, mely a most részletezésre kerülő GPU-n futó kernelt hívja meg. global void kernel( float* result, int width, int height ) { // textúrakoordináták kiszámítása unsigned int x = blockidx.x * blockdim.x + threadidx.x; unsigned int y = blockidx.y * blockdim.y + threadidx.y; // szükséges pixelek olvasása a textúrából uchar4 value = tex2d( tex, ( float )x, ( float )y ); // küszöbözés if ( value < thresholdvalue ) value = 0; else value = 1; // eredmény előállítása result[ y * width + x ] = value.x, value.x, value.x, 1; } Küszöbözés eredménye 11

12 Konvolúció Megvalósítása során, a korábban bemutatott kód fut a CPU-n, mely a most részletezésre kerülő GPU-n futó kernelt hívja meg. global void kernel( float* result, int width, int height ) { // textúrakoordináták kiszámítása unsigned int x = blockidx.x * blockdim.x + threadidx.x; unsigned int y = blockidx.y * blockdim.y + threadidx.y; // szükséges pixelek olvasása a textúrából float pixel0 = tex2d( tex, ( float )x-1, ( float )y-1 ); float pixel1 = tex2d( tex, ( float )x, ( float )y-1 );... float pixel8 = tex2d( tex, ( float )x+1, ( float )y+1 ); // konvolúciós mátrix elemeinek megadása const float m00 = 2.0; const float m01 = -1.0/4.0; const float m10 = -1.0/4.0; const float m11 = 0.0; // az egyes pixelértékek kiszámítása float value0 = pixel0*m11;... float value8 = pixel8*m11; // eredmény előállítása result[ y * width + x ] = value0 + value1 + value2 + + value7 + value8; } 12

13 Konvolúció eredménye 13

14 Alakzatok keresése Ebben a feladatban a kép pixeleinek színértékei alapján szegmentáltam a képet, hogy megtaláljam rajta a négy kört. A megvalósítás menete hasonló a korábbiakban bemutatottakhoz, a GPU-n futó kernel a pixelek színértékeit hasonlítja össze a 3D színtérben kijelölt színcsatornánként meghatározott alsó és felső korlát értékeivel, ha a két határ között van, akkor meghagyja a pixelt, ha nem akkor a pixelt fehér színűre állítja. global void kernel( uchar4* result, int width, int height ) { // textúrakoordináták kiszámítása unsigned int x = blockidx.x * blockdim.x + threadidx.x; unsigned int y = blockidx.y * blockdim.y + threadidx.y; // szükséges pixelek olvasása a textúrából uchar4 value = tex2d( tex, ( float )x, ( float )y ); if (27<value.x<46 && 65<value.y<102 && 18<value.z<51 ) {value.x=0; value.y=255; value.z=0;} if (100<value.x<125 && 32<value.y<42 && 72<value.z<102 ) {value.x=255; value.y=0; value.z=0;} else {value.x=255; value.y=255; value.z=255;} // eredmény előállítása result[ y * width + x ] = value; } Körök keresésének eredménye 14

15 Jövőbeli tervek Következő félévben tervezem újabb szegmentálási algoritmusok megismerését, kipróbálását, illetve párhuzamosíthatóságuknak tesztelését. További célom az elkészült algoritmusok gyorsítása, optimalizálása, végső fázisban pedig, kamerakép valósidejű feldolgozása. Felhasznált irodalom Vajda Ferenc PhD, adjunktus Képfeldolgozás GPU segítségével előadásanyag Vajda Ferenc PhD, adjunktus Képfeldolgozás CUDA segítségével előadásanyag Nvidia CUDA Reference Manual Nvidia CUDA Programing Guide 15

Videókártya - CUDA kompatibilitás: CUDA weboldal: Példaterületek:

Videókártya - CUDA kompatibilitás:   CUDA weboldal:   Példaterületek: Hasznos weboldalak Videókártya - CUDA kompatibilitás: https://developer.nvidia.com/cuda-gpus CUDA weboldal: https://developer.nvidia.com/cuda-zone Példaterületek: http://www.nvidia.com/object/imaging_comp

Részletesebben

Párhuzamos és Grid rendszerek

Párhuzamos és Grid rendszerek Párhuzamos és Grid rendszerek (10. ea) GPGPU Szeberényi Imre BME IIT Az ábrák egy része az NVIDIA oktató anyagaiból és dokumentációiból származik. Párhuzamos és Grid rendszerek BME-IIT

Részletesebben

CUDA haladó ismeretek

CUDA haladó ismeretek CUDA haladó ismeretek CUDA környezet részletei Többdimenziós indextér használata Megosztott memória használata Atomi műveletek használata Optimalizálás Hatékonyság mérése Megfelelő blokkméret kiválasztása

Részletesebben

A CUDA előnyei: - Elszórt memória olvasás (az adatok a memória bármely területéről olvashatóak) PC-Vilag.hu CUDA, a jövő technológiája?!

A CUDA előnyei: - Elszórt memória olvasás (az adatok a memória bármely területéről olvashatóak) PC-Vilag.hu CUDA, a jövő technológiája?! A CUDA (Compute Unified Device Architecture) egy párhuzamos számításokat használó architektúra, amelyet az NVIDIA fejlesztett ki. A CUDA valójában egy számoló egység az NVIDIA GPU-n (Graphic Processing

Részletesebben

Magas szintű optimalizálás

Magas szintű optimalizálás Magas szintű optimalizálás Soros kód párhuzamosítása Mennyi a várható teljesítmény növekedés? Erős skálázódás (Amdahl törvény) Mennyire lineáris a skálázódás a párhuzamosítás növelésével? S 1 P 1 P N GPGPU

Részletesebben

Újrakonfigurálható technológiák nagy teljesítményű alkalmazásai

Újrakonfigurálható technológiák nagy teljesítményű alkalmazásai Újrakonfigurálható technológiák nagy teljesítményű alkalmazásai GPU-k, GPGPU CUDA Szántó Péter BME MIT, FPGA Laboratórium GPU-k Graphics Processing Unit 2 fő feladat Objektumok transzformációja a lokális

Részletesebben

GPU-Accelerated Collocation Pattern Discovery

GPU-Accelerated Collocation Pattern Discovery GPU-Accelerated Collocation Pattern Discovery Térbeli együttes előfordulási minták GPU-val gyorsított felismerése Gyenes Csilla Sallai Levente Szabó Andrea Eötvös Loránd Tudományegyetem Informatikai Kar

Részletesebben

OpenCL - The open standard for parallel programming of heterogeneous systems

OpenCL - The open standard for parallel programming of heterogeneous systems OpenCL - The open standard for parallel programming of heterogeneous systems GPU-k általános számításokhoz GPU Graphics Processing Unit Képalkotás: sok, általában egyszerű és független művelet < 2006:

Részletesebben

GPGPU alapok. GPGPU alapok Grafikus kártyák evolúciója GPU programozás sajátosságai

GPGPU alapok. GPGPU alapok Grafikus kártyák evolúciója GPU programozás sajátosságai GPGPU alapok GPGPU alapok Grafikus kártyák evolúciója GPU programozás sajátosságai Szenasi.sandor@nik.uni-obuda.hu GPGPU alapok GPGPU alapok Grafikus kártyák evolúciója GPU programozás sajátosságai Szenasi.sandor@nik.uni-obuda.hu

Részletesebben

Grafikus csővezeték 1 / 44

Grafikus csővezeték 1 / 44 Grafikus csővezeték 1 / 44 Grafikus csővezeték Vertex feldolgozás A vertexek egyenként a képernyő térbe vannak transzformálva Primitív feldolgozás A vertexek primitívekbe vannak szervezve Raszterizálás

Részletesebben

Újrakonfigurálható technológiák nagy teljesítményű alkalmazásai

Újrakonfigurálható technológiák nagy teljesítményű alkalmazásai Újrakonfigurálható technológiák nagy teljesítményű alkalmazásai GPU-k, GPGPU CUDA Szántó Péter BME MIT, FPGA Laboratórium GPU-k Graphics Processing Unit 2 fő feladat Objektumok transzformációja a lokális

Részletesebben

OpenCL alapú eszközök verifikációja és validációja a gyakorlatban

OpenCL alapú eszközök verifikációja és validációja a gyakorlatban OpenCL alapú eszközök verifikációja és validációja a gyakorlatban Fekete Tamás 2015. December 3. Szoftver verifikáció és validáció tantárgy Áttekintés Miért és mennyire fontos a megfelelő validáció és

Részletesebben

Készítette: Trosztel Mátyás Konzulens: Hajós Gergely

Készítette: Trosztel Mátyás Konzulens: Hajós Gergely Készítette: Trosztel Mátyás Konzulens: Hajós Gergely Monte Carlo Markov Chain MCMC során egy megfelelően konstruált Markov-lánc segítségével mintákat generálunk. Ezek eloszlása követi a céleloszlást. A

Részletesebben

egy szisztolikus példa

egy szisztolikus példa Automatikus párhuzamosítás egy szisztolikus példa Áttekintés Bevezetés Példa konkrét szisztolikus algoritmus Automatikus párhuzamosítási módszer ötlet Áttekintés Bevezetés Példa konkrét szisztolikus algoritmus

Részletesebben

Hallgatói segédlet: Nvidia CUDA C programok debugolása Nvidia Optimus technológiás laptopokon. Készítette: Kovács Andor. 2011/2012 első félév

Hallgatói segédlet: Nvidia CUDA C programok debugolása Nvidia Optimus technológiás laptopokon. Készítette: Kovács Andor. 2011/2012 első félév Hallgatói segédlet: Nvidia CUDA C programok debugolása Nvidia Optimus technológiás laptopokon Készítette: Kovács Andor 2011/2012 első félév 1 A CUDA programok debugolásához kettő grafikus kártyára van

Részletesebben

Grafikus kártyák, mint olcsó szuperszámítógépek - I.

Grafikus kártyák, mint olcsó szuperszámítógépek - I. (1) Grafikus kártyák, mint olcsó szuperszámítógépek - I. tanuló szeminárium Jurek Zoltán, Tóth Gyula SZFKI, Röntgendiffrakciós csoport (2) Vázlat I. Motiváció Beüzemelés C alapok CUDA programozási modell,

Részletesebben

Heterogén számítási rendszerek gyakorlatok (2017.)

Heterogén számítási rendszerek gyakorlatok (2017.) Heterogén számítási rendszerek gyakorlatok (2017.) Tartalom 1. 2D konvolúció megvalósítása C-ben... 2 1.1 C implementáció... 2 1.2 OpenMP... 5 1.3 Vektorizáció... 5 2. 2D konvolúció GPU-val... 6 2.1 Global

Részletesebben

GPGPU. Architektúra esettanulmány

GPGPU. Architektúra esettanulmány GPGPU Architektúra esettanulmány GeForce 7800 (2006) GeForce 7800 Rengeteg erőforrást fordítottak arra, hogy a throughput-ot maximalizálják Azaz a különböző típusú feldolgozóegységek (vertex és fragment

Részletesebben

Flynn féle osztályozás Single Isntruction Multiple Instruction Single Data SISD SIMD Multiple Data MISD MIMD

Flynn féle osztályozás Single Isntruction Multiple Instruction Single Data SISD SIMD Multiple Data MISD MIMD M5-. A lineáris algebra párhuzamos algoritmusai. Ismertesse a párhuzamos gépi architektúrák Flynn-féle osztályozását. A párhuzamos lineáris algebrai algoritmusok között mi a BLAS csomag célja, melyek annak

Részletesebben

Utolsó módosítás:

Utolsó módosítás: Utolsó módosítás: 2011. 09. 08. 1 A tantárggyal kapcsolatos adminisztratív kérdésekkel Micskei Zoltánt keressétek. 2 3 4 5 6 7 8 9 10 11 12 13 14 Erősen buzzword-fertőzött terület, manapság mindent szeretnek

Részletesebben

CUDA alapok CUDA projektek. CUDA bemutató. Adatbányászat és Webes Keresés Kutatócsoport SZTAKI

CUDA alapok CUDA projektek. CUDA bemutató. Adatbányászat és Webes Keresés Kutatócsoport SZTAKI SZTAKI 2010 Tartalom 1 2 Tartalom 1 2 GPU-k és a CUDA El zmények grakus kártyák: nagy párhuzamos számítási kapacitás eredetileg csak grakus m veleteket tudtak végezni GPU-k és a CUDA El zmények grakus

Részletesebben

GPGPU-k és programozásuk Dezső, Sima Sándor, Szénási

GPGPU-k és programozásuk Dezső, Sima Sándor, Szénási GPGPU-k és programozásuk Dezső, Sima Sándor, Szénási GPGPU-k és programozásuk írta Dezső, Sima és Sándor, Szénási Szerzői jog 2013 Typotex Kivonat A processzor technika alkalmazásának fejlődése terén napjaink

Részletesebben

SZÁMÍTÓGÉP ARCHITEKTÚRÁK

SZÁMÍTÓGÉP ARCHITEKTÚRÁK SZÁMÍTÓGÉP ARCHITEKTÚRÁK Az utasítás-pipeline szélesítése Horváth Gábor, Belső Zoltán BME Hálózati Rendszerek és Szolgáltatások Tanszék ghorvath@hit.bme.hu, belso@hit.bme.hu Budapest, 2018-05-19 1 UTASÍTÁSFELDOLGOZÁS

Részletesebben

Diplomamunka. Miskolci Egyetem. GPGPU technológia kriptográfiai alkalmazása. Készítette: Csikó Richárd VIJFZK mérnök informatikus

Diplomamunka. Miskolci Egyetem. GPGPU technológia kriptográfiai alkalmazása. Készítette: Csikó Richárd VIJFZK mérnök informatikus Diplomamunka Miskolci Egyetem GPGPU technológia kriptográfiai alkalmazása Készítette: Csikó Richárd VIJFZK mérnök informatikus Témavezető: Dr. Kovács László Miskolc, 2014 Köszönetnyilvánítás Ezúton szeretnék

Részletesebben

Számítógép architektúrák záróvizsga-kérdések február

Számítógép architektúrák záróvizsga-kérdések február Számítógép architektúrák záróvizsga-kérdések 2007. február 1. Az ILP feldolgozás fejlődése 1.1 ILP feldolgozási paradigmák (Releváns paradigmák áttekintése, teljesítmény potenciáljuk, megjelenési sorrendjük

Részletesebben

GPGPU-k és programozásuk

GPGPU-k és programozásuk GPGPU-k és programozásuk Szénási Sándor Augusztus 2013 (1.1 verzió) Szénási Sándor Tartalomjegyzék 1. Bevezetés 2. Programozási modell 1. CUDA környezet alapjai 2. Fordítás és szerkesztés 3. Platform modell

Részletesebben

5-6. ea Created by mrjrm & Pogácsa, frissítette: Félix

5-6. ea Created by mrjrm & Pogácsa, frissítette: Félix 2. Adattípusonként különböző regisztertér Célja: az adatfeldolgozás gyorsítása - különös tekintettel a lebegőpontos adatábrázolásra. Szorzás esetén karakterisztika összeadódik, mantissza összeszorzódik.

Részletesebben

Programozás C nyelven FELÜLNÉZETBŐL elhullatott MORZSÁK. Sapientia EMTE

Programozás C nyelven FELÜLNÉZETBŐL elhullatott MORZSÁK. Sapientia EMTE Programozás C nyelven FELÜLNÉZETBŐL elhullatott MORZSÁK Sapientia EMTE 2015-16 1 Felülnézet 1 Feltételes fordítás #if, #else, #elif, #endif, #ifdef, #ifndef stb. Felülnézet 2 #include: hatására a preprocesszor

Részletesebben

GPU Lab. 14. fejezet. OpenCL textúra használat. Grafikus Processzorok Tudományos Célú Programozása. Berényi Dániel Nagy-Egri Máté Ferenc

GPU Lab. 14. fejezet. OpenCL textúra használat. Grafikus Processzorok Tudományos Célú Programozása. Berényi Dániel Nagy-Egri Máté Ferenc 14. fejezet OpenCL textúra használat Grafikus Processzorok Tudományos Célú Programozása Textúrák A textúrák 1, 2, vagy 3D-s tömbök kifejezetten szín információk tárolására Főbb különbségek a bufferekhez

Részletesebben

SAT probléma kielégíthetőségének vizsgálata. masszív parallel. mesterséges neurális hálózat alkalmazásával

SAT probléma kielégíthetőségének vizsgálata. masszív parallel. mesterséges neurális hálózat alkalmazásával SAT probléma kielégíthetőségének vizsgálata masszív parallel mesterséges neurális hálózat alkalmazásával Tajti Tibor, Bíró Csaba, Kusper Gábor {gkusper, birocs, tajti}@aries.ektf.hu Eszterházy Károly Főiskola

Részletesebben

Dr. habil. Maróti György

Dr. habil. Maróti György infokommunikációs technológiák III.8. MÓDSZER KIDOLGOZÁSA ALGORITMUSOK ÁTÜLTETÉSÉRE KIS SZÁMÍTÁSI TELJESÍTMÉNYŰ ESZKÖZÖKBŐL ÁLLÓ NÉPES HETEROGÉN INFRASTRUKTÚRA Dr. habil. Maróti György maroti@dcs.uni-pannon.hu

Részletesebben

Bevezetés a programozásba I 10. gyakorlat. C++: alprogramok deklarációja és paraméterátadása

Bevezetés a programozásba I 10. gyakorlat. C++: alprogramok deklarációja és paraméterátadása Pázmány Péter Katolikus Egyetem Információs Technológiai Kar Bevezetés a programozásba I 10. gyakorlat C++: alprogramok deklarációja és paraméterátadása 2011.11.22. Giachetta Roberto groberto@inf.elte.hu

Részletesebben

Számítógépek felépítése

Számítógépek felépítése Számítógépek felépítése Emil Vatai 2014-2015 Emil Vatai Számítógépek felépítése 2014-2015 1 / 14 Outline 1 Alap fogalmak Bit, Byte, Word 2 Számítógép részei A processzor részei Processzor architektúrák

Részletesebben

Teszt Az nvidia GeForce VGA kártyák gyakorlati teljesítménye a Dirt3-ban

Teszt Az nvidia GeForce VGA kártyák gyakorlati teljesítménye a Dirt3-ban Teszt Az nvidia GeForce VGA kártyák gyakorlati teljesítménye a Dirt3-ban Nemrég megjelent a Codemasters nevével fémjelzett Dirt3 videojáték. Kaptunk az alkalmon és megnéztük, hogy a különböző árszegmensű

Részletesebben

Programozás C- és Matlab nyelven C programozás kurzus BMEKOKAM603 Függvények. Dr. Bécsi Tamás 6. Előadás

Programozás C- és Matlab nyelven C programozás kurzus BMEKOKAM603 Függvények. Dr. Bécsi Tamás 6. Előadás Programozás C- és Matlab nyelven C programozás kurzus BMEKOKAM603 Függvények Dr. Bécsi Tamás 6. Előadás Bevezetés Egy idő után az egyetlen main(){ függvénnyel megírt programunk túl nagy méretű lesz. Vannak

Részletesebben

KUTATÁSOK INFORMATIKAI TÁMOGATÁSA. Dr. Szénási Sándor

KUTATÁSOK INFORMATIKAI TÁMOGATÁSA. Dr. Szénási Sándor KUTATÁSOK INFORMATIKAI TÁMOGATÁSA Dr. Szénási Sándor szenasi.sandor@nik.uni-obuda.hu Óbudai Egyetem Neumann János Informatikai Kar Alkalmazott Informatikai Intézet Alapvető jellemzői NVIDIA GTX 1080 2560

Részletesebben

Grafikus csővezeték és az OpenGL függvénykönyvtár

Grafikus csővezeték és az OpenGL függvénykönyvtár Grafikus csővezeték és az OpenGL függvénykönyvtár 1 / 32 A grafikus csővezeték 3D-s színtér objektumainak leírása primitívekkel: pontok, élek, poligonok. Primitívek szögpontjait vertexeknek nevezzük Adott

Részletesebben

Eichhardt Iván GPGPU óra anyagai

Eichhardt Iván GPGPU óra anyagai OpenCL modul 1. óra Eichhardt Iván iffan@caesar.elte.hu GPGPU óra anyagai http://cg.inf.elte.hu/~gpgpu/ OpenCL API és alkalmazása Gyakorlati példák (C/C++) Pl.: Képfeldolgozás Párhuzamos tervezési minták

Részletesebben

Utolsó módosítás:

Utolsó módosítás: Utolsó módosítás: 2012. 09. 06. 1 A tantárggyal kapcsolatos adminisztratív kérdésekkel Micskei Zoltánt keressétek. 2 3 4 5 6 7 8 9 Forrás: Gartner Hype Cycle for Virtualization, 2010, http://premierit.intel.com/docs/doc-5768

Részletesebben

Pénzügyi algoritmusok

Pénzügyi algoritmusok Pénzügyi algoritmusok A C++ programozás alapjai Tömbök (3. rész) Konstansok Kivételkezelés Tömbök 3. Többdimenziós tömbök Többdimenziós tömbök int a; Többdimenziós tömbök int a[5]; Többdimenziós tömbök

Részletesebben

Párhuzamos programozási platformok

Párhuzamos programozási platformok Párhuzamos programozási platformok Parallel számítógép részei Hardver Több processzor Több memória Kapcsolatot biztosító hálózat Rendszer szoftver Párhuzamos operációs rendszer Konkurenciát biztosító programozási

Részletesebben

GPGPU. GPU-k felépítése. Valasek Gábor

GPGPU. GPU-k felépítése. Valasek Gábor GPGPU GPU-k felépítése Valasek Gábor Tartalom A mai órán áttekintjük a GPU-k architekturális felépítését A cél elsősorban egy olyan absztrakt hardvermodell bemutatása, ami segít megérteni a GPU-k hardveres

Részletesebben

elektronikus adattárolást memóriacím

elektronikus adattárolást memóriacím MEMÓRIA Feladata A memória elektronikus adattárolást valósít meg. A számítógép csak olyan műveletek elvégzésére és csak olyan adatok feldolgozására képes, melyek a memóriájában vannak. Az információ tárolása

Részletesebben

Eichhardt Iván GPGPU óra anyagai

Eichhardt Iván GPGPU óra anyagai OpenCL modul 1. óra Eichhardt Iván iffan@caesar.elte.hu GPGPU óra anyagai http://cg.inf.elte.hu/~gpgpu/ OpenCL API és alkalmazása Gyakorlati példák (C/C++) Pl.: Képfeldolgozás Párhuzamos programozás elméleti

Részletesebben

Heterogén számítási rendszerek gyakorlatok (2018.)

Heterogén számítási rendszerek gyakorlatok (2018.) Heterogén számítási rendszerek gyakorlatok (2018.) Tartalom 1. 2D konvolúció megvalósítása C-ben... 2 1.1 C implementáció... 2 1.2 OpenMP... 5 1.3 Vektorizáció... 5 2. 2D konvolúció GPU-val... 8 2.1 Global

Részletesebben

Párhuzamos programozási platformok

Párhuzamos programozási platformok Párhuzamos programozási platformok Parallel számítógép részei Hardver Több processzor Több memória Kapcsolatot biztosító hálózat Rendszer szoftver Párhuzamos operációs rendszer Konkurenciát biztosító programozási

Részletesebben

Ismerkedjünk tovább a számítógéppel. Alaplap és a processzeor

Ismerkedjünk tovább a számítógéppel. Alaplap és a processzeor Ismerkedjünk tovább a számítógéppel Alaplap és a processzeor Neumann-elvű számítógépek főbb egységei A részek feladatai: Központi egység: Feladata a számítógép vezérlése, és a számítások elvégzése. Operatív

Részletesebben

OPENCV TELEPÍTÉSE SZÁMÍTÓGÉPES LÁTÁS ÉS KÉPFELDOLGOZÁS. Tanács Attila Képfeldolgozás és Számítógépes Grafika Tanszék Szegedi Tudományegyetem

OPENCV TELEPÍTÉSE SZÁMÍTÓGÉPES LÁTÁS ÉS KÉPFELDOLGOZÁS. Tanács Attila Képfeldolgozás és Számítógépes Grafika Tanszék Szegedi Tudományegyetem OPENCV TELEPÍTÉSE SZÁMÍTÓGÉPES LÁTÁS ÉS KÉPFELDOLGOZÁS Tanács Attila Képfeldolgozás és Számítógépes Grafika Tanszék Szegedi Tudományegyetem OpenCV Nyílt forráskódú szoftver (BSD licensz) Számítógépes látás,

Részletesebben

GPGPU ÚJ ESZKÖZÖK AZ INFORMÁCIÓBIZTONSÁG TERÜLETÉN

GPGPU ÚJ ESZKÖZÖK AZ INFORMÁCIÓBIZTONSÁG TERÜLETÉN IV. Évfolyam 4. szám - 2009. december Szénási Sándor szenasi.sandor@nik.bmf.hu GPGPU ÚJ ESZKÖZÖK AZ INFORMÁCIÓBIZTONSÁG TERÜLETÉN Absztrakt A processzor architektúrák elmúlt években bekövetkező fejlődésének

Részletesebben

Szoftvertechnológia alapjai Java előadások

Szoftvertechnológia alapjai Java előadások Szoftvertechnológia alapjai Java előadások Förhécz András, doktorandusz e-mail: fandrew@mit.bme.hu tárgy honlap: http://home.mit.bme.hu/~fandrew/szofttech_hu.html A mai előadás tartalma: Miért pont Java?

Részletesebben

Iman 3.0 szoftverdokumentáció

Iman 3.0 szoftverdokumentáció Melléklet: Az iman3 program előzetes leírása. Iman 3.0 szoftverdokumentáció Tartalomjegyzék 1. Az Iman rendszer...2 1.1. Modulok...2 1.2. Modulok részletes leírása...2 1.2.1. Iman.exe...2 1.2.2. Interpreter.dll...3

Részletesebben

Virtualizációs technológiák Linux alatt (teljesítményteszt)

Virtualizációs technológiák Linux alatt (teljesítményteszt) Virtualizációs technológiák Linux alatt (teljesítményteszt) Ebben a dokumentációban a virtualizációs technológiák sebességét, teljesítményét hasonlítom össze RedHat-alapú Linux disztribúciókkal. A teszteléshez

Részletesebben

4. Funkcionális primitívek GPUn

4. Funkcionális primitívek GPUn 4. Funkcionális primitívek GPUn GPU API emlékeztető Jelenleg a következő eszközök állnak rendelkezésre GPUs kódok futtatására: DirectX vagy OpenGL vagy Vulkan Compute Shader Ez grafikai célokra van kitalálva,

Részletesebben

Szimuláció RICHARD M. KARP és AVI WIGDERSON. (Készítette: Domoszlai László)

Szimuláció RICHARD M. KARP és AVI WIGDERSON. (Készítette: Domoszlai László) Szimuláció RICHARD M. KARP és AVI WIGDERSON A Fast Parallel Algorithm for the Maximal Independent Set Problem című cikke alapján (Készítette: Domoszlai László) 1. Bevezetés A következőkben megadott algoritmus

Részletesebben

GPGPU programozás lehetőségei. Nagy Máté Ferenc Budapest ALICE ELTE TTK Fizika MSc 2011 e-science Café

GPGPU programozás lehetőségei. Nagy Máté Ferenc Budapest ALICE ELTE TTK Fizika MSc 2011 e-science Café GPGPU programozás lehetőségei Nagy Máté Ferenc Budapest ALICE ELTE TTK Fizika MSc 2011 e-science Café Vázlat Egy, (kettő,) sok. Bevezetés a sokszálas univerzumba. A párhuzamosok a végtelenben találkoznak,

Részletesebben

Grafikus kártyák, mint olcsó szuperszámítógépek - II.

Grafikus kártyák, mint olcsó szuperszámítógépek - II. GPU, mint szuperszámítógép II. ( 1 ) Grafikus kártyák, mint olcsó szuperszámítógépek - II. tanuló szeminárium Jurek Zoltán, Tóth Gyula SZFKI, Röntgendiffrakciós csoport GPU, mint szuperszámítógép II. (

Részletesebben

Máté: Számítógépes grafika alapjai

Máté: Számítógépes grafika alapjai Történeti áttekintés Interaktív grafikai rendszerek A számítógépes grafika osztályozása Valós és képzeletbeli objektumok (pl. tárgyak képei, függvények) szintézise számítógépes modelljeikből (pl. pontok,

Részletesebben

Jurek Zoltán, Tóth Gyula

Jurek Zoltán, Tóth Gyula Grafikus kártyák, mint olcsó szuperszámítógépek II. rész: GPU nap 2010, MTA RMKI Budapest, 2010. június 4. Tartalom 1 A CUDA futtatási modellje Implementáció 2 Make it work. - A működő párhuzamos kódig

Részletesebben

Számítógép architektúra

Számítógép architektúra Budapesti Műszaki Főiskola Regionális Oktatási és Innovációs Központ Székesfehérvár Számítógép architektúra Dr. Seebauer Márta főiskolai tanár seebauer.marta@roik.bmf.hu Irodalmi források Cserny L.: Számítógépek

Részletesebben

Digitális technika VIMIAA01 9. hét Fehér Béla BME MIT

Digitális technika VIMIAA01 9. hét Fehér Béla BME MIT BUDAPESTI MŰSZAKI ÉS GAZDASÁGTUDOMÁNYI EGYETEM VILLAMOSMÉRNÖKI ÉS INFORMATIKAI KAR MÉRÉSTECHNIKA ÉS INFORMÁCIÓS RENDSZEREK TANSZÉK Digitális technika VIMIAA01 9. hét Fehér Béla BME MIT Eddig Tetszőleges

Részletesebben

Digitális technika VIMIAA01 9. hét

Digitális technika VIMIAA01 9. hét BUDAPESTI MŰSZAKI ÉS GAZDASÁGTUDOMÁNYI EGYETEM VILLAMOSMÉRNÖKI ÉS INFORMATIKAI KAR MÉRÉSTECHNIKA ÉS INFORMÁCIÓS RENDSZEREK TANSZÉK Digitális technika VIMIAA01 9. hét Fehér Béla BME MIT Eddig Tetszőleges

Részletesebben

GPU alkalmazása az ALICE eseménygenerátorában

GPU alkalmazása az ALICE eseménygenerátorában GPU alkalmazása az ALICE eseménygenerátorában Nagy Máté Ferenc MTA KFKI RMKI ALICE csoport ELTE TTK Fizika MSc Témavezető: Dr. Barnaföldi Gergely Gábor MTA KFKI RMKI ALICE csoport Elméleti Fizikai Főosztály

Részletesebben

Általános célú számítási feladatok GPU-kon és DSP-ken való megvalósítása

Általános célú számítási feladatok GPU-kon és DSP-ken való megvalósítása Általános célú számítási feladatok GPU-kon és DSP-ken való megvalósítása 1. Bevezetés Napjaink számítógépeiben szinte már kivétel nélkül megtalálhatók olyan különleges célprocesszorok, amelyek számítási

Részletesebben

TUDOMÁNYOS ADATBÁZISOK MA ÉS A JÖVŐBEN. X64 ALAPÚ KISZOLGÁLÓ RENDSZEREK Tudomány Adatbázisok, 1. előadás, (c) 2010

TUDOMÁNYOS ADATBÁZISOK MA ÉS A JÖVŐBEN. X64 ALAPÚ KISZOLGÁLÓ RENDSZEREK Tudomány Adatbázisok, 1. előadás, (c) 2010 Tudományos adatbázisok tervezése és építése 1. előadás TUDOMÁNYOS ADATBÁZISOK MA ÉS A JÖVŐBEN X64 ALAPÚ KISZOLGÁLÓ RENDSZEREK Tudomány Adatbázisok, 1. előadás, (c) 2010 2010.02.15. 1 Dobos László A tudományos

Részletesebben

Google Summer of Code OpenCL image support for the r600g driver

Google Summer of Code OpenCL image support for the r600g driver Google Summer of Code 2015 OpenCL image support for the r600g driver Képek: http://www.google-melange.com a Min szeretnék dolgozni? Kapcsolatfelvétel a mentorral Project proposal Célok Miért jó ez? Milestone-ok

Részletesebben

Programozás I. 3. gyakorlat. Szegedi Tudományegyetem Természettudományi és Informatikai Kar

Programozás I. 3. gyakorlat. Szegedi Tudományegyetem Természettudományi és Informatikai Kar Programozás I. 3. gyakorlat Szegedi Tudományegyetem Természettudományi és Informatikai Kar Antal Gábor 1 Primitív típusok Típus neve Érték Alap érték Foglalt tár Intervallum byte Előjeles egész 0 8 bit

Részletesebben

GPU-k a gravitációs hullám kutatásban

GPU-k a gravitációs hullám kutatásban GPU-k a gravitációs hullám kutatásban Debreczeni Gergely MTA KFKI RMKI (Gergely.Debreczeni@rmki.kfki.hu) e-science Cafè 2011. november 14. Óbudai Egyetem Neumann János Informatikai Kar Á.R.: Megfigyelhető

Részletesebben

Miről lesz ma szó? A PROGAMOZÁS ALAPJAI 1. Dinamikus változók. Dinamikus változók. Dinamikus változók. Dinamikus változók. 7.

Miről lesz ma szó? A PROGAMOZÁS ALAPJAI 1. Dinamikus változók. Dinamikus változók. Dinamikus változók. Dinamikus változók. 7. Miről lesz ma szó? A PROGAMOZÁS ALAPJAI 1 Vitéz András egyetemi adjunktus BME Híradástechnikai Tanszék vitez@hit.bme.hu Dinamikus memóriakezelés Dinamikus tömbök Dinamikus stringek Program kapcsolata a

Részletesebben

Java grafikai lehetőségek

Java grafikai lehetőségek Szerver oldali Java programozás 2007-08/II. 3. óra Java grafikai lehetőségek Java grafikai lehetőségek Képek generálása servletekkel szenasi.sandor@nik.bmf.hu Adatbázisok elérése Témakörök Java grafikai

Részletesebben

Nagy HF u tmutato 2011/2012 II. fe le v

Nagy HF u tmutato 2011/2012 II. fe le v A programozás alapjai 1. BMEVIHIA106 Nagy HF u tmutato 2011/2012 II. fe le v Analízis (Nyelv független) 1. A Házi feladat téma szöveges leírása. 2. A feladat résztvevőinek azonosítása 3. A résztvevők tulajdonságai

Részletesebben

Az MTA Cloud a tudományos alkalmazások támogatására. Kacsuk Péter MTA SZTAKI

Az MTA Cloud a tudományos alkalmazások támogatására. Kacsuk Péter MTA SZTAKI Az MTA Cloud a tudományos alkalmazások támogatására Kacsuk Péter MTA SZTAKI Kacsuk.Peter@sztaki.mta.hu Tudományos alkalmazások és skálázhatóság Kétféle skálázhatóság: o Vertikális: dinamikusan változik

Részletesebben

Önálló labor beszámoló Képek szegmentálása textúra analízis segítségével. MAJF21 Eisenberger András május 22. Konzulens: Dr.

Önálló labor beszámoló Képek szegmentálása textúra analízis segítségével. MAJF21 Eisenberger András május 22. Konzulens: Dr. Önálló labor beszámoló Képek szegmentálása textúra analízis segítségével 2011. május 22. Konzulens: Dr. Pataki Béla Tartalomjegyzék 1. Bevezetés 2 2. Források 2 3. Kiértékelő szoftver 3 4. A képek feldolgozása

Részletesebben

GPU Lab. 4. fejezet. Fordítók felépítése. Grafikus Processzorok Tudományos Célú Programozása. Berényi Dániel Nagy-Egri Máté Ferenc

GPU Lab. 4. fejezet. Fordítók felépítése. Grafikus Processzorok Tudományos Célú Programozása. Berényi Dániel Nagy-Egri Máté Ferenc 4. fejezet Fordítók felépítése Grafikus Processzorok Tudományos Célú Programozása Fordítók Kézzel assembly kódot írni nem érdemes, mert: Egyszerűen nem skálázik nagy problémákhoz arányosan sok kódot kell

Részletesebben

The modular mitmót system. DPY kijelző kártya C API

The modular mitmót system. DPY kijelző kártya C API The modular mitmót system DPY kijelző kártya C API Dokumentációkód: -D 01.0.0.0 Budapesti Műszaki és Gazdaságtudományi Egyetem Méréstechnika és Információs Rendszerek Tanszék Beágyazott Információs Rendszerek

Részletesebben

1. Alapok. Programozás II

1. Alapok. Programozás II 1. Alapok Programozás II Elérhetőség Név: Smidla József Elérhetőség: smidla dcs.uni-pannon.hu Szoba: I916 2 Irodalom Bjarne Stroustrup: A C++ programozási nyelv 3 Irodalom Erich Gamma, Richard Helm, Ralph

Részletesebben

C# Szálkezelés. Tóth Zsolt. Miskolci Egyetem. Tóth Zsolt (Miskolci Egyetem) C# Szálkezelés 2013 1 / 21

C# Szálkezelés. Tóth Zsolt. Miskolci Egyetem. Tóth Zsolt (Miskolci Egyetem) C# Szálkezelés 2013 1 / 21 C# Szálkezelés Tóth Zsolt Miskolci Egyetem 2013 Tóth Zsolt (Miskolci Egyetem) C# Szálkezelés 2013 1 / 21 Tartalomjegyzék 1 Bevezetés 2 Szálkezelés 3 Konkurens Programozás Tóth Zsolt (Miskolci Egyetem)

Részletesebben

1. tétel. A kommunikáció információelméleti modellje. Analóg és digitális mennyiségek. Az információ fogalma, egységei. Informatika érettségi (diák)

1. tétel. A kommunikáció információelméleti modellje. Analóg és digitális mennyiségek. Az információ fogalma, egységei. Informatika érettségi (diák) 1. tétel A kommunikáció információelméleti modellje. Analóg és digitális mennyiségek. Az információ fogalma, egységei Ismertesse a kommunikáció általános modelljét! Mutassa be egy példán a kommunikációs

Részletesebben

IK Algoritmusok és Alkalmazásaik Tsz, TTK Operációkutatás Tsz. A LEMON C++ gráf optimalizálási könyvtár használata

IK Algoritmusok és Alkalmazásaik Tsz, TTK Operációkutatás Tsz. A LEMON C++ gráf optimalizálási könyvtár használata IKP-9010 Számítógépes számelmélet 1. EA IK Komputeralgebra Tsz. IKP-9011 Számítógépes számelmélet 2. EA IK Komputeralgebra Tsz. IKP-9021 Java technológiák IK Prog. Nyelv és Ford.programok Tsz. IKP-9030

Részletesebben

Mintavételes szabályozás mikrovezérlő segítségével

Mintavételes szabályozás mikrovezérlő segítségével Automatizálási Tanszék Mintavételes szabályozás mikrovezérlő segítségével Budai Tamás budai.tamas@sze.hu http://maxwell.sze.hu/~budait Tartalom Mikrovezérlőkről röviden Programozási alapismeretek ismétlés

Részletesebben

1. fejezet Bevezetés a web programozásába (Balássy György munkája)... 11 Az internet működése... 11

1. fejezet Bevezetés a web programozásába (Balássy György munkája)... 11 Az internet működése... 11 Tartalomjegyzék 1. fejezet Bevezetés a web programozásába (Balássy György munkája)... 11 Az internet működése... 11 Géptől gépig... 11 Számok a gépeknek... 13 Nevek az embereknek... 14 Programok egymás

Részletesebben

A fordítóprogramok szerkezete. Kódoptimalizálás. A kódoptimalizálás célja. A szintézis menete valójában. Kódoptimalizálási lépések osztályozása

A fordítóprogramok szerkezete. Kódoptimalizálás. A kódoptimalizálás célja. A szintézis menete valójában. Kódoptimalizálási lépések osztályozása A fordítóprogramok szerkezete Forrásprogram Forrás-kezelő (source handler) Kódoptimalizálás Fordítóprogramok előadás (A,C,T szakirány) Lexikális elemző (scanner) Szintaktikus elemző (parser) Szemantikus

Részletesebben

1.1. A forrásprogramok felépítése Nevek és kulcsszavak Alapvető típusok. C programozás 3

1.1. A forrásprogramok felépítése Nevek és kulcsszavak Alapvető típusok. C programozás 3 Darvay Zsolt Típusok és nevek a forráskódban Állandók és változók Hatókörök és az előfeldolgozó Bevitel és kivitel Kifejezések Utasítások Mutatók Függvények Struktúrák és típusok Állománykezelés C programozás

Részletesebben

SzA19. Az elágazások vizsgálata

SzA19. Az elágazások vizsgálata SzA19. Az elágazások vizsgálata (Az elágazások csoportosítása, a feltételes utasítások használata, a műveletek eredményének vizsgálata az állapottér módszerrel és közvetlen adatvizsgálattal, az elágazási

Részletesebben

Teszt: Az nvidia GeForce kártyák Crysis 2-ben mért teljesítménye

Teszt: Az nvidia GeForce kártyák Crysis 2-ben mért teljesítménye Teszt: Az nvidia GeForce kártyák Crysis 2-ben mért teljesítménye Mivel úgy gondoljuk, hogy az egyes nvidia GeForce kártyák teljesítményét legjobban egy játékteszt során lehet bemutatni, így a Dirt3 teszt

Részletesebben

Alapismeretek. Tanmenet

Alapismeretek. Tanmenet Alapismeretek Tanmenet Alapismeretek TANMENET-Alapismeretek Témakörök Javasolt óraszám 1. Számítógépes alapfogalmak, számítógép generációk 2. A számítógép felépítése, hardver, A központi egység 3. Hardver

Részletesebben

OPERÁCIÓS RENDSZEREK. Elmélet

OPERÁCIÓS RENDSZEREK. Elmélet 1. OPERÁCIÓS RENDSZEREK Elmélet BEVEZETÉS 2 Az operációs rendszer fogalma Az operációs rendszerek feladatai Csoportosítás BEVEZETÉS 1. A tantárgy tananyag tartalma 2. Operációs rendszerek régen és most

Részletesebben

Útjelzések, akadályok felismerése valós időben

Útjelzések, akadályok felismerése valós időben Útjelzések, akadályok felismerése valós időben Dr. Hidvégi Timót Széchenyi István Egyetem Győr, 9026, Egyetem tér 1. hidvegi@sze.hu 1. Bevezető Sajnos a közúton a balesetek egy része abból adódik, hogy

Részletesebben

Bevezetés az informatikába

Bevezetés az informatikába Bevezetés az informatikába 3. előadás Dr. Istenes Zoltán Eötvös Loránd Tudományegyetem Informatikai Kar Programozáselmélet és Szoftvertechnológiai Tanszék Matematikus BSc - I. félév / 2008 / Budapest Dr.

Részletesebben

Szoftver labor III. Tematika. Gyakorlatok. Dr. Csébfalvi Balázs

Szoftver labor III. Tematika. Gyakorlatok. Dr. Csébfalvi Balázs Szoftver labor III. Dr. Csébfalvi Balázs Irányítástechnika és Informatika Tanszék e-mail: cseb@iit.bme.hu http://www.iit.bme.hu/~cseb/ Tematika Bevezetés Java programozás alapjai Kivételkezelés Dinamikus

Részletesebben

Programozás alapjai Bevezetés

Programozás alapjai Bevezetés Programozás alapjai Bevezetés Miskolci Egyetem Általános Informatikai Tanszék Programozás alapjai Bevezetés SWF1 / 1 Tartalom A gépi kódú programozás és hátrányai A magas szintÿ programozási nyelv fogalma

Részletesebben

Processzusok (Processes), Szálak (Threads), Kommunikáció (IPC, Inter-Process Communication)

Processzusok (Processes), Szálak (Threads), Kommunikáció (IPC, Inter-Process Communication) 1 Processzusok (Processes), Szálak (Threads), Kommunikáció (IPC, Inter-Process Communication) 1. A folyamat (processzus, process) fogalma 2. Folyamatok: műveletek, állapotok, hierarchia 3. Szálak (threads)

Részletesebben

Függvények. Programozás alapjai C nyelv 7. gyakorlat. LNKO függvény. Függvények(2) LNKO függvény (2) LNKO függvény (3)

Függvények. Programozás alapjai C nyelv 7. gyakorlat. LNKO függvény. Függvények(2) LNKO függvény (2) LNKO függvény (3) Programozás alapjai C nyelv 7. gyakorlat Szeberényi Imre BME IIT Függvények C program egymás mellé rendelt függvényekből áll. A függvény (alprogram) jó absztrakciós eszköz a programok

Részletesebben

Programozás alapjai C nyelv 7. gyakorlat. Függvények. Függvények(2)

Programozás alapjai C nyelv 7. gyakorlat. Függvények. Függvények(2) Programozás alapjai C nyelv 7. gyakorlat Szeberényi Imre BME IIT Programozás alapjai I. (C nyelv, gyakorlat) BME-IIT Sz.I. 2005.11.05. -1- Függvények C program egymás mellé rendelt függvényekből

Részletesebben

Alapismeretek. Tanmenet

Alapismeretek. Tanmenet Alapismeretek Tanmenet Alapismeretek TANMENET-Alapismeretek Témakörök Javasolt óraszám 1. Számítógépes alapfogalmak 2. A számítógép felépítése, hardver, A központi egység 3. Hardver Perifériák 4. Hardver

Részletesebben

GPGPU: Általános célú grafikus processzorok cgpu: computational GPU GPGPU = cgpu Adatpárhuzamos gyorsító: dedikált eszköz, ami eleve csak erre

GPGPU: Általános célú grafikus processzorok cgpu: computational GPU GPGPU = cgpu Adatpárhuzamos gyorsító: dedikált eszköz, ami eleve csak erre GPGPU: Általános célú grafikus processzorok cgpu: computational GPU GPGPU = cgpu Adatpárhuzamos gyorsító: dedikált eszköz, ami eleve csak erre szolgál. Nagyobb memória+grafika nélkül (nincs kijelzőre kimenet)

Részletesebben

Hatékony memóriakezelési technikák. Smidla József Operációkutatási Laboratórium január 16.

Hatékony memóriakezelési technikák. Smidla József Operációkutatási Laboratórium január 16. Hatékony memóriakezelési technikák Smidla József Operációkutatási Laboratórium 2014. január 16. 1 Tartalom A cache áthidalása Cache optimalizálás Adatszerkezetek tervezése A programkód szerkezete Prefetch

Részletesebben

"A tízezer mérföldes utazás is egyetlen lépéssel kezdődik."

A tízezer mérföldes utazás is egyetlen lépéssel kezdődik. "A tízezert mérföldes utazás is egyetlen lépéssel kezdődik dik." A BINB INSYS Előadók: Kornafeld Ádám SYS PROJEKT Ádám MTA SZTAKI kadam@sztaki.hu Kovács Attila ELTE IK attila@compalg.inf.elte.hu Társszerzők:

Részletesebben

Projekt beszámoló. NEWSIT News basedearlywarning System forintradaytrading: Hír alapú Korai Figyelmeztető Rendszer Napon belüli Kereskedéshez

Projekt beszámoló. NEWSIT News basedearlywarning System forintradaytrading: Hír alapú Korai Figyelmeztető Rendszer Napon belüli Kereskedéshez Projekt beszámoló Projekt azonosítója: Projektgazda neve: Projekt címe: DAOP-1.3.1-12-2012-0080 Pénzügyi Innovációs Iroda Kft. NEWSIT News basedearlywarning System forintradaytrading: Hír alapú Korai Figyelmeztető

Részletesebben

Virtualizáció. egy hardveren több virtuális rendszer működik egyszerre, virtuális gépekben futó önálló vendég (guest) operációs rendszerek formájában

Virtualizáció. egy hardveren több virtuális rendszer működik egyszerre, virtuális gépekben futó önálló vendég (guest) operációs rendszerek formájában Virtualizáció Virtualizáció fogalma: Virtualizáció egy hardveren több virtuális rendszer működik egyszerre, virtuális gépekben futó önálló vendég (guest) operációs rendszerek formájában A virtualizáció

Részletesebben

Programozás II. 2. Dr. Iványi Péter

Programozás II. 2. Dr. Iványi Péter Programozás II. 2. Dr. Iványi Péter 1 C++ Bjarne Stroustrup, Bell Laboratórium Első implementáció, 1983 Kezdetben csak precompiler volt C++ konstrukciót C-re fordította A kiterjesztés alapján ismerte fel:.cpp.cc.c

Részletesebben