Giter Club home page Giter Club logo

project1-cuda-flocking's Introduction

University of Pennsylvania, CIS 565: GPU Programming and Architecture, Project 1 - Flocking

  • Ricky Rajani
  • Tested on: Windows 7, i7-6700 @ 3.40GHz 16GB, NVIDIA Quadro K620 (Moore 100C Lab)

5,000 Boids on Coherent Uniform Grid

50,000 Boids on Coherent Uniform Grid

100,000 Boids on Coherent Uniform Grid

Performance Analysis

For each implementation, how does changing the number of boids affect performance?

As the number of boids increased, there was a significant drop in performance for each implementation. However, the scattered uniform grid method and coherent uniform grid method improved performance considerably. Improvement in performance can be attributed to runtime complexity of the search algorithms in each implementation. The uniform grid method decreased the number of boids that were checked during each iteration. On top of that, coherence made memory access significantly faster.

For the coherent uniform grid: did you experience any performance improvements with the more coherent uniform grid?

By rearranging the boid data such that velocities and positions of boid could be accessed quickly, there was a considerable performance improvement. This method allowed for direct access to boid data that worked around the GPU having to jump around in memory via pointers.

For each implementation, how does changing the block count and block size affect performance?

All implementations show a significant performance hit at low block sizes, specifically 32, and a slight decrease in performance as blocksize increased past 128 towards the max value of 1024. For smaller block sizes, it should be noted that there can only be one warp (32 threads) in a block. This leads to a decrease in shared memory and a need for more blocks. For large block sizes, there is a need to decrease the number of blocks we can have because there is a cap on the number of threads the GPU can handle.

project1-cuda-flocking's People

Contributors

likangning93 avatar ottaviohartman avatar rickyrajani avatar trungtle avatar

Watchers

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.