Git Product home page Git Product logo

game-of-life-cuda's Introduction

Conway's Game of Life on GPU using CUDA

This project compares performance of CPU and GPU in evaluation of famous Conway's Game of Life. The performance was tested on three different implementations. The most sophisticated version of the algorithm on GPU stores data in one bit-per-cell array and leads to speed-up of 480x compared to serial CPU algorithm. The best implementation for CPU turned out to be lookup-table approach leading to 60x speedups over serial CPU.

Author: Marek Fiser < [email protected] >

Project page: http://www.marekfiser.com/Projects/Conways-Game-of-Life-on-GPU-using-CUDA

License: Public domain, see LICENSE.txt for details.

See other license files for inluded libraries: FreeGlut, Glew, and Google Test.

Features

  • CPU and CUDA GPU implementations of Conway's Game of Life.
    • Three different implementations of both CPU and GPU algorithms.
  • Automatic benchmark with export to CSV.
  • Unit tests assuring corectness.
  • Code is well structured and commented.
  • OpenGL used as display engine
    • OpenGL-CUDA interoperability for fast display (no GPU-CPU copy).
    • Cool post-process visual effects.

Compiling and running

In order to compile/run this application you probably need to have CUDA SDK installed and your NVIDIA graphics card needs to have CUDA Capability at least 2.0. All other necessary DLLs are included in this package.

There is also compiled executable in the bin folder.

In order to run GPU benchmark, the time limit on kernels needs to be disabled or very high (~50 seconds) because some kernel configurations take very long time. Alternatively, you can change the values in benchmark.h file or press Shift+Q to run "debug" version of benchmark that has lower limits for life world sizes.

game-of-life-cuda's People

Contributors

nightelfik avatar

Watchers

Chris Maughan avatar James Cloos avatar  avatar

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    ๐Ÿ–– Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. ๐Ÿ“Š๐Ÿ“ˆ๐ŸŽ‰

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google โค๏ธ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.