60 likes | 166 Views
GPU Architectural Considerations for Cellular Automata Programming A comparison of performance between a x86 CPU and nVidia Graphics Card. Stephen Orchowski , CSE 520, 12/3/2008. Project Goals. To study the architecture of a GPU
E N D
GPU Architectural Considerations for Cellular Automata ProgrammingA comparison of performance between a x86 CPU and nVidia Graphics Card Stephen Orchowski, CSE 520, 12/3/2008
Project Goals • To study the architecture of a GPU • To study a programming model based on that architecture and gain experience using it • To determine how the various architectural features affect performance and to what degree • To suggest an optimum configuration of a particular algorithm for the selected GPU
Cellular Automata 2-Dimensional grid where each cell value in one generation is based on simple rules using the values of adjacent surrounding neighbors Can start with random or pre-defined patterns Successive generations evolve into complex patterns Highly parallelizable!
Conclusions…so far… • GPUs offer speedup over a serial processor, but there is no “silver bullet” for programming techniques • Developers have to tweak the programming to get maximum performance out of the architecture • Return on programming effort doesn’t always justify use of the GPU – Implementing CA on a GPU probably isn’t worth the effort unless the grid size is extensively large, but CA does have applications to more complex algorithms with Computational Fluid Dynamics and does provide a good framework for studying the architecture • Even different versions of a GPU will also necessitate further tweaks to the program, even if the card is of the same GPU hardware family • CUDA vs. Cell programming and other architectures – tradeoffs?