380 likes | 529 Views
Karu Sankaralingam University of Wisconsin-Madison Adapted from “Toward A Multicore Architecture for Real-time Raytracing, MICRO-41, 2008, Venkatraman Govindaraju, Peter Djeu, Karthikeyan Sankaralingam, Mary Vernon, William R. Mark. Beyond CUDA/GPUs and Future Graphics Architectures.
E N D
Karu Sankaralingam University of Wisconsin-Madison Adapted from “Toward A Multicore Architecture for Real-time Raytracing, MICRO-41, 2008, Venkatraman Govindaraju, Peter Djeu, Karthikeyan Sankaralingam, Mary Vernon, William R. Mark. Beyond CUDA/GPUs and Future Graphics Architectures
Real-time Graphics Rendering Future Today
Real-time Graphics Rendering What are the problems? How can we get there?
GPU/CUDA Z-buffer
“Ptolemic” Graphic Universe Z-buffer Application Arch • Architecture, application all optimized for Z-buffer • Difficult to render images with realistic effects. • self-reflection, soft shadows, ambient occlusion • Problems: • Scene constraints, Artist and programmer productivity
Current Graphics Architectures Courtesy: ACM Queue
How did we get here? • Hardware Rasterizers and perspective-correct texture mapping (RIVA 128) • Single Pass Multitexture (TNT / TNT2) • Register Combiners: a generalization of multitexture (GeForce 256) • Per-pixel Shading (Geforce 2 GTS) • Programmable Hardware Pixel Shading • Programmable Vertex Shading • CUDA
Algorithm Application Ray-tracing Arch “Copernican” Graphic Universe • Architecture, application revolves around Algorithm • More general purpose algorithm • Easier to provide realistic effects • Architecture can support other applications
Future Graphics Architectures Courtesy: ACM Queue
Executive Summary: Copernicus System Co-designed application, architecture and analysis framework Path from specialized graphics architecture to more general purpose architecture. A detailed characterization and analysis framework Real-time frame rates possible for high quality dynamic scenes
Outline Motivation Copernicus system Graphics Algorithm: Razor Architecture Evaluation and Results Summary
Ray-tracing Full scene Cube Cylinder • Simulating the behavior light rays through 3D scene • Rays from eye to scene (Primary rays) • Rays from hitpoint to light (Secondary rays) • Acceleration structure (eg. BSP Tree) for efficiency
Disadvantages of Raytracing • Every frame need to rebuild the acceleration structure for dynamic scenes. • Irregular data accesses for traversing the acceleration structure. • Higher resolution secondary ray tracing computation
Razor: A Dynamic Multiresolution Raytracer Thread 1 Thread 2 Cylinder Cube • Packet ray-tracer: Traces beam of rays instead of a ray • Opportunity for data level parallelism • Each thread lazily builds its own acceleration structure(KD Tree) • Builds the portion of structure it needs.
Razor: A Dynamic Multiresolution Raytracer • Multi-level resolution to reduce secondary rays computation. • Replicates KD-Tree to reduce synchronization across threads. • Hypothesis: Duplication across threads will be limited.
Razor Implementation • Linux/x86 • Implemented Razor in Intel Clovertown. • Parallelized using pthreads. • Optimized with SSE instructions • Sustains 1 FPS on this prototype system • Helps develop algorithms • Designed with future hardware in mind
Razor’s Memory Usage Memory footprint # Threads
Parallel Scalability Speedup # Threads
Outline • Motivation • Copernicus system • Graphics Algorithm: Razor • Architecture • Evaluation and Results • Summary
Architecture: Core • Inorder core • Private L1 Data and Instruction Cache • Supports SIMD instructions • SMT Threads to hide memory latency
Architecture: Tile • Shared L2 cache • Shared Accelerator for specialized instructions
Architecture Razor Mapping Assigned to Core Assigned to Tile
Outline • Motivation • Copernicus system • Graphics Algorithm: Razor • Architecture • Evaluation and Results • Summary
Benchmark Scenes Courtyard Fairyforest Forest Juarez Saloon v
Evaluation Methodology Simulation with Multifacet/GEMS Simulate SSE Instructions Simulate a full tile Validated with prototype data Pin-based and PAPI-based performance counters Randomly selected regions of scenes Full chip Simulating full chip is too slow Build customized analytic model
Analytical Model Core Level Pipeline stalls Multiple threads Tile Level L2 contention Chip Level Main memory contention Compared with our simulation results
Full Chip Performance Million Rays/Seconds #Tiles
Results • Goal: 100 Million rays per second • Achieved: 50 Million rays per second • With 16 tiles and 4 DIMMs • Insights: • 4 SMT single issue is ideal for this workload • Good parallel scalability • Razor’s physically-motivated optimizations work • Potential for further architectural optimizations • Shared accelerator • Wide SIMD bundles
Outline • Motivation • Copernicus system • Graphics Algorithm: Razor • Architecture • Evaluation and Results • Summary
Summary A transformation path to ray-tracing Ptolemic universe to Copernican graphics universe Unique architecture design point Tradeoff data redundancy and re-computation over synchronization Evaluation methodology interesting in its own right Prototype, simulation and analytical framework to design and evaluate future systems Future work Instructions specialization and shared accelerator design Tradeoffs with SIMD width and area Memory system