GPGPU labor II. GPU mint vektor processzor. Kezdeti teendők Tantárgy honlapja, Bevezetés – Alap könyvtárak letöltése Tantárgy honlapja, GPU mint vektor.

Slides:



Advertisements
Hasonló előadás
 Árnyalási egyenlet  Saját emisszió  Adott irányú visszaverődés.
Advertisements

GPU Szirmay-Kalos László.
3D képszintézis fizikai alapmodellje
Térfogatvizualizáció Szirmay-Kalos László. Térfogati modellek v(x,y,z) hőmérséklet sűrűség légnyomás potenciál anyagfeszültség... v(x,y,z) tárolás: 3D.
Bevezetés a tárgyakhoz Tárgyak  Objects are the containers for values of a specified type  Objects are either signals, variables or constants  Once.
FelültöltésVHDL Felültöltés (Overloading) n Áttekintés n Példák.
Szécsi László. June 2010 DirectX SDK Visual Studio 2010.
 Lineáris egyenlet  algebrai egyenlet  konstansok és első fokú ismeretlenek  pl.: egyenes egyenlete  Lineáris egyenletrendszer  lineáris egyenletek.
 Gauss szűrő uniform sampler2D colorMap; const float kernel[9] = float[9]( 1.0, 2.0, 1.0, 2.0, 4.0, 2.0, 1.0, 2.0, 1.0); out vec4 outColor; void main(){
GPGPU labor I. OpenGL, Cg.
 Fény fotonok szimulációja  Nem változtatja meg a frekvenciát ütközéskor  Homogén és inhomogén közegben.
 Nincs szinkronizáció és kommunikáció  Csővezeték alkalmazása  Párhuzamosítás Proc 2Proc 1 Csővezeték Proc 1 Proc 21 Proc 22 Párhuzamosság.
GPGPU labor V. GPU ray tracing. Kezdeti teendők Tantárgy honlapja, GPU ray tracing A labor kiindulási alapjának letöltése (lab5_base.zip), kitömörítés.
Socket programozás Példák
Ellenőrző kérdések a)Auto-indexing enabled b)Auto-indexing disabled c)Nem eldönthető 1.
2012. március 21. Paulik Áron.  Neve: switch switch (i) { case 1: cout
Oracle multimédia Kiss Attila Információs Rendszerek Tanszék
A megértés körei Binzberger Viktor Budapest Műszaki és Gazdaságtudományi Egyetem Filozófia és Tudománytörténet Tanszék.
Elektroanalitikához segédábrák Az ábrák több, részben szerzői jogokkal védett műből, oktatási célra lettek kivéve. Csak az intranetre tehetők, továbbmásolásuk,
Fejlett grafikai algoritmusok Megvilágítási modellek
Web-grafika (VRML) 1. gyakorlat Nyitrai Erika Varga Balázs.
Gábor Dénes Főiskola (IAI)Programozási technológia (Java) - III. / 1 13.Állományok, bejegyzések 14.Folyamok 15.Közvetlen hozzáférésű állomány.
Hasznos ismeretek Hogyan bővítsük ismereteinket AVRDUDEflags -E noreset.
Könyvtár, csomag és alprogramokVHDL Könyvtár, csomag és alprogram n Library és use n Package n Alprogramok –Procedure –Function –Resolution function Egy.
Térfogatvizualizáció Szirmay-Kalos László. Térfogati modellek v(x,y,z) hőmérséklet sűrűség légnyomás potenciál anyagfeszültség... v(x,y,z) tárolás: 3D.
Térfogatvizualizáció
Motor II. Env map Spotlight Szécsi László. Letöltés /code/E/code/EggCoreSecondBase.zip Kibontani (vagy előző labor folyt.):
Fraktálok és csempézések
Motor I. Scene graph XML Rendering Szécsi László.
Vízfelület Szécsi László. Nyílt víz a nyílt óceánon a felületi cseppecskék körmozgást végeznek trochoid hullámforma hullámhossz hullámmagasság amplitúdó.
PhysX integráció Szécsi László. Letöltés diák: bagira.iit.bme.hu/~szecsi/GraphGame //l11-physx.ppt modell: bagira.iit.bme.hu/~szecsi/GraphGame //pickup.zip.
Transzformációk, textúrák, árnyalás Szécsi László.
DirectX9 empty project Szécsi László. Project létrehozása Microsoft DirectX SDK (August 2008) telepítése Start Menu \ Microsoft DirectX SDK (August 2008)\
Motor V. Ütközés detektálás és válasz Szécsi László.
V. labor Thread, animáció. Animáció A figurák a lépés kijelölése után nem rögtön az új helyen teremnek, hanem egyenes vonal mentén mozognak a cél felé.
OIS. Kezdeti teendők Letöltés: OgreLabControllersBase.zip Kicsomagol, betölt:.sln Additional include és library path beállítása Working directory beállítása.
SzgLab 3. Java. I. labor Alapok, OOP váz, megjelenítés konzolon.
Térfogatvizualizáció
II. labor Lépések kezelése. Új metódus a Square osztályba public static int letterToFileIndex(char letter) throws NumberFormatException { int i = 0; for.
IIII. labor Képfileok kezelése (media resources) Canvas Egérkezelés.
III. labor AWT, eseménykezelés Applet. Új class: ButtonView import java.awt.*; import java.awt.event.*; import java.util.LinkedList; public class ButtonView.
Kamera, 3D, transzformációk Szécsi László. Math.zip kibontása az Egg projectkönyvtárba – float2, foat3, float4 típusok, HLSL-ben megszokott műveletekkel.
Többmenetes renderelés Grafikus játékok fejlesztése Szécsi László g11-multipass.
Grafikus játékok fejlesztése Szécsi László t09-texture
User interface Szécsi László. Egg projectben DXUTgui.cpp – CDXUTDialogResourceManager::CDXUTDialogReso urceManager() m_SpriteBufferBytes11 = 0; ezt kihagyták,
Textúrázás Szécsi László. giraffe.jpg letöltése SolutionDir/Media folderbe.
Rekurzív algoritmusok
 MipMap  glTexImage2D(GL_TEXTURE_2D, level, GL_RGBA32F,...);  glFramebufferTexture2D(GL_FRAMEBUFFER,..., TexID, mipLevel);
 Map  Reduce  Scan  Histogram  Compact const size_t dataSize = 1024; cl_kernel mapKernel = cl.createKernel(clProgram, "map"); float* hData = new.
 Kvantált kép fényesség értékei: G [ 0, Gmax ]  G fényességű pontok száma: P(G)
GPGPU labor XII. Tomográfiás rekonstrukció. Kezdeti teendők Tantárgy honlapja, Monte Carlo szimuláció A labor kiindulási alapjának letöltése (lab12_base.zip),
GPGPU labor X. Monte Carlo módszerek. Kezdeti teendők Tantárgy honlapja, Monte Carlo módszerek A labor kiindulási alapjának letöltése (lab10_base.zip),
GPGPU labor III. Iteratív algoritmusok. Kezdeti teendők Tantárgy honlapja, Iteratív algoritmusok A labor kiindulási alapjának letöltése (lab3base.zip),
GPGPU labor IX. Lineáris egyenletrendszerek megoldása.
GPGPU Labor 15.. Párhuzamos primitívek Map Reduce Scan Histogram Compact.
Számítógépes grafika DirectX 5. gyakorlat. Emlékeztető Háromdimenziós alapok befejezése Textúrázás.
HTTP kommunikáció Androidon HttpClient-en keresztűl HttpPost/HttpGet objektum használatával HttpClient execute metódusának meghívása.
 OpenCL platform  Számító eszközök  OpenCL kontextusok  Parancs sorok  Szinkronizáció  Memória objektumok  OpenCL programok  OpenCL függvények.
ELTE-IK, Számítógépes grafika 2./haladó 2. gyakorlat Klár Gergely.
1 Mivel foglalkozunk a laborokon? 7. hét: Do-Loop-Until Do-Until-Looptömbök Function 7. hét: Do-Loop-Until és Do-Until-Loop ciklusok. Egy indexes tömbök,
1 Mivel foglalkoz(t)unk a laborokon? 1.Labor: Word alapok Excel alapok: Excel alapok: Cellahivatkozás, munkalapfüggvény, diagram varázsló, trendvonal 2.
Excel programozás (makró)
Képek, képfeldolgozás Szirmay-Kalos László.
Vizualizáció és képszintézis Térfogati textúrák kezelése (Dart + GLSL) Szécsi László.
Általános célú számítások a GPU-n
Vizualizáció és képszintézis
Lineáris egyenletrendszerek megoldása
GPGPU – CUDA 2..
Integrálva….
Systems Hardware Business challenge
Előadás másolata:

GPGPU labor II. GPU mint vektor processzor

Kezdeti teendők Tantárgy honlapja, Bevezetés – Alap könyvtárak letöltése Tantárgy honlapja, GPU mint vektor processzor – Labor alapjának letöltése – GPGPU\Labs könyvtárba kitömörítés GPGPU\Labs\lab02\GPGPU Lab02\ (Solution)

Fordítás, futtatás

Fullscreen quad Globális változó: Quad* fullscreenQuad; Shader* simpleShader; Init: fullscreenQuad = new Quad(); simpleShader = new Shader("passthrough.vert", "simple.frag"); Display: simpleShader->enable(); fullscreenQuad->render(simpleShader); simpleShader->disable();

Passthrough.vert (lab2\bin) #version 130 in vec4 position; in vec2 texCoord; out vec2 fTexCoord; void main(void) { // TODO }

Simple.frag (lab2\bin) #version 130 out vec4 outcolor; void main() { // TODO }

Próba

Textúra koordináták #version 130 out vec4 outcolor; in vec2 fTexCoord; void main() { // TODO }

Mandelbrot halmaz // TODO // c = texcoord * zoom + center // z = c // // Iteration // Julia := z^2 + c // Mandelbrot := z^2 + k // // IF divergent: outcolor := 0 // ELSE outcolor := 1 void mandelbrot(){ // TODO }

Próba

Önálló feladat Tegyük a billentyűzetről változtathatóvá a K, center és zoom paramétereket! – shader->bindUniformFloat2("k", kReal, kIm); – shaderben: const -> uniform Alkalmazzunk a divergencia sebességnek megfelelő álszinezést!

Textúra Globális változó: Texture2D* texture; Init texture = new Texture2D(); texture->loadFromFile(std::string("lena.jpg")); Shaderbe kötés – shader->bindUniformTexture("textureMap", texture->getTextureHandle(), 0); – Shaderben: uniform sampler2D textureMap

Threshold // Threshold Shader* shaderThreshold; float thresholdValue = 0.5f; void threshold(){ }

Init: shaderThreshold = new Shader("passthrough.vert", "threshold.frag"); Display: case 2: glutReshapeWindow(texture->getWidth(), texture->getHeight()); threshold(); break; Keyboard: case '2': example = 2; break;

threshold.frag #version 130 uniform sampler2D textureMap; uniform float threshold; in vec2 fTexCoord; out vec4 outColor; float I (vec2 coord){ vec4 color = texture(textureMap, coord); return(dot(color.rgb, vec3(0.21, 0.39, 0.4))); } // TODO // IF I(ftexcoord) > threshold: outcolor = 1 // ELSE outcolor := 0 void main() { }

Élkeresés // Edge detection Shader* shaderEdgeDetection; void edgeDetection(){ }

Init: shaderEdgeDetection = new Shader("passthrough.vert", "edgeDetection.frag"); Display: case 3: glutReshapeWindow(texture->getWidth(), texture->getHeight()); edgeDetection(); break; Keyboard: case '3': example = 3; break;

edgeDetection.frag // TODO // Gradient := LOOP i = 1..9 : I(texcoord + offset[i]) * kernel[i] // outcolor := sqrt(Gradient) * 8.0 void main(){ float step_w = 1.0/textureSize.x; float step_h = 1.0/textureSize.y; vec2 offset[9] = vec2[9](…); outColor = vec4(0.0); }

Önálló feladat Prewitt filter Sobel filter

Konvolúció // Convolution Shader* shaderConvolution; void convolution(){ }

Init: shaderConvolution = new Shader("passthrough.vert", "convolution.frag"); Display: case 4: glutReshapeWindow(texture->getWidth(), texture->getHeight()); convolution(); break; Keyboard: case '4': example = 4; break;

convolution.frag // TODO // outcolor := LOOP i = 1..9 : texture2D(textureMap, texcoord + offset[i]) * kernel[i] / 16.0 void main(){ float step_w = 1.0/textureSize.x; float step_h = 1.0/textureSize.y; vec2 offset[9] = vec2[9](…); outColor = vec4(0.0); }

Önálló munka egyéb szűrők – pl. élesítés

Vége