iwatake2222 / FastGameOfLife

Fast Conway's Game of Life with OpenGL, OpenMP and CUDA

Geek Repo:Geek Repo

Github PK Tool:Github PK Tool

This software is released under the MIT License, see LICENSE.txt.

Fast Conway's Game of Life

  • This is a CPP project for Conway's Game of Life.
  • I use OpenGL, OpenMP and CUDA for high speed performance.

  • Link to Youtube

Link to YouTube Video

Environment

This project uses cmake for multi-platform. I confirmed on the following environments:

  • Windows 10, 64-bit
    • Intel Core i7-6700@3.4GHz x 8 Core
    • NVIDIA GeForce GTX1070 (CUDA10.0)
    • Visual Studio 2017 64-bit
  • Ubuntu 16.04 on VirtualBox
  • Jetson Nano

How to start the project

The following library/app are needed:

  • cmake-gui (for Windows), cmake (for Linux)
  • CUDA (not mandatory)

Windows (Visual Studio)

  1. Start cmake-gui
  2. Set the same path of top CMakeLists.txt (and README.md) to Where is the sourcecode
  3. Set the path you want to create project files to Where to build the binaries
  4. Click Configure and choose the project type which you want to generate (e.g. Visual Studio 15 2017 Win64)
  5. Click Generate, then the project files are created
  6. Open GameOfLife.sln and set GameOfLife project as a startup project, then build and run!!

Note: In Visual Studio, you might need to build Cuda library (AlgorithmCudaNormal, AlgorithmCudaGroup projects) individually, for some reasons. Otherwise, the libray won't be updated.

Linux

cd LifeGameFast
mkdir build && cd build
cmake ..
make -j4
cd GameOfLife
./GameOfLife &

Acknowledge

The following libraries are used in this projects. Thank you!! I made some modifications so that these libraries can be built with CMake.

  • AntTweakBar
  • Freeglut

About

Fast Conway's Game of Life with OpenGL, OpenMP and CUDA

License:MIT License


Languages

Language:C 49.6%Language:C++ 42.8%Language:HTML 3.5%Language:Objective-C 1.4%Language:Cuda 1.4%Language:CMake 1.0%Language:Makefile 0.2%Language:HLSL 0.1%Language:Python 0.0%Language:Batchfile 0.0%