60 likes | 176 Vues
This project investigates the architectural considerations of GPUs, focusing on their implementation for Cellular Automata (CA) programming. It evaluates performance differences between an x86 CPU and an NVIDIA graphics card while developing a 2D grid CA model. The study reveals that while GPUs can offer significant speedups over serial processors, achieving optimal performance requires tailored programming techniques. The findings suggest that the effort may only be justified for larger grid sizes, as adaptations may be necessary even within the same family of GPU hardware.
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?