Code Monkey home page Code Monkey logo

cellular_automata_fire_simulation's Introduction

2019 Edit

cellular_automata_fire_simulation

This is a small cellular automata fire simulation created for the bachelors level IMT3612 - GPU programming course at NTNU Gjøvik. The fire simulation is implemented both on the CPU and on the GPU (using OpenCL) to measure performance differences.

Animation


Animation

cellular_automata_fire_simulation's People

Contributors

clausbugge avatar per-morten avatar

Watchers

 avatar

cellular_automata_fire_simulation's Issues

Create opencl utility functionality

Create some general utility functionality for opencl, things like creating contexts and queues, without getting deprecation warnings etc.

Setup double buffer functionality

It was decided that we would do a double buffer strategy on the cpu implementation of the project,
this functionality need to be set up.

Add pthread dependency

Seeing as we are not able to use proper C11 because of MSVC we will have to use some other library for handling threading, pthread is the most natural choice.

Draw grid

Will need a way to draw the grid in the cpu implementation.

Create CP_ASSERT

Want our own custom assert messages that gives us more info than the regular assert.

Make logging multi-platform

Currently the logging function does not work properly on windows, because it tries to use '/' When looking up filepaths. This must be fixed.

Cross platform

Issue used for various cross platform related issues.

Create SDL wrapper

Create function that initializes SDL, in general we don't want to have much overlap with our SDL code and our OpenCL code, so it would be nice if we in general could wrap up a lot of the functionality with our own abstraction layer.

Add logger

Add a logger, allowing us to log output in different categories.

Generalize cmake etc for multiple platforms

Need to generalize cmake so that it can be used both in windows and in ubuntu.
This also includes certain parts of the code, like using C99 functionality, which is not available on MSVC.

Test offset functionality

Create a kernel that tests the use of OpenCL offsets, to check if we can properly do offsets as we envision them.

Create opencl logging functionality

Seeing as printf prints to an implementation defined stream, it can't necessarily be used for proper debugging with messages, it would be nice to have some way of reporting error messages back to the programmers.

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.