The View from Ten Thousand Feet Outline • How does Big Data come about? – Measurement – Simulation • Why is it a problem? – Bandwidth – Latency – Resolution/Fidelity • What can we do about it? – – – – Parallelism Architectures Algorithms Bigger Displays Big Data in Computer Graphics Fall 2002 Lecture 2 Where Does Big Data Come From? Sources of Big Data • Measurement – Range Scanning – Imagery – Sensor Networks • Simulation – Scientific computing – Light Transport – CAD • Other – Databases – The Web! Big Data in Computer Graphics Fall 2002 Lecture 2 Range Scanning (1D) imager lens laser Object to be scanned Big Data in Computer Graphics Fall 2002 Lecture 2 Range Scanning (1D) D L LS D S O O S,L Fixed O Measured D Unknown O L S D Big Data in Computer Graphics Fall 2002 Lecture 2 Range Scanning • Project a stripe, not a dot • Use a digital camera, not a 1D PSD • Move camera + stripe to sample a shell The Digital Michelangelo Project: 3D Scanning of Large Statues Levoy et al., SIGGRAPH 2000 Big Data in Computer Graphics Fall 2002 Lecture 2 Statistics about David • 480 individually aimed scans • 2 billion polygons • 7,000 color images • 32 gigabytes • 30 nights of scanning • 22 people Big Data in Computer Graphics Fall 2002 Lecture 2 Scientific Simulation Billion-Atom Dislocation Dynamics in Copper Mark Duchaineau, LLNL Big Data in Computer Graphics Fall 2002 Lecture 2 CAD Powerplant Model: 13 million triangles UNC Walkthrough Project Big Data in Computer Graphics Fall 2002 Lecture 2 Inherently Big Things Big Data in Computer Graphics Fall 2002 Lecture 2 What’s the Problem? Resources Are Limited! • • • • • • • Bandwidth Latency Operations Per Second Time Spatial Resolution Dynamic Range Money Big Data in Computer Graphics Fall 2002 Lecture 2 Bandwidth • 80 Mpolys @ 60 Hz (optimally stripped): – Flat shading: 57 GB/sec – Colored, lit: 129 GB/sec • 25 Projector display wall (6400x5120): – 24 bit color, 60 Hz: 5.9 GB/sec • Peak bandwidths: – – – – – Broadband: 128 KB/sec LAN: 12 MB/sec Cluster: 100-200 MB/sec DVI: 495 MB/sec System Bus: 500-3000 MB/sec • Achievable bandwidth typically much less Big Data in Computer Graphics Fall 2002 Lecture 2 Example: Remote Rendering PC PC OpenGL Network Display OpenGL • How fast can this possibly run? • Assume: – 13 bytes per triangle (x,y,z + 1 byte opcode) – Network runs at N MB/sec • Peak triangle rate: N/13 – 100 MB/sec cluster interconnect: 7.7 Mtris/sec – 12 MB/sec LAN: 9.2 Ktris/sec Big Data in Computer Graphics Fall 2002 Lecture 2 How Bad Is 7.7 (Remote) Mtris/sec? • Not too bad! • How fast can you call glVertex3fv? • On my laptop, 15M/sec • Two conditional branches • 13(+) memory accesses! • Upwards of 800MB/sec to the memory system Big Data in Computer Graphics Fall 2002 Lecture 2 695480A0 695480A1 695480A7 695480AE 695480B0 695480B6 695480BA 695480C1 695480C3 695480C5 695480C8 695480CB 695480CE 695480D0 695480D3 695480D8 695480DE 695480DF 695480E2 695480E8 695480EC 695480EE 695480F4 695480F7 695480FA 695480FD 69548103 69548106 69548109 6954810C 69548112 69548114 69548116 6954811C 69548121 69548122 push mov test je lea mov mov mov mov mov mov mov mov mov mov call pop ret mov mov mov mov mov add mov mov mov mov mov cmp ja xor mov call pop ret esi eax,fs:[00000BF0] byte ptr [eax+3F5Fh],10h 695480E2 edx,[eax+3640h] esi,dword ptr [esp+8] dword ptr [edx+0Ch],3F800000h ecx,dword ptr [esi] dword ptr [edx],ecx ecx,dword ptr [esi+4] esi,dword ptr [esi+8] dword ptr [edx+4],ecx ecx,eax dword ptr [edx+8],esi edx,3 dword ptr [eax+0BFA8h] esi 4 edx,dword ptr [eax+477F0h] esi,dword ptr [esp+8] ecx,dword ptr [esi] dword ptr [edx],0C2C00h dword ptr [edx+4],ecx edx,10h ecx,dword ptr [esi+4] dword ptr [eax+477F0h],edx esi,dword ptr [esi+8] dword ptr [edx-8],ecx dword ptr [edx-4],esi dword ptr [eax+477F4h],edx 69548121 edx,edx ecx,dword ptr [eax+477D0h] 6950EAE0 esi 4 Resolution Big Data in Computer Graphics Fall 2002 Lecture 2 What Can Be Done? The Graphics Pipeline Application Geometry Rasterization Display Big Data in Computer Graphics Fall 2002 Lecture 2 Compute 3D geometry Make calls to graphics API Transform geometry from 3D to 2D Generate pixels from 2D geometry Continuously refresh display device The Graphics Pipeline Application Application Command Geometry Geometry Rasterization Rasterization Texture Fragment Display Big Data in Computer Graphics Fall 2002 Lecture 2 Display Measuring Performance Input Rate Application Command Triangle Rate Geometry Pixel Rate Rasterization Texture Texture Memory Fragment Display Resolution Display Big Data in Computer Graphics Fall 2002 Lecture 2 Parallel Rendering • Today’s hardware is interface limited • Geometry work is application-visible • Rasterization work is not application-visible • Broadcast communication does not scale • Temporal locality spatial load imbalances Big Data in Computer Graphics Fall 2002 Lecture 2 Interface Overhead Compute Data Encode API CPU B/W GFX I/O B/W Decode API Draw Data Big Data in Computer Graphics Fall 2002 Lecture 2 Interface Bottlenecks Application Application Geometry Rasterization Display Big Data in Computer Graphics Fall 2002 Lecture 2 G G G G G G R R R R R R D D D D D D Solutions to the Interface Limit • Vertex arrarys • Retained mode rendering (display lists) • Compression • Parallelize the interface Big Data in Computer Graphics Fall 2002 Lecture 2 Synchronizing Parallel Interfaces • Immediate mode API’s are ordered – Framebuffer effects (transparency) – Painters algorithm (BSP visibility) – State effects (enable lighting) • Traditional synchronization primitives – glBarrierExec – glSemaphoreV – glSemaphoreP The Design of a Parallel Graphics Interface Igehy, Stoll, and Hanrahan, SIGGRAPH 1998 Big Data in Computer Graphics Fall 2002 Lecture 2 Marching Cubes eye The Design of a Parallel Graphics Interface Igehy, Stoll, and Hanrahan, SIGGRAPH 1998 Big Data in Computer Graphics Fall 2002 Lecture 2 Marching Cubes MarchParallelOrdered (M, N, grid, sema) for (i=0; i<M; i++) for (j=(myP+i)%numP; j<N; j+=numP) if (i>0) glSemaphoreP(sema[i-1,j]) if (j>0) glSemaphoreP(sema[i,j-1]) ExtractAndRender(grid[i,j]) if (i<M-1) glSemaphoreV(sema[i,j]) if (j<N-1) glSemaphoreV(sema[i,j]) The Design of a Parallel Graphics Interface Igehy, Stoll, and Hanrahan, SIGGRAPH 1998 Big Data in Computer Graphics Fall 2002 Lecture 2 Taxonomy of Parallel Graphics App App Geom Geom Rast Rast Disp Disp • Object parallel input • Image parallel output • “Sort” between them – Communicate work to the correct location on the screen A Sorting Classification of Parallel Rendering, Molnar et al. Big Data in Computer Graphics Fall 2002 Lecture 2 Taxonomy of Parallel Graphics App App • Object parallel input • Image parallel output • “Sort” between them Sort-First Geom Geom Rast Rast Disp Disp – Communicate work to the correct location on the screen Examples: Princeton Display Wall, WireGL A Sorting Classification of Parallel Rendering, Molnar et al. Big Data in Computer Graphics Fall 2002 Lecture 2 Taxonomy of Parallel Graphics App App Geom Geom Rast Rast Disp Disp • Object parallel input • Image parallel output • “Sort” between them – Communicate work to the correct location on Sort-Middle the screen Examples: SGI InfiniteReality, UNC PixelPlanes 5 A Sorting Classification of Parallel Rendering, Molnar et al. Big Data in Computer Graphics Fall 2002 Lecture 2 Taxonomy of Parallel Graphics App App Geom Geom Rast Rast • Object parallel input • Image parallel output • “Sort” between them – Communicate work to the correct location on the screen Sort-Last Disp Disp Example: UNC PixelFlow, Kubota Denali, SUN SAGE A Sorting Classification of Parallel Rendering, Molnar et al. Big Data in Computer Graphics Fall 2002 Lecture 2 Extended Taxonomy Application Command Sort-First Geometry Sort-Middle Rasterization Texture Fragment Sort-Last Fragment Sort-Last Image Composition Display Designing Graphics Architectures around Scalability and Communication Matthew Eldridge, Ph.D. Thesis 2002 Big Data in Computer Graphics Fall 2002 Lecture 2 Screen Space Parallelism • Divide screen into “tiles” • Assign tiles to separate processors • Primitives that overlap multiple tiles are rendered redundantly • What makes a good partition? Big Data in Computer Graphics Fall 2002 Lecture 2 Screen Space Parallelism What makes a good screen partition? Big Data in Computer Graphics Fall 2002 Lecture 2 Screen Space Parallelism • Static partitions – Balance between load balance and efficiency – Minimize length of region boundaries • Adaptive partitions – – – – – Simple methods [Roble88] Median-cut [Whelan85] Top-down decomposition [Whitman92] MAHD [Mueller94] Hybrid algorithms [Samanta00] Big Data in Computer Graphics Fall 2002 Lecture 2 Image Compositing • Sort-last (usually) requires image merging • High bandwidth requirements • Ordering semantics? Big Data in Computer Graphics Fall 2002 Lecture 2 Software Compositing • Many-to-one communication: bottleneck Framebuffer Framebuffer Framebuffer Framebuffer Framebuffer Framebuffer Framebuffer Framebuffer Big Data in Computer Graphics Fall 2002 Lecture 2 Display Binary Tree Compositing • Reasonable bandwidth requirements • Resource under-utilization Framebuffer Framebuffer Framebuffer Framebuffer Framebuffer Framebuffer Framebuffer Framebuffer Display Big Data in Computer Graphics Fall 2002 Lecture 2 Binary Swap Compositing • Reasonable bandwidth requirements • Resources fully utilized Framebuffer Framebuffer Framebuffer Framebuffer Framebuffer Framebuffer Framebuffer Framebuffer Big Data in Computer Graphics Fall 2002 Lecture 2 Display Image Compositing Hardware Lightning-2 = Digital Video Switch from Intel Research Route partial scanlines from n inputs to m outputs Tile reassembly or depth compositing at full refresh rate Lightning-2: A High-Performance Display Subsystem for PC Clusters Stoll et al., SIGGRAPH 2001 Big Data in Computer Graphics Fall 2002 Lecture 2 Software Systems • Iris Performer – Efficient geometry/state management – Frustum Culling / LOD support – Multiple processors / graphics pipes IRIS Performer: A High Performance Multiprocessing Toolkit for Real-Time 3D Graphics Rohlf and Helman, SIGGRAPH 1994 Big Data in Computer Graphics Fall 2002 Lecture 2 Iris Performer Big Data in Computer Graphics Fall 2002 Lecture 2 Iris Performer Big Data in Computer Graphics Fall 2002 Lecture 2 Mesh Simplification • Idea: draw less stuff! • Pixels per polygon polygons per pixel Big Data in Computer Graphics Fall 2002 Lecture 2 Mesh Simplification • Idea: draw less stuff! • Pixels per polygon polygons per pixel Big Data in Computer Graphics Fall 2002 Lecture 2 Mesh Simplification • Idea: draw less stuff! • Pixels per polygon polygons per pixel Big Data in Computer Graphics Fall 2002 Lecture 2 Mesh Simplification • Idea: draw less stuff! • Pixels per polygon polygons per pixel Big Data in Computer Graphics Fall 2002 Lecture 2 Mesh Simplification • Idea: draw less stuff! • Pixels per polygon polygons per pixel Big Data in Computer Graphics Fall 2002 Lecture 2 Simplication Hierarchies 10,108 polygons Big Data in Computer Graphics Fall 2002 Lecture 2 1,383 polygons 474 polygons 46 polygons Simplification Hierarchies • Choose an appropriate representation based on screen coverage • Smooth transitions? (Courtesy IBM) Big Data in Computer Graphics Fall 2002 Lecture 2 Subsampling • Idea: Not enough time to draw everything • So don’t bother! Big Data in Computer Graphics Fall 2002 Lecture 2 Frameless Rendering Big Data in Computer Graphics Fall 2002 Lecture 2 Point Rendering • Idea: Very dense 3D models need not store connectivity! • Bounding sphere hierarchy [Rusinkiewicz00] • Traverse hierarchy to some depth • Depth projected area and time Big Data in Computer Graphics Fall 2002 Lecture 2 QSplat Demo QSplat: A Multiresolution Point Rendering System for Large Meshes Rusinkiewicz and Levoy, SIGGRAPH 2000 Big Data in Computer Graphics Fall 2002 Lecture 2 Using Commodity Technology • Commodity parts – Complete graphics pipeline on a single chip – Extremely fast product cycle • Flexibility – Configurable building blocks • Cost – Driven by consumer demand – Economies of scale • Availability – Insufficient demand for “big iron” solutions – Little or no ongoing innovation in graphics “supercomputers” Big Data in Computer Graphics Fall 2002 Lecture 2 Cluster Graphics App Graphics Hardware Display App Graphics Hardware Display App Graphics Hardware Display App Graphics Hardware Display •Raw scalability is easy (just add more pipelines) •Exposing that scalability to an application is hard Big Data in Computer Graphics Fall 2002 Lecture 2 Cluster Graphics App Server Display App Server Display App Server Display App Server Display • Graphics hardware is indivisible • Each graphics pipeline managed by a network server Big Data in Computer Graphics Fall 2002 Lecture 2 Cluster Graphics Server App Server Display Server Display App App Server • • • • Flexible number of clients, servers and displays Compute limited = more clients Graphics limited = more servers Interface/network limited = more of both Big Data in Computer Graphics Fall 2002 Lecture 2 Stanford/DOE Visualization Cluster • 32 nodes, each with graphics • Compaq SP750 – – – – – – Dual 800 MHz PIII Xeon i840 logic 256 MB memory 18 GB disk 64-bit 66 MHz PCI AGP-4x • Graphics – 16 NVIDIA Quadro2 Pro – 16 NVIDIA GeForce 3 • Network – Myrinet (LANai 7 ~ 100 MB/sec) Big Data in Computer Graphics Fall 2002 Lecture 2 WireGL/Chromium • Replace system’s OpenGL driver – Industry standard API – Support existing unmodified applications • Manipulate streams of API commands – Route commands over a network – Render commands using graphics hardware • Allow parallel applications to issue OpenGL – Constrain ordering between multiple streams WireGL: A Scalable Graphics System for Clusters Humphreys et al., SIGGRAPH 2001 Chromium: A Stream Processing Framework for Interactive Rendering on Clusters of Workstations Humphreys et al., SIGGRAPH 2002 Big Data in Computer Graphics Fall 2002 Lecture 2 WireGL: Output Scalability Marching Cubes Point-to-point “broadcast” doesn’t scale at all However, it’s still the commercial solution [SGI Cluster] Big Data in Computer Graphics Fall 2002 Lecture 2 WireGL: Peak Rendering Performance Immediate Mode • Unstructured triangle strips • 200 triangles/strip Data change every frame Peak observed: 161,000,000 tris/second Total scene size = 16,000,000 triangles Total display size at 32 nodes: 2048x1024 (256x256 tiles) Big Data in Computer Graphics Fall 2002 Lecture 2 Stream Processing Streams: • Ordered sequences of records • Potentially infinite Transformations: • Process only the head element • Finite local storage • Can be partitioned across processors to expose parallelism Stream Source .. . Stream Source Big Data in Computer Graphics Fall 2002 Lecture 2 Transform 1 .. . Transform 1 Transform 2 Stream Output Why Stream Processing? • Elegant mechanism for dealing with huge data – Explicitly expose and exploit parallelism – Hide latency • State of the art in many fields: – – – – – – – Databases [Terry92, Babu01] Telephony [Cortes00] Online Algorithms [Borodin98,O’Callaghan02] Sensor Fusion [Madden01] Media Processing [Halfhill00,Khailany01] Computer Architecture [Rixner98] Graphics Hardware [Owens00, NVIDIA, ATI] Big Data in Computer Graphics Fall 2002 Lecture 2 Stream Computing • Observation: media applications are a poor match for current microprocessor design • Idea: build hardware to efficiently support streaming computation • Achieve very high arithmetic density • Exploit locality of reference • Exploit parallelism • “Imagine”: Reconfigurable stream computing Big Data in Computer Graphics Fall 2002 Lecture 2 OpenGL on Imagine Geometry Rasterization Transform Input Data Composite Hash Spanprep Sort / Merge GLShader Spangen Primitive Assembly Compact Spanrast Z Lookup Cull Texture Lookup Zcompare Project Color, Z Write Image Polygon Rendering on a Stream Architecture Owens et al., Eurographics/SIGGRAPH Hardware Workshop 2000 Big Data in Computer Graphics Fall 2002 Lecture 2 Dynamic Range Compression Underexposed Overexposed • What’s a poor photographer to do? • Idea: non-global, non-linear tone mapping Big Data in Computer Graphics Fall 2002 Lecture 2 Dynamic Range Compression Big Data in Computer Graphics Fall 2002 Lecture 2 HDR Compression in 1D y f x H x log f x Gradient Domain High Dynamic Range Compression Fattal, Lischinski and Werman, SIGGRAPH 2002 Big Data in Computer Graphics Fall 2002 Lecture 2 HDR Compression in 1D f x H x f x G x H x x Gradient Domain High Dynamic Range Compression Fattal, Lischinski and Werman, SIGGRAPH 2002 Big Data in Computer Graphics Fall 2002 Lecture 2 HDR Compression in 1D x I x C G t dt 0 Gradient Domain High Dynamic Range Compression Fattal, Lischinski and Werman, SIGGRAPH 2002 Big Data in Computer Graphics Fall 2002 Lecture 2 ye I x Volume Rendering • Directly render volumetric data • Volume = regularly sampled scalar function • Possiblities: – – – – – – Extract isosurface, render polygons [Lorensen87] Ray tracing [Levoy90] Splatting [Laur91] 2D Texture Mapping [Cabral94] 3D Texture Mapping [Wilson94] Special Hardware [Pfister99] Big Data in Computer Graphics Fall 2002 Lecture 2 Marching Cubes (okay, Squares) Marching Cubes: a high resolution 3D surface reconstruction algorithm Lorensen and Cline, SIGGRAPH 1987 Big Data in Computer Graphics Fall 2002 Lecture 2 Marching Squares Marching Cubes: a high resolution 3D surface reconstruction algorithm Lorensen and Cline, SIGGRAPH 1987 Big Data in Computer Graphics Fall 2002 Lecture 2 Marching Squares Marching Cubes: a high resolution 3D surface reconstruction algorithm Lorensen and Cline, SIGGRAPH 1987 Big Data in Computer Graphics Fall 2002 Lecture 2 Marching Cubes Big Data in Computer Graphics Fall 2002 Lecture 2 Visualization Computed reflectance Big Data in Computer Graphics Fall 2002 Lecture 2 Visualization accessibility shading Big Data in Computer Graphics Fall 2002 Lecture 2 Visualization • Yikes! • Minimize crossings • Reveal structure – Hierarchy? – Symmetry? – Cycles? • Deal with enormity Hofstadter. Godel, Escher, Bach. Big Data in Computer Graphics Fall 2002 Lecture 2 Example: Internet Links Big Data in Computer Graphics Fall 2002 Lecture 2 Example: Internet Links • Idea: use a hyperbolic visualization space [Munzner 95,97,98] Big Data in Computer Graphics Fall 2002 Lecture 2 Texture Management • • • • Only part of graphics state that’s big Textures need to be accessed by rasterizers Caching? Multiple rasterizers = replicated textures? Big Data in Computer Graphics Fall 2002 Lecture 2 Texture Caching • • • • • • Representation of textures critical Cache design affects rasterization algorithm Memory bandwidth is precious Single rasterizer design: [Hakura97] Prefetching to hide latency: [Igehy98] Multiple rasterizer design: [Igehy99] Big Data in Computer Graphics Fall 2002 Lecture 2 Huge Textures • Satellite images @ 1m resolution = 11 PB • For very large mipmaps, most pixels are not accessed for any given view • Idea: only store a partial mipmap pyramid • Update the partial pyramid on the fly The Clipmap: A Virtual Mipmap Tanner, Migdal, and Jones, SIGGRAPH 1998 Big Data in Computer Graphics Fall 2002 Lecture 2 Huge Textures • Homogeneous representation • Textures for overview renderings • Polygons for up-close viewing • Recompute mipmap tiles on the fly Using Texture Mapping with Mipmapping to Render a VLSI Layout Solomon and Horowitz, DAC 2001 Big Data in Computer Graphics Fall 2002 Lecture 2 Big Displays Big Data in Computer Graphics Fall 2002 Lecture 2 Interaction • Keyboard/mouse/desktop metaphor? • New types of interaction techniques: – Gesture – Voice – Pen • Legacy interaction? • Collaborative interaction • Most effective use of space Big Data in Computer Graphics Fall 2002 Lecture 2 Yes Big Data in Computer Graphics Fall 2002 Lecture 2 No Big Data in Computer Graphics Fall 2002 Lecture 2 Projector Alignment: Static Big Data in Computer Graphics Fall 2002 Lecture 2 Projector Alignment: Static Big Data in Computer Graphics Fall 2002 Lecture 2 Projector Alignment: Dynamic UNC Office of the Future Group Big Data in Computer Graphics Fall 2002 Lecture 2 Projector Alignment: Dynamic WireGL extensions for casually aligned displays UNC PixelFlex team and Michael Brown, UKY Big Data in Computer Graphics Fall 2002 Lecture 2 Ray Tracing • Object-order algorithm • Sensitive to output resolution • Built-in occlusion culling Big Data in Computer Graphics Fall 2002 Lecture 2 Memory Coherence • Complex scenes can be much bigger than memory • Efficient rendering data management! • Monte Carlo ray tracing has poor coherence • But ray tracing need not be recursive! • Idea: Reorder computation for maximum coherence • Every ray is completely independent Rendering Complex Scenes with Memory-Coherent Ray Tracing Pharr, Kolb, Gershbein, and Hanrahan, SIGGRAPH 1997 Big Data in Computer Graphics Fall 2002 Lecture 2 Memory Coherent Ray Tracing Big Data in Computer Graphics Fall 2002 Lecture 2 Memory Coherent Ray Tracing Big Data in Computer Graphics Fall 2002 Lecture 2 Interactive Ray Tracing • • • • • • Raytracing: more efficient than rasterization Highly efficient and parallel Deferred shading Huge parallel machines [Parker99] Clusters of workstations [Wald01] GPU-based implementation [Purcell02] Big Data in Computer Graphics Fall 2002 Lecture 2 Streaming Ray Tracer Camera Generate Eye Rays Grid Traverse Acceleration Structure Triangles Intersect Triangles Materials Shade Hits and Generate Shading Rays Ray Tracing on Programmable Graphics Hardware Purcell, Buck, Mark, and Hanrahan, SIGGRAPH 2002 Big Data in Computer Graphics Fall 2002 Lecture 2 Geometry in Texture Maps! Uniform Grid 3D Luminance Texture vox0 vox1 vox2 vox3 vox4 vox5 0 4 11 38 … voxM 564 Triangle List 1D Luminance Texture vox0 0 21 216 Triangles 3x 1D RGB Textures 3 vox2 1 3 7 tri0 v0 xyz tri1 xyz tri2 xyz tri3 xyz tri4 xyz tri5 xyz … triN xyz v1 xyz xyz xyz xyz xyz xyz … xyz xyz xyz xyz xyz xyz xyz … xyz v2 Ray Tracing on Programmable Graphics Hardware Purcell, Buck, Mark, and Hanrahan, SIGGRAPH 2002 Big Data in Computer Graphics Fall 2002 Lecture 2 … OpenRT Big Data in Computer Graphics Fall 2002 Lecture 2 OpenRT Big Data in Computer Graphics Fall 2002 Lecture 2 OpenRT Big Data in Computer Graphics Fall 2002 Lecture 2 OpenRT Big Data in Computer Graphics Fall 2002 Lecture 2 High Performance Architectures • Huge variety of graphics hardware out there • We’ll look at 12 at the end of the semester • Stanford graphics architecture course: graphics.stanford.edu/courses/cs448a-01-fall/ Big Data in Computer Graphics Fall 2002 Lecture 2