Physikalische Simulationen mit. 9. Vorlesung GPU Programmierung Thorsten Grosch
|
|
- Sofia Lorenz
- vor 7 Jahren
- Abrufe
Transkript
1 Physikalische Simulationen mit CUDA 9. Vorlesung g Thorsten Grosch
2 Übersicht Verschiedene physikalische Simulationen mit CUDA Deformationen Wärmeausbreitung Lichtausbreitung Können oft parallelisiert werden Verbindung CUDA mit OpenGL Quelle: NVIDIA 2
3 CUDA / OpenGL
4 Anzeige Bild Für die Anzeige haben wir bisher folgendes verwendet cudamemcpy( pixels, devptr, size, cudamemcpydevicetohost ); gldrawpixels( width, height,, pixels ); Da sich die Pixeldaten bereits auf der GPU befinden sind dies zwei unnötige Kopiervorgänge Kann durch Verwendung von PixelBufferObjects (PBOs) vermieden werden 4
5 CUDA-OpenGL GLKommunikation i durch hpixelbufferobjects Gemeinsamer Buffer für OpenGL und CUDA reservieren Unterschiedlicher Name für denselben Speicherbereich #include cuda_gl_interop.h GLuint bufferobj; cudagraphicsresource *resource; 5
6 GPU Device auswählen Wähle eine GPU mit CUDA Fähigkeit aus device cudadeviceprop prop; int dev; memset( &prop, 0, sizeof( cudadeviceprop ) ); prop.major =1; prop.minor = 0; cudachoosedevice( &dev, &prop ); CUDA GL Device setzen Diese GPU wird auch für OpenGL Anzeige verwendet cudaglsetgldevice( dev ); Danach GLUT Init 6
7 GPU Device auswählen Pixel Buffer Object (PBO) anlegen Speicher für Pixeldaten, ähnlich zu VBO usw. glgenbuffers( 1, &bufferobj ); glbindbuffer( GL_PIXEL_UNPACK_BUFFER_ARB, bufferobj ); glbufferdata( GL_PIXEL_UNPACK_BUFFER_ARB, sizeinbytes, NULL, GL_DYNAMIC_DRAW_ARB DRAW ARB ); glbindbuffer( GL_PIXEL_UNPACK_BUFFER_ARB, 0 ); Buffer bei CUDA anmelden: resource bufferobj cudagraphicsglregisterbuffer( &resource, bufferobj, cudagraphicsmapflagsnone ) ); 7
8 Drawpixels In der display Funktion Buffer Object mappen devptr für den Kernel cudagraphicsmapresources( 1, &resource, NULL ); cudagraphicsresourcegetmappedpointer( (void**)&devptr, &size, resource); kernelcall<<< >>>(devptr ); cudagraphicsunmapresources( 1, &resource, NULL ); Nach unmap unmap kann der Buffer gezeichnet werden Wenn PixelBufferObject gebunden ist, dann zeichnet gldrawpixels das aktuelle PBO (der data-pointer ist dann ein offset) Daten bleiben auf fgpu, keine Kopieraktionen i GPU CPU glbindbuffer( GL_PIXEL_UNPACK_BUFFER_ARB, bufferobj ); gldrawpixels( DIM, DIM, GL_LUMINANCE, LUMINANCE, GL_FLOAT, 0 ); 8
9 Freigabe Buffer Object und Resource löschen cudagraphicsunregisterresource(resource); gldeletebuffers(1, &bufferobj); Ähnliche Verknüpfung auch für Vertex Buffer Object möglich 9
10 Wärmeausbreitung
11 Wärmeausbreitung auf der GPU Die GPU eignet sich gut zum numerischen Lösen von Differentialgleichungen Einfache Operationen auf (2D) Gitter z.b. Wärmeausbreitung Hier vereinfachtes Modell, keine physikalische Korrektheit Raum = 2D Grid Einige Zellen sind (konstante) Wärmequellen Einige Zellen sind konstant kalt (Hindernisse) Die Übertragung der Wärme erfolgt zu den Nachbarzellen Wie sieht die resultierende Wärmeverteilung im Raum aus? 11
12 Wärmeausbreitung auf der GPU Die Wärmeübertragung ist dabei proportional zur Differenz der beiden benachbarten Werte z.b. Übertragung gnach rechts Δ f r = c ( f ( x + 1) f ( x)) c = c gibt dabei die Geschwindigkeit der Wärmeübertragung an BiB Bei Berücksichtigung ükihi aller vier Nachbarpixel ergibt sich Iteration Δ f = c ( f ( x + 1) + f ( x 1) + f ( y + 1) + f ( y 1) 4 f ( x )) Δf f Pro Pixel berechnen (parallel) und auf addieren 0 12
13 Wärmeausbreitung auf der GPU Konvergierter Zustand In jede Zelle fliesst genausoviel Wärme herein wie heraus c = Δf = Wird nach vielen Iterationen erreicht D Grid, Blockaufteilung beliebig Jeder Thread berechnet eine Zelle Umsetzung mit Texturspeicher (Cache ausnutzen) Ping-PongP Rendering 2. Iteration 13
14 KernelFunktion Blend global void blend_kernel( float *dst, bool dstout ) { // map from threadidx/blockidx to pixel position int x = threadidx.x + blockidx.x * blockdim.x; int y = threadidx.y + blockidx.y * blockdim.y; int offset = x + y * blockdim.x * griddim.x; // 1D Textur int left = offset - 1; // Randbehandlung int right = offset + 1; if (x == 0) left++; if (x == DIM-1) right--; int top = offset - DIM; int bottom = offset + DIM; if (y == 0) top += DIM; if (y == DIM-1) bottom -= DIM; 14
15 KernelFunktion Blend (2) } float t, l, c, r, b; if (dstout) { // Ping-Pong Rendering t = tex1dfetch(texin,top); // texin = source texture l = tex1dfetch(texin,left); c = tex1dfetch(texin,offset); r = tex1dfetch(texin,right); b = tex1dfetch(texin,bottom); } else { t = tex1dfetch(texout,top); // texout = source texture l = tex1dfetch(texout,left); c = tex1dfetch(texout,offset); r = tex1dfetch(texout,right); b = tex1dfetch(texout,bottom); } dst[offset] = c + SPEED * (t+b+r+l * c); // Übertragung 15
16 KernelFunktion CopyConstC // konstante Wärmequellen in jeder Iteration einfuegen global void copy_const_kernel( float *iptr ) { // map from threadidx/blockidx to pixel position int x = threadidx.x + blockidx.x * blockdim.x; int y = threadidx.y + blockidx.y * blockdim.y; int offset = x + y * blockdim.x * griddim.x; } float c = tex1dfetch(texconstsrc,offset); if (c!= 0) iptr[offset] = c; 16
17 Display Funktion void display() { if (dstout) { in = dev_insrc; // Speicheradresse fuer Textur1 out = dev_outsrc; // Speicheradresse fuer Textur2 } else { out = dev_insrc; in = dev_outsrc; } copy_const_kernel<<<blocks,threads>>>( in ); blend_kernel<<<blocks,threads>>>( out, dstout ); dstout =!dstout; // Ping-Pong } 17
18 Bi Beispiel ilwärmeausbreitung Zeit 18
19 N-Body Problem
20 N-Body Problem Gegeben: N Partikel Jedes Partikel hat eine Masse m und wirkt (Gravitations-)Kraft auf alle anderen Partikel aus Gesucht: Position und Geschwindigkeit der Partikel zu Zeitpunkt t Gravitation F = G ij m m i 2 ij r j G = Gravitationskonstante 20
21 Gesamtkraft als Vektor v F ij = G m m m m v r i j i j ij rij,0 = G = 2 2 ij rij rij r v G m m i r 3 ij j v r ij v N v F i = F ij j= 1 F v F v 1 12 F v 13 F v 14 Um die Singularität ität bei r = 0 zu vermeiden, kann z.b. eine Konstante im Nenner addiert werden 21
22 Physikalische h Größen Zur Bewegung gder Partikel benötigen wir einige physikalische Grundgesetze v F = v a = v = v ma v dv dt dx v dt Kraft = Masse * Beschleunigung Beschleunigung g = Änderung Geschwindigkeit pro Zeit Geschwindigkeit = Änderung Position pro Zeit 22
23 Physikalische h Größen Die (Gesamt-)Kraft auf ein Partikel muß in eine Änderung der Position und Geschwindigkeit des Partikels umgerechnet werden v a ( t ) v F( t) m = Beschleunigung aus Kraft bestimmen v v v ( t + dt) = ( t) + a( t) dt Neue Geschwindigkeit v v v x ( t + dt) = x( t) + ( t) dt Neue Position (hier kann auch schon v(t+dt) verwendet werden) 23
24 N-Body einfacher Pseudocode d calcforces for all particles i { F_i = 0 for all particles j{ F_ij = G * m_i * m_j / (r*r) F_i += F_ij } } integrate for all particles i { a_i = F_i / m_i v_i = v_i + a_i * dt x_i = x_i + v_i * dt } Die Dauer des Zeitschritts dt wird durch den Benutzer vorgegeben main for (t = 1.. numtimesteps) { calcforces integrate draw } v ( t 2 ) v ( t 1 ) v x v ( t 1 ) x(t 0 ) x v ( t 2 ) 24
25 N-Body erste Idee calcforces: Ersetze die äußere Schleife (for all particles i ) durch N parallele Threads Jeder Thread wertet die innere Schleife aus, im Idealfall ll gilt dann O(N*N) O(N) integrate: ebenfalls durch N parallele Threads berechnen 1D Grid, N Threads, Blockaufteilung (zunächst) beliebig 25
26 Berechnung der Kräfte (einfache Version) global void calcforcessimple(float4* positions, float4* forces, float mass, int numbodies) { int index = blockidx.x * blockdim.x + threadidx.x; float4 pos = positions[index]; float4 force = make_float4(0.0f, 0.0f, 0.0f, 0.0f); float4 r; float G = 1.0f / f; // set G to arbitrary constant float softeningsquared = 0.01; for (int j = 0 ; j < numbodies ; j++) { r.x = positions[j].x - pos.x; r.y = positions[j].y - pos.y; r.z = positions[j].z - pos.z; float distsqr = r.x * r.x + r.y * r.y + r.z * r.z; distsqr += softeningsquared; float invdist = 1.0f / sqrtf(distsqr); float invdistcube = invdist * invdist * invdist; float scale = mass * mass *G G; force.x += scale * invdistcube * r.x; force.y += scale * invdistcube * r.y; force.z += scale * invdistcube * r.z; } forces[index].x = force.x; forces[index].y = force.y; forces[index].z = force.z; GPU } Programmierung v F ij = G m m i 3 ij r j v r Leider keine Vektor-Operatoren in CUDA Aber: Operatoren können überladen werden ij 26
27 Berechnung neue Positionen i /Geschwindigkeiten i global void integratebodies(float4* newposdev, float4* newveldev, float4* oldposdev, float4* oldveldev, float4* forcesdev, float mass, float deltatime) { int index = blockidx.x * blockdim.x + threadidx.x; float4 pos = oldposdev[index]; float4 vel = oldveldev[index]; float4 force = forcesdev[index]; } v F ) m float4 newvel, accel; accel.x = force.x / mass; v F ( t accel.y = force.y / mass; a( t) = accel.z = force.z / mass; newvel.x = vel.x + accel.x * deltatime; newvel.y = vel.y + accel.y * deltatime; newvel.z = vel.z + accel.z * deltatime; newveldev[index].x = newvel.x; newveldev[index].y VlD = newvel.y; Vl newveldev[index].z = newvel.z; newposdev[index].x = pos.x + newvel.x * deltatime; newposdev[index].y ]y= pos.y + newvel.y * deltatime; newposdev[index].z = pos.z + newvel.z * deltatime; v v v ( t + dt) = ( t) + a( t) dt v v x ( t + dt ) = x ( t ) + v ( t ) dt 27
28 N-Body Verbesserung Problem bei einfacher Variante: Es funktioniert, aber: Zu viele (langsame) Speicherzugriffe Jeder der N Threads liest die gleichen N Positionen aller Partikel N*N Speicherzugriffe iff [Nyland et al. GPU Gems 3] Verwende 1D Grid der Größe N / p, also p Threads pro Block Jeder Thread hat Schleife über alle Blöcke Pro Schleifendurchlauf: Jeder Thread berechnet nur die Interaktionen mit den p Partikeln des aktuellen Blocks Die Positionen der p Partikel werden dazu im Shared Memory eingetragen (jeder Thread kopiert einen Wert paralleles Lesen möglich, siehe nächste Vorlesung) Danach kommt der nächste Block dran (sync!) 28
29 N-Body Verbesserung schematisch h [Nyland et al. GPU Gems 3] 1. Lade Partikel 1-4 in Shared Memory (jeder Thread kopiert ein Partikel) 2. Sync 3. Berechne Kräfte der Partikel 1 4 (auf alle Partikel parallel) 4. Sync 5. Lade Partikel 5 8 ins Shared Memory (jeder Thread kopiert ein Partikel) 6. Sync 7. Berechne Kräfte der Partikel 5 8 (auf alle Partikel parallel) 8. Sync 29
30 Berechnung der Kräfte mit Shared Memory Kernel enthält Schleife über alle Blöcke (tiles) Shared Memory wird mit Positionen gefüllt Berechnung der Kräfte von Partikeln aus Shared Memory global void calcforces(float4* positions, float4* forces, float mass, int numbodies) { shared float4 positioncache[blocksize]; int index = blockidx.x * blockdim.x + threadidx.x; float4 pos = positions[index]; float4 force = make_float4(0.0f, 0f 0.0f, 0f 0.0f, 0f 0.0f); 0f); float4 r; float G = 1.0f / f; // set G to arbitrary constant float softeningsquared = 0.01; for (int tile = 0 ; tile < griddim.x ; tile++) { positioncache[threadidx.x] = positions[tile * blockdim.x + threadidx.x]; syncthreads(); 30
31 Berechnung der Kräfte mit Shared Memory for (int j = 0 ; j < blockdim.x ; j++) { r.x = positioncache[j].x - pos.x; r.y = positioncache[j].y - pos.y; r.z = positioncache[j].z - pos.z; float distsqr = r.x * r.x + r.y * r.y + r.z * r.z; distsqr += softeningsquared; float invdist = 1.0f / sqrtf(distsqr); float invdistcube = invdist * invdist * invdist; float scale = mass * mass * G; v F ij = G m im j 3 r ij v r ij force.x += scale * invdistcube * r.x; force.y += scale * invdistcube * r.y; force.z += scale * invdistcube * r.z; } } syncthreads(); } forces[index].x = force.x; forces[index].y ]y= force.y; forces[index].z = force.z; forces[index].w = 0.0f; 31
32 Zi Zeitmessung Laptop, NV 9600M GT 4096 Partikel Messung für Kernel Aufruf von calcforces & integrate Ohne Shared Memory: ~58 ms Mit Shared Memory: ca 8 x schneller Genauere Untersuchung: siehe [Nyland et al. GPU Gems 3] BlockSize Zeit (ms) mit Shared Memory Viele Sync Aufrufe nicht alle Multiprozessoren ausgelastet 32
33 NB Body Partikel [Nyland et al. GPU Gems 3] Partikel 2^28 = 256 Millionen Interaktionen NV 8800 GPU: ca. 10 Billionen Interaktionen pro Sekunde NV 8800 GPU ca. 50x schneller als CPU 33
34 Erweiterungen Die hier verwendete Integration ist eine einfache Euler- Integration Es muss ein kleiner Zeitschritt gewählt werden, sonst driften die berechneten Positionen immer weiter von der exakten Lösung weg Schlauere Integrationsverfahren Predictor-Corrector, Runge-Kutta, Bei der Berechnung der Kräfte müssen nicht unbedingt alle N*N Kombinationen berechnet werden Verschiedene Ansätze, durch hcluster-bildung die Anzahl zu reduzieren (ersetze Gruppe von M entfernten Partikeln durch ein Partikel mit Gesamtmasse nur kleiner Fehler) [Yokota and Barba, GPU Computing Gems 2011][Barnes and Hut 1986][Greengard and Rokhlin 1987] 34
35 Masse-Feder System
36 Masse-Feder Fd Systeme Deformierbare Oberfläche/Volumen aus Punkten Kräfte zwischen benachbarten Massepunkten Feder Federkraft prop. Auslenkung (Hooke sches Gesetz) Vergleich zu N-Body Nur direkte Nachbarn (z.b. 4) Kraft prop. r (statt 1/r*r) Gleiche Integration Beispiel: Stoff siehe Übung, oder Wasseroberfläche 36
37 Fd Federkraft Die Feder hat eine Originallänge g r0 Die Kraft ist proportional zur Auslenkung r - r0 Die Gesamtkraft auf Partikel i ergibt sich durch Summe über alle Kräfte der anhängenden Federn: v v F i = F ij j NachbarnN F v ij F x ij i = r ij,0 k ( r r 0) ij ij, F v x r ij r ij,0 ji k: Federkonstante j v F i = v m a i Umrechnung in Position, Geschwindigkeit: siehe N-Body (gleiche integrate-funktion) i v F ij x j x i = x j xi v v F ji = F ij F ij 37
38 Zusätzliche Kräfte Reibung: FR Wirkt entgegen zum Geschwindigkeitsvektor F v Proportional zum Betrag der ij Geschwindigkeit Dämpfung, sonst endlose F v Ri x i Schwingung v F R Gravitation: FG v = μ Konstante t Kraft nach unten F v F G = 0 0 mg v F G v r i x j 38
39 Bi Beispiel: ilcloth hsimulation i Federkräfte, Dämpfung, Gravitation (außer an zwei Eckpunkten, hier wird dastuch festgehalten) Siehe Übung 39
40 Micro Rendering
41 Vergleich hlokale l globale l Beleuchtung Globale Beleuchtung Simulation aller Lichtwege von der Lichtquelle bis zum Auge Indirektes Licht, Spiegelungen, weiche Schatten, Ziele: Photorealistische Darstellung Echtzeitdarstellung, also mind. 25 Bilder / sek. Virtuelle 3D Szene, keine Beleuchtung Lokale Beleuchtung: Nur direktes Licht Schnell, aber künstlich Globale Beleuchtung: Photorealistisch, aber zeitaufwändig 41
42 Globale l Beleuchtung Direktes Licht Lichtquelle Reflexion an Oberfläche Auge Einfach zu berechnen Indirektes Licht Lichtquelle mehrfach an Oberfläche reflektiert Auge Schwierig zu berechnen Licht an einem Punkt hängt L o von Licht an allen anderen b v v ω i Punkten ab ωo Integralgleichung x L o v ( x, ω ) o v v v v v = L ( x, ω ) + f ( x, ω, ω ) cosθ L ( x, ω ) dω e o 2π sr r Das Licht an einem Punkt x in Richtung des Betrachters ergibt sich aus der Eigenemission i i an x plus dem Licht aus allen einfallenden Richtungen, das in Richtung des Betrachters reflektiert wird Siehe Master-Vorlesung Photorealistische Computergrafik i o f r i i y L i i 42
43 Indirektes Licht kann man z.b. so berechnen Pro Pixel im Bild wird die Szene mit direkte Licht aus der Sicht des zugehörigen 3D-Punkts tsgezeichnet ec et( (Blickrichtung c = Flächennormale) ae) Für den Punkt y (vorige Folie) wird also nur das direkte Licht berechnet Das indirekte Licht (1 x reflektiert) am 3D-Punkt ergibt sich dann als Summe der Pixelhelligkeiten 43
44 Indirektes Licht mit CUDA Idee: Parallel pro Pixel das Bild zeichnen (1 Thread pro Pixel) Direktes Rendering mit CUDA schwierig Also: alternative Darstellung der Szene 44
45 QSplat Schnelles Rendering von grossen Punkt-Modellen Punkthierarchie Genauer: oriented disks Berechne Cut durch Punkthierarchie Wenn ein innerer Knoten auf nur ein Pixel abgebildet wird, keine weitere Traversierung des Teilbaums Cut QSplat: Insgesamt 127 Mio Punkte Nur ~300k gezeichnet 5-10 fps Szymon Rusinkiewicz and Marc Levoy: QSplat: A Multiresolution Point Rendering System for Large Meshes SIGGRAPH 2001 Michelangelo: St. Mathew (unfinished) Before
46 Indirektes Licht mit CUDA Idee: Verwende beleuchtete Punkthierarchie mit direktem Licht Jeder Thread traversiert die Hierarchie Splatting in eigenen, kleinen Framebuffer pro Pixel (= 2D Array im Thread) Danach hberechnet jeder Thread ddie Summe aller Werte im 2D Array (= Reduce) 46
47 Micro Rendering Pro Pixel im Bild wird das direkte Licht aus der Sicht des zugehörigen 3D- Punkts in den Micro coframebuffer e gezeichnet e et (mit z-buffer) Dazu wird die beleuchtete Punkthierarchie traversiert Das indirekte Licht am 3D-Punkt ergibt sich dann als Summe der Micro-Pixel [Ritschel, Engelhardt, Grosch, Seidel, Kautz, Dachsbacher] SIGGRAPH ASIA
48 Traversierung Hierarchie Keine Rekursion auf der GPU Baumtraversierung schwierig Alternative: ti Baumtraversierung durch eigenen Stack Oder: Child- und Skip-Pointer 48
49 Child / Skip Pointer Traversierung ohne Stack möglich Child: linkes Kind Skip: Knoten, bei dem die Traversierung fortsetzt, wenn der Teilbaum unterhalb des aktuellen Knotens übersprungen wird Knoten werden in 1D Array gespeichert Vorberechnung (CPU), Baum bleibt statisch Traversierung kompletter Baum: falls Child!= NULL : verfolge Child-Pointer sonst: verfolge Skip-Pointer QSplat Falls Projektion von aktuellem Knoten > 1 Pixel : Verfolge Child-Pointer Sonst : Zeichne Pixel Verfolge Skip-Pointer 49
50 Micro Rendering Video 50
51 Micro Rendering Hierarchie 51
52 Glossy Final Gather Photon Mapping Simulation (CPU, offline) Export von beleuchteten (diffusen) Surfels Glossy Final Gather mit Micro Rendering, 2 fps 52
53 Micro Rendering Vergleich Micro Rendering Path Tracing Referenzlösung, Minuten-Stunden (Monte-Carlo-Simulation) 53
54 Zusammenfassung Diverse physikalische Simulationen: Heat, N-Body, Masse- Feder, Lichtsimulation (Microrendering) CUDA-OpenGL Nächste Woche: Ki Keine Vorlesung (Pfingsten), aber Übung In zwei Wochen: letzte reguläre Vorlesung: z.b. GPU Sortierverfahren In drei Wochen: Keine Vorlesung Danach noch eine Vorlesung mit Wiederholung & Fragen zur Klausur 54
Programmierbeispiele und Implementierung. Name: Michel Steuwer E-Mail: michel.steuwer@wwu.de
> Programmierbeispiele und Implementierung Name: Michel Steuwer E-Mail: michel.steuwer@wwu.de 2 > Übersicht > Matrix Vektor Multiplikation > Mandelbrotmenge / Apfelmännchen berechnen > Kantendetektion
MehrCUDA. 7. Vorlesung GPU Programmierung. Danke an Hendrik Lensch
CUDA 7. Vorlesung Thorsten Grosch Danke an Hendrik Lensch Parallele l Programmierung mit der GPU Bisher: GPU = OpenGL Pipeline mit Shadern Alles orientiert sich am Rendering Programme für Eckpunkte und
MehrGPGPU-Programming. Constantin Timm Informatik 12 TU Dortmund 2012/04/09. technische universität dortmund. fakultät für informatik informatik 12
12 GPGPU-Programming Constantin Timm Informatik 12 TU Dortmund 2012/04/09 Diese Folien enthalten Graphiken mit Nutzungseinschränkungen. Das Kopieren der Graphiken ist im Allgemeinen nicht erlaubt. Motivation
MehrCUDA. Jürgen Pröll. Multi-Core Architectures and Programming. Friedrich-Alexander-Universität Erlangen-Nürnberg Jürgen Pröll 1
CUDA Jürgen Pröll Multi-Core Architectures and Programming Jürgen Pröll 1 Image-Resize: sequentiell resize() mit bilinearer Interpolation leicht zu parallelisieren, da einzelne Punkte voneinander unabhängig
MehrProbelektion zum Thema. Shadow Rendering. Shadow Maps Shadow Filtering
Probelektion zum Thema Shadow Rendering Shadow Maps Shadow Filtering Renderman, 2006 CityEngine 2011 Viewport Real reconstruction in Windisch, 2013 Schatten bringen viel Realismus in eine Szene Schatten
MehrProgrammierung von Graphikkarten
Programmierung von Graphikkarten Stefan Lang Interdisziplinäres Zentrum für Wissenschaftliches Rechnen Universität Heidelberg INF 368, Raum 532 D-69120 Heidelberg phone: 06221/54-8264 email: Stefan.Lang@iwr.uni-heidelberg.de
MehrÜbung 3. Dipl.-Inf. Domenic Jenz (jenz@hlrs.de) Übungen zur Vorlesung Molekulardynamik und Lattice Boltzmann Methoden. HLRS, Universität Stuttgart
Übung 3 Dipl.-Inf. Domenic Jenz (jenz@hlrs.de) HLRS, Universität Stuttgart Übungen zur Vorlesung Molekulardynamik und Lattice Boltzmann Methoden Outline Ein kleines MD Programm Einführung Das Grundgerüst
MehrGPU Programmierung. Thorsten Grosch
Thorsten Grosch Willkommen zur ersten Vorlesung! g Heute Organisatorisches Vorstellung von Team und Vorlesung Historischer Rückblick zu GPUs 2 Das Team Vorlesung Jun.-Prof. Thorsten Grosch AG Computervisualistik
MehrGlobale Beleuchtung. Thorsten Grosch. Thorsten Grosch Seit September 2009 Juniorprofessor für CV in Magdeburg
Praktikum Globale Beleuchtung Thorsten Grosch Wer bin ich Thorsten Grosch Seit September 2009 Juniorprofessor für CV in Magdeburg g Davor Studium Informatik TU Darmstadt Fraunhofer IGD Lichtsimulation
Mehr(7) Normal Mapping. Vorlesung Computergraphik II S. Müller. Dank an Stefan Rilling U N I V E R S I T Ä T KOBLENZ LANDAU
(7) Normal Mapping Vorlesung Computergraphik II S. Müller Dank an Stefan Rilling Einleitung Die Welt ist voller Details Viele Details treten in Form von Oberflächendetails auf S. Müller - 3 - Darstellung
MehrParallele Programmierung mit GPUs
Parallele Programmierung mit GPUs Jutta Fitzek Vortrag im Rahmen des Moduls Parallele Programmierung, WS12/13, h_da Agenda GPUs: Historie GPU Programmierung Konzepte Codebeispiel Generelle Tipps & Tricks
Mehr1. Eindimensionale Bewegung
1. Eindimensionale Bewegung Die Gesamtheit aller Orte, die ein Punkt während seiner Bewegung einnimmt, wird als Bahnkurve oder Bahn bezeichnet. Bei einer eindimensionalen Bewegung bewegt sich der Punkt
MehrPhysik 1. Kinematik, Dynamik.
Physik Mechanik 3 Physik 1. Kinematik, Dynamik. WS 15/16 1. Sem. B.Sc. Oec. und B.Sc. CH Physik Mechanik 5 Themen Definitionen Kinematik Dynamik Physik Mechanik 6 DEFINITIONEN Physik Mechanik 7 Was ist
MehrLokale Beleuchtungsmodelle
Lokale Beleuchtungsmodelle Oliver Deussen Lokale Modelle 1 Farbschattierung der Oberflächen abhängig von: Position, Orientierung und Charakteristik der Oberfläche Lichtquelle Vorgehensweise: 1. Modell
MehrCuda Speicherhierarchie
Cuda Speicherhierarchie Threads eines Blocks können über Shared Memory kommunizieren Der Shared Memory ist klein aber sehr schnell Alle Threads können nur über Global Memory kommunizieren Der Global Memory
Mehr(13) Hot Topics. Vorlesung Computergrafik T. Grosch
(13) Hot Topics Vorlesung Computergrafik T. Grosch Heute Vorstellung der besten Flugsimulatoren Hot Topics T. Grosch - - Warum Hot Topics? Typischerweise i Computergrafik 1 : Grundlagen, konstant Computergrafik
MehrÜbungsaufgaben: 1. Objektorientierte Programmierung - Teil 1
Übungsaufgaben: 1. Objektorientierte Programmierung - Teil 1 1. Das Objekt Bruch mit einem Standardkonstruktor (initialisieren mit 0), einem allgemeinen Konstruktor (Zähler und Nenner können beliebig vorgegeben
MehrModell der Punktmasse
Kinematik Die Kinematik (kinema, griech., Bewegung) ist die Lehre von der Bewegung von Punkten und Körpern im Raum, beschrieben durch die Größen Weg (Änderung der Ortskoordinate) s, Geschwindigkeit v und
MehrGPU Programmierung. Thorsten Grosch
Thorsten Grosch Willkommen zur ersten Vorlesung! g Heute Organisatorisches Vorstellung von Team und Vorlesung Historischer Rückblick zu GPUs 2 Das Team Vorlesung Jun.-Prof. Thorsten Grosch AG Computervisualistik
MehrCUDA. Axel Jena, Jürgen Pröll. Multi-Core Architectures and Programming. Friedrich-Alexander-Universität Erlangen-Nürnberg Axel Jena, Jürgen Pröll 1
CUDA Axel Jena, Jürgen Pröll Multi-Core Architectures and Programming Axel Jena, Jürgen Pröll 1 Warum Tesla? Traditionelle Graphikkarten Getrennte Prozessoren für Vertex- / Pixelberechnungen - Nachteil:
MehrAdvanced Programming in C
Advanced Programming in C Pointer und Listen Institut für Numerische Simulation Rheinische Friedrich-Wilhelms-Universität Bonn Oktober 2013 Überblick 1 Variablen vs. Pointer - Statischer und dynamischer
MehrBeginn der Vorlesung zur Numerik I (Wintersemester 2010/2011)
M. Sc. Frank Gimbel Beginn der Vorlesung zur Numerik I (Wintersemester 2010/2011) 1 Motivation Ziel ist es, ein gegebenes lineares Gleichungssystem der Form Ax = b (1) mit x, b R n und A R n n zu lösen.
MehrKlausur Physik 1 (GPH1) am 8.7.02
Name, Matrikelnummer: Klausur Physik 1 (GPH1) am 8.7.02 Fachbereich Elektrotechnik und Informatik, Fachbereich Mechatronik und Maschinenbau Zugelassene Hilfsmittel: Beiblätter zur Vorlesung Physik 1 im
MehrFunktionen Häufig müssen bestimmte Operationen in einem Programm mehrmals ausgeführt werden. Schlechte Lösung: Gute Lösung:
Funktionen Häufig müssen bestimmte Operationen in einem Programm mehrmals ausgeführt werden. Schlechte Lösung: Der Sourcecode wird an den entsprechenden Stellen im Programm wiederholt Programm wird lang
MehrFadenpendel (M1) Ziel des Versuches. Theoretischer Hintergrund
Fadenpendel M) Ziel des Versuches Der Aufbau dieses Versuches ist denkbar einfach: eine Kugel hängt an einem Faden. Der Zusammenhang zwischen der Fadenlänge und der Schwingungsdauer ist nicht schwer zu
MehrOpenCL. OpenCL. Boris Totev, Cornelius Knap
OpenCL OpenCL 1 OpenCL Gliederung Entstehungsgeschichte von OpenCL Was, warum und überhaupt wieso OpenCL CUDA, OpenGL und OpenCL GPUs OpenCL Objekte Work-Units OpenCL Adressbereiche OpenCL API Codebeispiel
MehrOptimierung eines neuen Logarithmic-Search-Verfahrens zum Image Mosaicing unter Einsatz des CUDA-Frameworks
Fachhochschule Köln, Campus Gummersbach Optimierung eines neuen Logarithmic-Search-Verfahrens zum Image Mosaicing unter Einsatz des CUDA-Frameworks 03.06.2009 Eugen Sewergin, B. Sc. Erstprüfer: Prof. Dr.
MehrMathematik-Tutorium für Maschinenbauer II: Differentialgleichungen und Vektorfelder
DGL Schwingung Physikalische Felder Mathematik-Tutorium für Maschinenbauer II: Differentialgleichungen und Vektorfelder Johannes Wiedersich 23. April 2008 http://www.e13.physik.tu-muenchen.de/wiedersich/
MehrM1 Maxwellsches Rad. 1. Grundlagen
M1 Maxwellsches Rad Stoffgebiet: Translations- und Rotationsbewegung, Massenträgheitsmoment, physikalisches Pendel. Versuchsziel: Es ist das Massenträgheitsmoment eines Maxwellschen Rades auf zwei Arten
MehrGPGPU mit NVIDIA CUDA
01.07.12 GPGPU mit NVIDIA CUDA General-Purpose on Formatvorlagecomputing des Graphics Processing durch Units Untertitelmasters mit KlickenCompute bearbeiten NVIDIA Unified Device Architecture Gliederung
MehrTECHNISCHE MECHANIK III (DYNAMIK)
Klausur im Fach TECHNISCHE MECHANIK III (DYNAMIK) WS 2014 / 2015 Matrikelnummer: Vorname: Nachname: Ergebnis Klausur Aufgabe: 1 2 3 4 Summe Punkte: 15 7 23 15 60 Davon erreicht Bearbeitungszeit: Hilfsmittel:
Mehr1. Bewegungsgleichung
1. Bewegungsgleichung 1.1 Das Newtonsche Grundgesetz 1.2 Dynamisches Gleichgewicht 1.3 Geführte Bewegung 1.4 Massenpunktsysteme 1.5 Schwerpunktsatz Prof. Dr. Wandinger 2. Kinetik des Massenpunkts Dynamik
MehrOpenCL Implementierung von OpenCV Funktionen
Multi-Core Architectures and Programming OpenCL Implementierung von OpenCV Funktionen julian.mueller@e-technik.stud.uni-erlangen.de Hardware/Software Co-Design August 18, 2011 1 Table of content 1 OpenCL
MehrPhotonik Technische Nutzung von Licht
Photonik Technische Nutzung von Licht Raytracing und Computergraphik Überblick Raytracing Typen von Raytracern z-buffer Raytracing Lichtstrahlen-Verfolgung (engl. ray tracing): Berechnung von Lichtstrahlen
MehrProgrammierung mit C Zeiger
Programmierung mit C Zeiger Zeiger (Pointer)... ist eine Variable, die die Adresse eines Speicherbereichs enthält. Der Speicherbereich kann... kann den Wert einer Variablen enthalten oder... dynamisch
MehrComputergrafik/Visualisierung II
Vorlesung Computergrafik/Visualisierung II Hochschule für Technik und Wirtschaft Dresden University of Applied Sciences Prof. Dr. Marco Block-Berlitz Sommersemester 2014 Studiengang Medieninformatik Vorlesungsteil
MehrGraphic Coding. Klausur. 9. Februar 2007. Kurs A
Graphic Coding Klausur 9. Februar 2007 Kurs A Name: Matrikelnummer: Hinweise - Es sind keine Hilfsmaterialien erlaubt. (Keine Bücher, Taschenrechner, Handys) - Sie haben zwei Stunden Zeit. - Insgesamt
MehrLösung der zweidimensionalen Wirbeltransportgleichung auf NVIDIA Grafikkarten - Bachelorarbeit -
Lösung der zweidimensionalen Wirbeltransportgleichung auf NVIDIA Grafikkarten - Bachelorarbeit - Seminar des Fachgebiets Optimierung bei partiellen Differentialgleichungen 13. Januar 2011 Gliederung 1
MehrVorlesung Datenstrukturen
Vorlesung Datenstrukturen Binärbaum Suchbaum Dr. Frank Seifert Vorlesung Datenstrukturen - Sommersemester 2016 Folie 356 Datenstruktur Binärbaum Strukturrepräsentation des mathematischen Konzepts Binärbaum
MehrÜbersicht 1. Anzeigegeräte 2. Framebuffer 3. Grundlagen 3D Computergrafik 4. Polygongrafik, Z-Buffer 5. Texture-Mapping/Shading 6. GPU 7. Programmierbare Shader 1 LCD/TFT Technik Rotation der Licht-Polarisationsebene
MehrTag der Umweltmeteorologie 12.05.2015. Michael Kunz
Tag der Umweltmeteorologie 12.05.2015 Michael Kunz Beschleunigung von Ausbreitungsmodellen durch Portierung auf Grafikkarten Einleitung Das GRAL/GRAMM-System Cuda-GRAL Ergebnisse Vergleich der Modellergebnisse
MehrKlausur Physik 1 (GPH1) am
Name, Matrikelnummer: Klausur Physik 1 (GPH1) am 18.9.09 Fachbereich Elektrotechnik und Informatik, Fachbereich Mechatronik und Maschinenbau Zugelassene Hilfsmittel: Beiblätter zur Vorlesung Physik 1 ab
MehrGewöhnliche Differentialgleichungen am Beispiel des harmonischen Oszillators
Gewöhnliche Differentialgleichungen am Beispiel des harmonischen Oszillators Horst Laschinsky 12. Oktober 1999 Inhaltsverzeichnis 1 Gewöhnliche lineare homogene Differentialgleichungen 2. Ordnung mit konstanten
MehrGPGPU Programming nvidia CUDA vs. AMD/ATI Stream Computing. Seminar HWS 08/09 by Erich Marth
Computing 1 Inhalt Einführung nvidia CUDA AMD Stream Computing CUDA vs. Stream Computing - Warum, Vorteile, Motivation - Überblick, API - Details, Beispiele - Überblick, API - Details, Beispiele - wesentliche
MehrVektorrechnung in der Physik und Drehbewegungen
Vektorrechnung in der Physik und Drehbewegungen 26. November 2008 Vektoren Vektoren sind bestimmt durch a) Betrag und b) Richtung Beispiel Darstellung in 3 Dimensionen: x k = y z Vektor in kartesischen
MehrZugriff auf Matrizen. Anhängen von Elementen. Punktweise Operatoren. Vektoren und Matrizen in MATLAB II
Zugriff auf Matrizen. Anhängen von Elementen. Punktweise Operatoren. Vektoren und Matrizen in MATLAB II Matrixzugriff Wir wollen nun unsere Einführung in die Arbeit mit Vektoren und Matrizen in MATLAB
Mehr9. Vorlesung Wintersemester
9. Vorlesung Wintersemester 1 Die Phase der angeregten Schwingung Wertebereich: bei der oben abgeleiteten Formel tan φ = β ω ω ω0. (1) ist noch zu sehen, in welchem Bereich der Winkel liegt. Aus der ursprünglichen
Mehrcomputer graphics & visualization
Entwicklung und Implementierung echtzeitfähiger Verfahren zur Darstellung von reflektierenden Objekten auf GPUs echtzeitfähiger Verfahren zur Darstellung von reflektierenden Objekten auf GPUs Motivation
MehrSeminar: Grafikprogrammierung
Game Developer Converence 08 Seminar: Grafikprogrammierung Alexander Weggerle 17.04.08 Seite 2 Einführung Themenüberblick Organisatorisches Seminarablauf liches Seite 3 Einführung Seminar Motivation Vorbereitung
Mehr6 Speicherorganisation
Der Speicher des Programms ist in verschiedene Speicherbereiche untergliedert Speicherbereiche, die den eigentlichen Programmcode und den Code der Laufzeitbibliothek enthalten; einen Speicherbereich für
MehrRendering Grundlagen Autodesk Maya. Grundlagen. Version 1.0-2009-04-08. 2009 Ingo Clemens brave rabbit www.braverabbit.de
Rendering Grundlagen Version 1.0-2009-04-08 Allgemeine Unterschiede bei Renderern Scanline Rendering Raytrace Rendering Renderlayer Einsatz von Renderlayern Overrides Material Overrides Layer Presets Batch
MehrMechanische Schwingungen Aufgaben 1
Mechanische Schwingungen Aufgaben 1 1. Experiment mit Fadenpendel Zum Bestimmen der Fallbeschleunigung wurde ein Fadenpendel verwendet. Mit der Fadenlänge l 1 wurde eine Periodendauer von T 1 =4,0 s und
Mehr2. Lagrange-Gleichungen
2. Lagrange-Gleichungen Mit dem Prinzip der virtuellen Leistung lassen sich die Bewegungsgleichungen für komplexe Systeme einfach aufstellen. Aus dem Prinzip der virtuellen Leistung lassen sich die Lagrange-Gleichungen
MehrGrundlagen der Informatik. Prof. Dr. Stefan Enderle NTA Isny
Grundlagen der Informatik Prof. Dr. Stefan Enderle NTA Isny 2 Datenstrukturen 2.1 Einführung Syntax: Definition einer formalen Grammatik, um Regeln einer formalen Sprache (Programmiersprache) festzulegen.
Mehr1. Einführung in OpenMP
1. Einführung in OpenMP Übersicht Einführung Homogene und inhomogene Arbeitsverteilung Rekursive Parallelität Beispiele Parallele Programmierung 1 Nicolas Maillard, Marcus Ritt 1 Überblick OpenMP: Vereinfachte
MehrDer Goopax Compiler GPU-Programmierung in C++ ZKI AK-Supercomputing, Münster, 27.03.2014, Ingo Josopait
Der Goopax Compiler GPU-Programmierung in C++ AMD R9 290X: 5.6 TFLOPS (SP MulAdd) Programmierung ~10000 Threads Entwicklungsumgebungen Entwicklungsumgebungen CUDA, OpenCL Compiler: kernel GPU Maschinencode
MehrProgrammieren in C/C++ und MATLAB
Programmieren in C/C++ und MATLAB Sven Willert Sabine Schmidt Christian-Albrechts-Universität zu Kiel CAU 4-1 Übung 1) Schreiben Sie ein Programm, das die Fläche unter einer Parabel, also das Integral
MehrBäume, Suchbäume und Hash-Tabellen
Im folgenden Fokus auf Datenstrukturen, welche den assoziativen Zugriff (über einen bestimmten Wert als Suchkriterium) optimieren Bäume: Abbildung bzw. Vorberechnung von Entscheidungen während der Suche
MehrEs ist für die Lösung der Programmieraufgabe nicht nötig, den mathematischen Hintergrund zu verstehen, es kann aber beim Verständnis helfen.
Ziele sind das Arbeiten mit Funktionen und dem Aufzählungstyp (enum), sowie - einfache Verzweigung (if else) - Alternativen switch case - einfache Schleifen (while oder do while) Aufgabe 3: Diese Aufgabe
MehrGPGPU-Architekturen CUDA Programmiermodell Beispielprogramm Organiosatorisches. Tutorial CUDA. Ralf Seidler
Friedrich-Alexander-Universität Erlangen-Nürnberg 05.10.2010 Outline 1 GPGPU-Architekturen 2 CUDA Programmiermodell 3 Beispielprogramm 4 Organiosatorisches Outlook 1 GPGPU-Architekturen 2 CUDA Programmiermodell
MehrParallele Algorithmen mit OpenCL. Universität Osnabrück, Henning Wenke, 2013-05-08
Parallele Algorithmen mit OpenCL Universität Osnabrück, Henning Wenke, 2013-05-08 Aufräumen Ressourcen in umgekehrter Abhängigkeitsreihenfolge freigeben Objekte haben Reference-Count (RC), initial 1 clrelease
MehrSortierverfahren. Sortierverfahren für eindimensionale Arrays
Sortierverfahren Sortierverfahren Sortieren durch Einfügen Sortieren durch Auswählen Sortieren durch Vertauschen (Bubblesort) Quicksort Sortierverfahren für eindimensionale Arrays 1 Gegeben ist eine beliebige
MehrEffiziente Erzeugung qualitativ hochwertiger Bilder anhand punktbasierter Geometriedaten
Effiziente Erzeugung qualitativ hochwertiger Bilder anhand punktbasierter Geometriedaten Referent: Arndt Ebert 1 2 Ziel des Vortrags Einordnung der point based representation (PBR) und Grundlagen Effiziente
MehrWima-Praktikum 2: Bildsynthese-Phong
Wima-Praktikum 2: Bildsynthese-Phong Wima-Praktikum 2: Prof. Dr. Lebiedz, M. Sc. Radic 1 Inhaltsverzeichnis 1 Einleitung 3 2 Kurze Beschreibung der Aufgabenstellung und dem Phong- Modell 3 3 Modellierung
MehrEinführung Datentypen Verzweigung Schleifen Funktionen Dynamische Datenstrukturen. Java Crashkurs. Kim-Manuel Klein (kmk@informatik.uni-kiel.
Java Crashkurs Kim-Manuel Klein (kmk@informatik.uni-kiel.de) May 7, 2015 Quellen und Editoren Internet Tutorial: z.b. http://www.java-tutorial.org Editoren Normaler Texteditor (Gedit, Scite oder ähnliche)
MehrWie groß ist die Page Table?
Wie groß ist die Page Table? Im vorigen (typischen) Beispiel verwenden wir 20 Bits zum indizieren der Page Table. Typischerweise spendiert man 32 Bits pro Tabellen Zeile (im Vorigen Beispiel brauchten
MehrLattice Boltzmann Simulation bewegter Partikel
Lattice Boltzmann Simulation bewegter Partikel, Nils Thürey, Hans-Joachim Schmid, Christian Feichtinger Lehrstuhl für Systemsimulation Universität Erlangen/Nürnberg Lehrstuhl für Partikeltechnologie Universität
MehrSimulation multipler Streuung an Haaren mit Hilfe eines Photon-Mapping-Ansatzes
Fakultät Informatik Institut für Software- und Multimediatechnik, Professur für Computergraphik und Visualisierung Simulation multipler Streuung an Haaren mit Hilfe eines Photon-Mapping-Ansatzes Hauptseminar
MehrKlausur C-Programmierung / 15.02.2014 / Klingebiel / 60 Minuten / 60 Punkte
Klausur C-Programmierung / 15.02.2014 / Klingebiel / 60 Minuten / 60 Punkte Musterlösung 1. Aufgabe (5 Punkte) Im folgenden Programmcode sind einige Fehler enthalten. Finden und markieren Sie mindestens
Mehr14. Mechanische Schwingungen und Wellen
14. Mechanische Schwingungen und Wellen Schwingungen treten in der Technik in vielen Vorgängen auf mit positiven und negativen Effekten (z. B. Haarrisse, Achsbrüche etc.). Deshalb ist es eine wichtige
MehrInformatik Aufgaben. 1. Erstelle ein Programm zur Berechnung der Summe der Zahlen von 1 bis n, z.b. n = 100.
Informatik Aufgaben 1. Erstelle ein Programm zur Berechnung der Summe der Zahlen von 1 bis n, z.b. n = 100. 2. Erstelle ein Programm, das die ersten 20 (z.b.) ungeraden Zahlen 1, 3, 5,... ausgibt und deren
MehrAlgorithmen und Datenstrukturen
Algorithmen und Datenstrukturen Prof. Dr. Ralf Möller Universität zu Lübeck Institut für Informationssysteme Stefan Werner (Übungen) sowie viele Tutoren Teilnehmerkreis und Voraussetzungen Studiengänge
MehrMaterialien WS 2014/15 Dozent: Dr. Andreas Will.
Master Umweltingenieur, 1. Semester, Modul 42439, Strömungsmechanik, 420607, VL, Do. 11:30-13:00, R. 3.21 420608, UE, Do. 13:45-15:15, R. 3.17 Materialien WS 2014/15 Dozent: Dr. Andreas Will will@tu-cottbus.de
MehrDatenstrukturen & Algorithmen
Datenstrukturen & Algorithmen Matthias Zwicker Universität Bern Frühling 2010 Übersicht Dynamische Programmierung Einführung Ablaufkoordination von Montagebändern Längste gemeinsame Teilsequenz Optimale
MehrRendering. Rendern (Umsetzung oder Übertragung) Ursprüngliche Rendergleichung
DIE RENDERGLEICHUNG Die Rendergleichung, wird in der 3D-Computergrafik verwendet. Es handelt sich um eine Integralgleichung, welche die Energieerhaltung bei der Ausbreitung von Lichtstrahlen beschreibt
MehrSchritt 1 - Ein Spielfeld
Schritt 1 - Ein Spielfeld Wir beginnen mit zwei einfachen Java-Klassen, dem eigentlichen Spielfeld und dem Applet zum Anzeigen des Spielfeldes (und später der Buttons und der anderen Bedienelemente). Hier
Mehrad Physik A VL2 (11.10.2012)
ad Physik A VL2 (11.10.2012) korrigierte Varianz: oder: korrigierte Stichproben- Varianz n 2 2 2 ( x) ( xi ) n 1 i1 1 n 1 n i1 1 Begründung für den Vorfaktor : n 1 Der Mittelwert der Grundgesamtheit (=
MehrVorkurs Informatik WiSe 16/17
Java Rekursion Dr. Werner Struckmann / Stephan Mielke, Jakob Garbe, 11.10.2016 Technische Universität Braunschweig, IPS Überblick Einleitung Beispiele 11.10.2016 Dr. Werner Struckmann / Stephan Mielke,
MehrSpeicher und Adressraum
Linearer Speicher (Adressraum) Technische Universität München Speicher und Adressraum Freie Speicherhalde (Heap) Freier Speicherstapel (Stack) Globale Variablen Bibliotheksfunktionen Laufzeitsystem Programmcode
Mehr3. Erhaltungsgrößen und die Newton schen Axiome
Übungen zur T1: Theoretische Mechanik, SoSe13 Prof. Dr. Dieter Lüst Theresienstr. 37, Zi. 45 Dr. James Gray James.Gray@physik.uni-muenchen.de 3. Erhaltungsgrößen und die Newton schen Axiome Übung 3.1:
MehrGrafikkarten-Architektur
> Grafikkarten-Architektur Parallele Strukturen in der GPU Name: Sebastian Albers E-Mail: s.albers@wwu.de 2 > Inhalt > CPU und GPU im Vergleich > Rendering-Pipeline > Shader > GPGPU > Nvidia Tesla-Architektur
MehrGrundlagen der Rechnerarchitektur
Grundlagen der Rechnerarchitektur Speicher Übersicht Speicherhierarchie Cache Grundlagen Verbessern der Cache Performance Virtueller Speicher SS 2012 Grundlagen der Rechnerarchitektur Speicher 2 Speicherhierarchie
MehrParallele und funktionale Programmierung Wintersemester 2013/14. 8. Übung Abgabe bis 20.12.2013, 16:00 Uhr
8. Übung Abgabe bis 20.12.2013, 16:00 Uhr Aufgabe 8.1: Zeigerverdopplung Ermitteln Sie an folgendem Beispiel den Rang für jedes Listenelement sequentiell und mit dem in der Vorlesung vorgestellten parallelen
Mehr2. Räumliche Bewegung
2. Räumliche Bewegung Prof. Dr. Wandinger 1. Kinematik des Punktes TM 3 1.2-1 2. Räumliche Bewegung Wenn die Bahn des Punkts nicht bekannt ist, reicht die Angabe einer Koordinate nicht aus, um seinen Ort
Mehr2. Räumliche Bewegung
2. Räumliche Bewegung Wenn die Bahn des Massenpunkts nicht bekannt ist, reicht die Angabe einer Koordinate nicht aus, um seinen Ort im Raum zu bestimmen. Es muss ein Ortsvektor angegeben werden. Prof.
MehrGPU-BESCHLEUNIGTE PACKUNGSOPTIMIERUNG. André Müller, Johannes J. Schneider, Elmar Schömer
GPU-BESCHLEUNIGTE PACKUNGSOPTIMIERUNG André Müller, Johannes J. Schneider, Elmar Schömer BETRACHTETES PACKPROBLEM gegeben N = 5, 6,,50 harte Kugeln in Dimension d mit ganzzahligen Radien r i = 1,2,,N gesucht
MehrEinführung in LabVIEW
Einführung in LabVIEW von Wolfgang Georgi, Ergun Metin 5., überarbeitete und erweiterte Auflage Einführung in LabVIEW Georgi / Metin schnell und portofrei erhältlich bei beck-shop.de DIE FACHBUCHHANDLUNG
MehrKapitel 12: Übersetzung objektorienter Konzepte
Kapitel 12: Übersetzung objektorienter Konzepte Themen Klassendarstellung und Methodenaufruf Typüberprüfung Klassenhierarchieanalyse Escape Analyse 12.1 Klassendarstellung bei Einfachvererbung class Punkt
MehrTheoretische Mechanik
Prof. Dr. R. Ketzmerick/Dr. R. Schumann Technische Universität Dresden Institut für Theoretische Physik Sommersemester 2008 Theoretische Mechanik 9. Übung 9.1 d alembertsches Prinzip: Flaschenzug Wir betrachten
MehrPraktikum Ingenieurinformatik. Termin 5. Felder, Kurvendarstellung mit Excel
Praktikum Ingenieurinformatik Termin 5 Felder, Kurvendarstellung mit Excel 1 Praktikum Ingenieurinformatik Termin 5 1. Felder 2. Kurvendarstellung mit Excel 3. Zusatzaufgaben 2 1.1. Mining-Truck TR 100
Mehr1. Grundlegende Konzepte in Java (6 Punkte)
1. Grundlegende Konzepte in Java (6 Punkte) a) Welches der folgenden Literale ist korrekt und wenn ja, von welchem Typ ist es? "true" nicht korrekt X korrekt vom Typ String 'true' X nicht korrekt korrekt
MehrBeobachtung 1: Beispiel: Intuitive Programme sind oft ineffizient.
Beobachtung 1: Intuitive Programme sind oft ineffizient. Beispiel: void swap (int i, int j) { int t; if (a[i] > a[j]) { t = a[j]; a[j] = a[i]; a[i] = t; } } 731 Ineffizienzen: Adressen a[i], a[j] werden
MehrGliederung. Tutorium zur Vorlesung. Gliederung. Gliederung. 1. Gliederung der Informatik. 1. Gliederung der Informatik. 1. Gliederung der Informatik
Informatik I WS 2012/13 Tutorium zur Vorlesung 1. Alexander Zietlow zietlow@informatik.uni-tuebingen.de Wilhelm-Schickard-Institut für Informatik Eberhard Karls Universität Tübingen 11.02.2013 1. 2. 1.
MehrOne of the few resources increasing faster than the speed of computer hardware is the amount of data to be processed. Bin Hu
Bin Hu Algorithmen und Datenstrukturen 2 Arbeitsbereich fr Algorithmen und Datenstrukturen Institut fr Computergraphik und Algorithmen Technische Universität Wien One of the few resources increasing faster
MehrMonte Carlo Simulationen
Monte Carlo Simulationen Zahlreiche Vorgänge in der Natur werden durch stochastische Prozesse bestimmt. Beispiele: Diffusion Spin-Spin-Wechselwirkung (Magnetisierung eines Ferromagneten, Ising-Modell)
MehrKontrollstrukturen und Funktionen in C
Kontrollstrukturen und Funktionen in C Lernziele: Vertiefen der Kenntnisse über Operatoren, Kontrollstrukturen und die Verwendung von Funktionen. Aufgabe 1: Quickies: Datentypen in C a) Was sind die elementaren
Mehr