From d7ad9148d2e1ce34cae86a1427b2d59b31976d23 Mon Sep 17 00:00:00 2001 From: Yash Date: Sat, 9 Sep 2017 03:21:19 -0400 Subject: [PATCH 1/7] Part 1 --- src/CMakeLists.txt | 2 +- src/kernel.cu | 65 +++++++++++++++++++++++++++++++++++++++++++--- 2 files changed, 62 insertions(+), 5 deletions(-) diff --git a/src/CMakeLists.txt b/src/CMakeLists.txt index fdd636d..dff0113 100644 --- a/src/CMakeLists.txt +++ b/src/CMakeLists.txt @@ -10,5 +10,5 @@ set(SOURCE_FILES cuda_add_library(src ${SOURCE_FILES} - OPTIONS -arch=sm_20 + OPTIONS -arch=sm_50 ) diff --git a/src/kernel.cu b/src/kernel.cu index aaf0fbf..ece80a6 100644 --- a/src/kernel.cu +++ b/src/kernel.cu @@ -230,10 +230,52 @@ void Boids::copyBoidsToVBO(float *vbodptr_positions, float *vbodptr_velocities) * in the `pos` and `vel` arrays. */ __device__ glm::vec3 computeVelocityChange(int N, int iSelf, const glm::vec3 *pos, const glm::vec3 *vel) { - // Rule 1: boids fly towards their local perceived center of mass, which excludes themselves - // Rule 2: boids try to stay a distance d away from each other - // Rule 3: boids try to match the speed of surrounding boids - return glm::vec3(0.0f, 0.0f, 0.0f); + glm::vec3 posboid = pos[iSelf]; + glm::vec3 veln = vel[iSelf]; + glm::vec3 perceived_center(0, 0, 0); + glm::vec3 c(0, 0, 0); + glm::vec3 perceived_velocity(0, 0, 0); + int n1=0, n3=0; + + // One loop to rule them all. + for (int b = 0; b < N; b++) + { + float distance = glm::distance(posboid, pos[b]); + if (b != iSelf) + { + // Rule 1: boids fly towards their local perceived center of mass, which excludes themselves + if (distance < rule1Distance) + { + perceived_center += pos[b]; + n1++; + } + // Rule 2: boids try to stay a distance d away from each other + if (distance < rule2Distance) + c -= (pos[b] - posboid); + // Rule 3: boids try to match the speed of surrounding boids + if (distance < rule3Distance) + { + perceived_velocity += vel[b]; + n3++; + } + } + } + //Adding rule velocities to initial velocity. + if (n1 > 0) + { + perceived_center /= n1; + veln += ((perceived_center - posboid) * rule1Scale); + } + + veln += (c * rule2Scale); + + if (n3 > 0) + { + perceived_velocity /= n3; + veln += (perceived_velocity * rule3Scale); + } + + return veln; } /** @@ -242,9 +284,18 @@ __device__ glm::vec3 computeVelocityChange(int N, int iSelf, const glm::vec3 *po */ __global__ void kernUpdateVelocityBruteForce(int N, glm::vec3 *pos, glm::vec3 *vel1, glm::vec3 *vel2) { + int index = threadIdx.x + (blockIdx.x * blockDim.x); + if (index >= N) { + return; + } // Compute a new velocity based on pos and vel1 + glm::vec3 veln = computeVelocityChange(N, index, pos, vel1); // Clamp the speed + float speed = glm::length(veln); + if (speed > maxSpeed) + veln *= maxSpeed / speed; // Record the new velocity into vel2. Question: why NOT vel1? + vel2[index] = veln; } /** @@ -347,8 +398,14 @@ __global__ void kernUpdateVelNeighborSearchCoherent( * Step the entire N-body simulation by `dt` seconds. */ void Boids::stepSimulationNaive(float dt) { + dim3 fullBlocksPerGrid((numObjects + blockSize - 1) / blockSize); // TODO-1.2 - use the kernels you wrote to step the simulation forward in time. + kernUpdateVelocityBruteForce <<< fullBlocksPerGrid, blockSize >>>(numObjects, dev_pos, dev_vel1, dev_vel2); + kernUpdatePos <<< fullBlocksPerGrid, blockSize >>>(numObjects, dt, dev_pos, dev_vel2); // TODO-1.2 ping-pong the velocity buffers + glm::vec3 *tmp = dev_vel1; + dev_vel1 = dev_vel2; + dev_vel2 = tmp; } void Boids::stepSimulationScatteredGrid(float dt) { From 50ae1c68641b6a5bd2b56955063425a0cf019f76 Mon Sep 17 00:00:00 2001 From: Yash Date: Sun, 10 Sep 2017 08:54:38 -0400 Subject: [PATCH 2/7] Part 2.1 Uniform Grid --- src/kernel.cu | 660 +++++++++++++++++++++++++++++++------------------- src/main.cpp | 2 +- 2 files changed, 409 insertions(+), 253 deletions(-) diff --git a/src/kernel.cu b/src/kernel.cu index ece80a6..4ed204b 100644 --- a/src/kernel.cu +++ b/src/kernel.cu @@ -5,6 +5,7 @@ #include #include "utilityCore.hpp" #include "kernel.h" +#include // LOOK-2.1 potentially useful for doing grid-based neighbor search #ifndef imax @@ -21,14 +22,14 @@ * Check for CUDA errors; print and exit if there was a problem. */ void checkCUDAError(const char *msg, int line = -1) { - cudaError_t err = cudaGetLastError(); - if (cudaSuccess != err) { - if (line >= 0) { - fprintf(stderr, "Line %d: ", line); - } - fprintf(stderr, "Cuda error: %s: %s.\n", msg, cudaGetErrorString(err)); - exit(EXIT_FAILURE); - } + cudaError_t err = cudaGetLastError(); + if (cudaSuccess != err) { + if (line >= 0) { + fprintf(stderr, "Line %d: ", line); + } + fprintf(stderr, "Cuda error: %s: %s.\n", msg, cudaGetErrorString(err)); + exit(EXIT_FAILURE); + } } @@ -76,18 +77,18 @@ glm::vec3 *dev_vel2; // For efficient sorting and the uniform grid. These should always be parallel. int *dev_particleArrayIndices; // What index in dev_pos and dev_velX represents this particle? int *dev_particleGridIndices; // What grid cell is this particle in? -// needed for use with thrust + // needed for use with thrust thrust::device_ptr dev_thrust_particleArrayIndices; thrust::device_ptr dev_thrust_particleGridIndices; int *dev_gridCellStartIndices; // What part of dev_particleArrayIndices belongs int *dev_gridCellEndIndices; // to this cell? -// TODO-2.3 - consider what additional buffers you might need to reshuffle -// the position and velocity data to be coherent within cells. + // TODO-2.3 - consider what additional buffers you might need to reshuffle + // the position and velocity data to be coherent within cells. -// LOOK-2.1 - Grid parameters based on simulation parameters. -// These are automatically computed for you in Boids::initSimulation + // LOOK-2.1 - Grid parameters based on simulation parameters. + // These are automatically computed for you in Boids::initSimulation int gridCellCount; int gridSideCount; float gridCellWidth; @@ -99,13 +100,13 @@ glm::vec3 gridMinimum; ******************/ __host__ __device__ unsigned int hash(unsigned int a) { - a = (a + 0x7ed55d16) + (a << 12); - a = (a ^ 0xc761c23c) ^ (a >> 19); - a = (a + 0x165667b1) + (a << 5); - a = (a + 0xd3a2646c) ^ (a << 9); - a = (a + 0xfd7046c5) + (a << 3); - a = (a ^ 0xb55a4f09) ^ (a >> 16); - return a; + a = (a + 0x7ed55d16) + (a << 12); + a = (a ^ 0xc761c23c) ^ (a >> 19); + a = (a + 0x165667b1) + (a << 5); + a = (a + 0xd3a2646c) ^ (a << 9); + a = (a + 0xfd7046c5) + (a << 3); + a = (a ^ 0xb55a4f09) ^ (a >> 16); + return a; } /** @@ -113,10 +114,10 @@ __host__ __device__ unsigned int hash(unsigned int a) { * Function for generating a random vec3. */ __host__ __device__ glm::vec3 generateRandomVec3(float time, int index) { - thrust::default_random_engine rng(hash((int)(index * time))); - thrust::uniform_real_distribution unitDistrib(-1, 1); + thrust::default_random_engine rng(hash((int)(index * time))); + thrust::uniform_real_distribution unitDistrib(-1, 1); - return glm::vec3((float)unitDistrib(rng), (float)unitDistrib(rng), (float)unitDistrib(rng)); + return glm::vec3((float)unitDistrib(rng), (float)unitDistrib(rng), (float)unitDistrib(rng)); } /** @@ -124,52 +125,68 @@ __host__ __device__ glm::vec3 generateRandomVec3(float time, int index) { * CUDA kernel for generating boids with a specified mass randomly around the star. */ __global__ void kernGenerateRandomPosArray(int time, int N, glm::vec3 * arr, float scale) { - int index = (blockIdx.x * blockDim.x) + threadIdx.x; - if (index < N) { - glm::vec3 rand = generateRandomVec3(time, index); - arr[index].x = scale * rand.x; - arr[index].y = scale * rand.y; - arr[index].z = scale * rand.z; - } + int index = (blockIdx.x * blockDim.x) + threadIdx.x; + if (index < N) { + glm::vec3 rand = generateRandomVec3(time, index); + arr[index].x = scale * rand.x; + arr[index].y = scale * rand.y; + arr[index].z = scale * rand.z; + } } /** * Initialize memory, update some globals */ void Boids::initSimulation(int N) { - numObjects = N; - dim3 fullBlocksPerGrid((N + blockSize - 1) / blockSize); - - // LOOK-1.2 - This is basic CUDA memory management and error checking. - // Don't forget to cudaFree in Boids::endSimulation. - cudaMalloc((void**)&dev_pos, N * sizeof(glm::vec3)); - checkCUDAErrorWithLine("cudaMalloc dev_pos failed!"); - - cudaMalloc((void**)&dev_vel1, N * sizeof(glm::vec3)); - checkCUDAErrorWithLine("cudaMalloc dev_vel1 failed!"); - - cudaMalloc((void**)&dev_vel2, N * sizeof(glm::vec3)); - checkCUDAErrorWithLine("cudaMalloc dev_vel2 failed!"); - - // LOOK-1.2 - This is a typical CUDA kernel invocation. - kernGenerateRandomPosArray<<>>(1, numObjects, - dev_pos, scene_scale); - checkCUDAErrorWithLine("kernGenerateRandomPosArray failed!"); - - // LOOK-2.1 computing grid params - gridCellWidth = 2.0f * std::max(std::max(rule1Distance, rule2Distance), rule3Distance); - int halfSideCount = (int)(scene_scale / gridCellWidth) + 1; - gridSideCount = 2 * halfSideCount; - - gridCellCount = gridSideCount * gridSideCount * gridSideCount; - gridInverseCellWidth = 1.0f / gridCellWidth; - float halfGridWidth = gridCellWidth * halfSideCount; - gridMinimum.x -= halfGridWidth; - gridMinimum.y -= halfGridWidth; - gridMinimum.z -= halfGridWidth; - - // TODO-2.1 TODO-2.3 - Allocate additional buffers here. - cudaThreadSynchronize(); + numObjects = N; + dim3 fullBlocksPerGrid((N + blockSize - 1) / blockSize); + + // LOOK-1.2 - This is basic CUDA memory management and error checking. + // Don't forget to cudaFree in Boids::endSimulation. + cudaMalloc((void**)&dev_pos, N * sizeof(glm::vec3)); + checkCUDAErrorWithLine("cudaMalloc dev_pos failed!"); + + cudaMalloc((void**)&dev_vel1, N * sizeof(glm::vec3)); + checkCUDAErrorWithLine("cudaMalloc dev_vel1 failed!"); + + cudaMalloc((void**)&dev_vel2, N * sizeof(glm::vec3)); + checkCUDAErrorWithLine("cudaMalloc dev_vel2 failed!"); + + // LOOK-1.2 - This is a typical CUDA kernel invocation. + kernGenerateRandomPosArray << > >(1, numObjects, + dev_pos, scene_scale); + checkCUDAErrorWithLine("kernGenerateRandomPosArray failed!"); + + // LOOK-2.1 computing grid params + gridCellWidth = 2.0f * std::max(std::max(rule1Distance, rule2Distance), rule3Distance); + int halfSideCount = (int)(scene_scale / gridCellWidth) + 1; + gridSideCount = 2 * halfSideCount; + + gridCellCount = gridSideCount * gridSideCount * gridSideCount; + gridInverseCellWidth = 1.0f / gridCellWidth; + float halfGridWidth = gridCellWidth * halfSideCount; + gridMinimum.x -= halfGridWidth; + gridMinimum.y -= halfGridWidth; + gridMinimum.z -= halfGridWidth; + + // TODO-2.1 TODO-2.3 - Allocate additional buffers here. + cudaMalloc((void**)&dev_particleArrayIndices, N * sizeof(int)); + checkCUDAErrorWithLine("cudaMalloc dev_particleArrayIndices failed!"); + + cudaMalloc((void**)&dev_particleGridIndices, N * sizeof(int)); + checkCUDAErrorWithLine("cudaMalloc dev_particleGridIndices failed!"); + + dev_thrust_particleArrayIndices = thrust::device_ptr(dev_particleArrayIndices); + + dev_thrust_particleGridIndices = thrust::device_ptr(dev_particleGridIndices); + + cudaMalloc((void**)&dev_gridCellStartIndices, gridCellCount * sizeof(int)); + checkCUDAErrorWithLine("cudaMalloc dev_gridCellStartIndices failed!"); + + cudaMalloc((void**)&dev_gridCellEndIndices, gridCellCount * sizeof(int)); + checkCUDAErrorWithLine("cudaMalloc dev_gridCellEndIndices failed!"); + + cudaThreadSynchronize(); } @@ -181,41 +198,41 @@ void Boids::initSimulation(int N) { * Copy the boid positions into the VBO so that they can be drawn by OpenGL. */ __global__ void kernCopyPositionsToVBO(int N, glm::vec3 *pos, float *vbo, float s_scale) { - int index = threadIdx.x + (blockIdx.x * blockDim.x); + int index = threadIdx.x + (blockIdx.x * blockDim.x); - float c_scale = -1.0f / s_scale; + float c_scale = -1.0f / s_scale; - if (index < N) { - vbo[4 * index + 0] = pos[index].x * c_scale; - vbo[4 * index + 1] = pos[index].y * c_scale; - vbo[4 * index + 2] = pos[index].z * c_scale; - vbo[4 * index + 3] = 1.0f; - } + if (index < N) { + vbo[4 * index + 0] = pos[index].x * c_scale; + vbo[4 * index + 1] = pos[index].y * c_scale; + vbo[4 * index + 2] = pos[index].z * c_scale; + vbo[4 * index + 3] = 1.0f; + } } __global__ void kernCopyVelocitiesToVBO(int N, glm::vec3 *vel, float *vbo, float s_scale) { - int index = threadIdx.x + (blockIdx.x * blockDim.x); - - if (index < N) { - vbo[4 * index + 0] = vel[index].x + 0.3f; - vbo[4 * index + 1] = vel[index].y + 0.3f; - vbo[4 * index + 2] = vel[index].z + 0.3f; - vbo[4 * index + 3] = 1.0f; - } + int index = threadIdx.x + (blockIdx.x * blockDim.x); + + if (index < N) { + vbo[4 * index + 0] = vel[index].x + 0.3f; + vbo[4 * index + 1] = vel[index].y + 0.3f; + vbo[4 * index + 2] = vel[index].z + 0.3f; + vbo[4 * index + 3] = 1.0f; + } } /** * Wrapper for call to the kernCopyboidsToVBO CUDA kernel. */ void Boids::copyBoidsToVBO(float *vbodptr_positions, float *vbodptr_velocities) { - dim3 fullBlocksPerGrid((numObjects + blockSize - 1) / blockSize); + dim3 fullBlocksPerGrid((numObjects + blockSize - 1) / blockSize); - kernCopyPositionsToVBO << > >(numObjects, dev_pos, vbodptr_positions, scene_scale); - kernCopyVelocitiesToVBO << > >(numObjects, dev_vel1, vbodptr_velocities, scene_scale); + kernCopyPositionsToVBO << > >(numObjects, dev_pos, vbodptr_positions, scene_scale); + kernCopyVelocitiesToVBO << > >(numObjects, dev_vel1, vbodptr_velocities, scene_scale); - checkCUDAErrorWithLine("copyBoidsToVBO failed!"); + checkCUDAErrorWithLine("copyBoidsToVBO failed!"); - cudaThreadSynchronize(); + cudaThreadSynchronize(); } @@ -235,7 +252,7 @@ __device__ glm::vec3 computeVelocityChange(int N, int iSelf, const glm::vec3 *po glm::vec3 perceived_center(0, 0, 0); glm::vec3 c(0, 0, 0); glm::vec3 perceived_velocity(0, 0, 0); - int n1=0, n3=0; + int n1 = 0, n3 = 0; // One loop to rule them all. for (int b = 0; b < N; b++) @@ -274,7 +291,7 @@ __device__ glm::vec3 computeVelocityChange(int N, int iSelf, const glm::vec3 *po perceived_velocity /= n3; veln += (perceived_velocity * rule3Scale); } - + return veln; } @@ -283,18 +300,18 @@ __device__ glm::vec3 computeVelocityChange(int N, int iSelf, const glm::vec3 *po * For each of the `N` bodies, update its position based on its current velocity. */ __global__ void kernUpdateVelocityBruteForce(int N, glm::vec3 *pos, - glm::vec3 *vel1, glm::vec3 *vel2) { + glm::vec3 *vel1, glm::vec3 *vel2) { int index = threadIdx.x + (blockIdx.x * blockDim.x); if (index >= N) { return; } - // Compute a new velocity based on pos and vel1 + // Compute a new velocity based on pos and vel1 glm::vec3 veln = computeVelocityChange(N, index, pos, vel1); - // Clamp the speed + // Clamp the speed float speed = glm::length(veln); if (speed > maxSpeed) veln *= maxSpeed / speed; - // Record the new velocity into vel2. Question: why NOT vel1? + // Record the new velocity into vel2. Question: why NOT vel1? vel2[index] = veln; } @@ -303,24 +320,24 @@ __global__ void kernUpdateVelocityBruteForce(int N, glm::vec3 *pos, * For each of the `N` bodies, update its position based on its current velocity. */ __global__ void kernUpdatePos(int N, float dt, glm::vec3 *pos, glm::vec3 *vel) { - // Update position by velocity - int index = threadIdx.x + (blockIdx.x * blockDim.x); - if (index >= N) { - return; - } - glm::vec3 thisPos = pos[index]; - thisPos += vel[index] * dt; - - // Wrap the boids around so we don't lose them - thisPos.x = thisPos.x < -scene_scale ? scene_scale : thisPos.x; - thisPos.y = thisPos.y < -scene_scale ? scene_scale : thisPos.y; - thisPos.z = thisPos.z < -scene_scale ? scene_scale : thisPos.z; - - thisPos.x = thisPos.x > scene_scale ? -scene_scale : thisPos.x; - thisPos.y = thisPos.y > scene_scale ? -scene_scale : thisPos.y; - thisPos.z = thisPos.z > scene_scale ? -scene_scale : thisPos.z; - - pos[index] = thisPos; + // Update position by velocity + int index = threadIdx.x + (blockIdx.x * blockDim.x); + if (index >= N) { + return; + } + glm::vec3 thisPos = pos[index]; + thisPos += vel[index] * dt; + + // Wrap the boids around so we don't lose them + thisPos.x = thisPos.x < -scene_scale ? scene_scale : thisPos.x; + thisPos.y = thisPos.y < -scene_scale ? scene_scale : thisPos.y; + thisPos.z = thisPos.z < -scene_scale ? scene_scale : thisPos.z; + + thisPos.x = thisPos.x > scene_scale ? -scene_scale : thisPos.x; + thisPos.y = thisPos.y > scene_scale ? -scene_scale : thisPos.y; + thisPos.z = thisPos.z > scene_scale ? -scene_scale : thisPos.z; + + pos[index] = thisPos; } // LOOK-2.1 Consider this method of computing a 1D index from a 3D grid index. @@ -330,68 +347,166 @@ __global__ void kernUpdatePos(int N, float dt, glm::vec3 *pos, glm::vec3 *vel) { // for(y) // for(z)? Or some other order? __device__ int gridIndex3Dto1D(int x, int y, int z, int gridResolution) { - return x + y * gridResolution + z * gridResolution * gridResolution; + return x + y * gridResolution + z * gridResolution * gridResolution; } __global__ void kernComputeIndices(int N, int gridResolution, - glm::vec3 gridMin, float inverseCellWidth, - glm::vec3 *pos, int *indices, int *gridIndices) { - // TODO-2.1 - // - Label each boid with the index of its grid cell. - // - Set up a parallel array of integer indices as pointers to the actual - // boid data in pos and vel1/vel2 + glm::vec3 gridMin, float inverseCellWidth, + glm::vec3 *pos, int *indices, int *gridIndices) { + // TODO-2.1 + int index = threadIdx.x + (blockIdx.x * blockDim.x); + if (index >= N) { + return; + } + + // - Label each boid with the index of its grid cell. + glm::vec3 posboid = inverseCellWidth*(pos[index] - gridMin); + int x = (int)posboid.x; + int y = (int)posboid.y; + int z = (int)posboid.z; + int gindex = gridIndex3Dto1D(x, y, z, gridResolution); + gridIndices[index] = gindex; + + // - Set up a parallel array of integer indices as pointers to the actual + // boid data in pos and vel1/vel2 + indices[index] = index; } // LOOK-2.1 Consider how this could be useful for indicating that a cell // does not enclose any boids __global__ void kernResetIntBuffer(int N, int *intBuffer, int value) { - int index = (blockIdx.x * blockDim.x) + threadIdx.x; - if (index < N) { - intBuffer[index] = value; - } + int index = (blockIdx.x * blockDim.x) + threadIdx.x; + if (index < N) { + intBuffer[index] = value; + } } __global__ void kernIdentifyCellStartEnd(int N, int *particleGridIndices, - int *gridCellStartIndices, int *gridCellEndIndices) { - // TODO-2.1 - // Identify the start point of each cell in the gridIndices array. - // This is basically a parallel unrolling of a loop that goes - // "this index doesn't match the one before it, must be a new cell!" + int *gridCellStartIndices, int *gridCellEndIndices) { + // TODO-2.1 + // Identify the start point of each cell in the gridIndices array. + int index = threadIdx.x + (blockIdx.x * blockDim.x); + if (index >= N) { + return; + } + + // This is basically a parallel unrolling of a loop that goes + // "this index doesn't match the one before it, must be a new cell!" + if (index == 0) + gridCellStartIndices[particleGridIndices[index]] = 0; + else if (particleGridIndices[index] != particleGridIndices[index - 1]) + { + gridCellStartIndices[particleGridIndices[index]] = index; + gridCellEndIndices[particleGridIndices[index - 1]] = index - 1; + } + if (index == N - 1) + gridCellEndIndices[particleGridIndices[index]] = N - 1; } __global__ void kernUpdateVelNeighborSearchScattered( - int N, int gridResolution, glm::vec3 gridMin, - float inverseCellWidth, float cellWidth, - int *gridCellStartIndices, int *gridCellEndIndices, - int *particleArrayIndices, - glm::vec3 *pos, glm::vec3 *vel1, glm::vec3 *vel2) { - // TODO-2.1 - Update a boid's velocity using the uniform grid to reduce - // the number of boids that need to be checked. - // - Identify the grid cell that this particle is in - // - Identify which cells may contain neighbors. This isn't always 8. - // - For each cell, read the start/end indices in the boid pointer array. - // - Access each boid in the cell and compute velocity change from - // the boids rules, if this boid is within the neighborhood distance. - // - Clamp the speed change before putting the new speed in vel2 + int N, int gridResolution, glm::vec3 gridMin, + float inverseCellWidth, float cellWidth, + int *gridCellStartIndices, int *gridCellEndIndices, + int *particleArrayIndices, + glm::vec3 *pos, glm::vec3 *vel1, glm::vec3 *vel2) { + // TODO-2.1 - Update a boid's velocity using the uniform grid to reduce + // the number of boids that need to be checked. + int index = threadIdx.x + (blockIdx.x * blockDim.x); + if (index >= N) { + return; + } + glm::vec3 posboid = pos[index]; + glm::vec3 veln = vel1[index]; + glm::vec3 perceived_center(0, 0, 0); + glm::vec3 c(0, 0, 0); + glm::vec3 perceived_velocity(0, 0, 0); + int n1 = 0, n3 = 0; + + // - Identify the grid cell that this particle is in + glm::vec3 gridboid = inverseCellWidth*(pos[index] - gridMin); + + // - Identify which cells may contain neighbors. This isn't always 8. + // - For each cell, read the start/end indices in the boid pointer array. + for (int i = 0; i < 2; i++) + { + int x = imax((int)gridboid.x - i, 0); + for (int j = 0; j < 2; j++) + { + int y = imax((int)gridboid.y - j, 0); + for (int k = 0; k < 2; k++) + { + int z = imax((int)gridboid.z - k, 0); + int cellboid = gridIndex3Dto1D(x, y, z, gridResolution); + if (gridCellStartIndices[cellboid] >= 0) + { + int start = gridCellStartIndices[cellboid]; + int end = gridCellEndIndices[cellboid]; + for (int l = start; l <= end; l++) + { + int b = particleArrayIndices[l]; + float distance = glm::distance(posboid, pos[b]); + if (b != index) + { + // Rule 1: boids fly towards their local perceived center of mass, which excludes themselves + if (distance < rule1Distance) + { + perceived_center += pos[b]; + n1++; + } + // Rule 2: boids try to stay a distance d away from each other + if (distance < rule2Distance) + c -= (pos[b] - posboid); + // Rule 3: boids try to match the speed of surrounding boids + if (distance < rule3Distance) + { + perceived_velocity += vel1[b]; + n3++; + } + } + } + } + } + } + } + // - Access each boid in the cell and compute velocity change from + // the boids rules, if this boid is within the neighborhood distance. + if (n1 > 0) + { + perceived_center /= n1; + veln += ((perceived_center - posboid) * rule1Scale); + } + + veln += (c * rule2Scale); + + if (n3 > 0) + { + perceived_velocity /= n3; + veln += (perceived_velocity * rule3Scale); + } + // - Clamp the speed change before putting the new speed in vel2 + float speed = glm::length(veln); + if (speed > maxSpeed) + veln *= maxSpeed / speed; + vel2[index] = veln; } __global__ void kernUpdateVelNeighborSearchCoherent( - int N, int gridResolution, glm::vec3 gridMin, - float inverseCellWidth, float cellWidth, - int *gridCellStartIndices, int *gridCellEndIndices, - glm::vec3 *pos, glm::vec3 *vel1, glm::vec3 *vel2) { - // TODO-2.3 - This should be very similar to kernUpdateVelNeighborSearchScattered, - // except with one less level of indirection. - // This should expect gridCellStartIndices and gridCellEndIndices to refer - // directly to pos and vel1. - // - Identify the grid cell that this particle is in - // - Identify which cells may contain neighbors. This isn't always 8. - // - For each cell, read the start/end indices in the boid pointer array. - // DIFFERENCE: For best results, consider what order the cells should be - // checked in to maximize the memory benefits of reordering the boids data. - // - Access each boid in the cell and compute velocity change from - // the boids rules, if this boid is within the neighborhood distance. - // - Clamp the speed change before putting the new speed in vel2 + int N, int gridResolution, glm::vec3 gridMin, + float inverseCellWidth, float cellWidth, + int *gridCellStartIndices, int *gridCellEndIndices, + glm::vec3 *pos, glm::vec3 *vel1, glm::vec3 *vel2) { + // TODO-2.3 - This should be very similar to kernUpdateVelNeighborSearchScattered, + // except with one less level of indirection. + // This should expect gridCellStartIndices and gridCellEndIndices to refer + // directly to pos and vel1. + // - Identify the grid cell that this particle is in + // - Identify which cells may contain neighbors. This isn't always 8. + // - For each cell, read the start/end indices in the boid pointer array. + // DIFFERENCE: For best results, consider what order the cells should be + // checked in to maximize the memory benefits of reordering the boids data. + // - Access each boid in the cell and compute velocity change from + // the boids rules, if this boid is within the neighborhood distance. + // - Clamp the speed change before putting the new speed in vel2 } /** @@ -399,118 +514,159 @@ __global__ void kernUpdateVelNeighborSearchCoherent( */ void Boids::stepSimulationNaive(float dt) { dim3 fullBlocksPerGrid((numObjects + blockSize - 1) / blockSize); - // TODO-1.2 - use the kernels you wrote to step the simulation forward in time. - kernUpdateVelocityBruteForce <<< fullBlocksPerGrid, blockSize >>>(numObjects, dev_pos, dev_vel1, dev_vel2); - kernUpdatePos <<< fullBlocksPerGrid, blockSize >>>(numObjects, dt, dev_pos, dev_vel2); - // TODO-1.2 ping-pong the velocity buffers + // TODO-1.2 - use the kernels you wrote to step the simulation forward in time. + kernUpdateVelocityBruteForce << > >(numObjects, dev_pos, dev_vel1, dev_vel2); + kernUpdatePos << > >(numObjects, dt, dev_pos, dev_vel2); + // TODO-1.2 ping-pong the velocity buffers glm::vec3 *tmp = dev_vel1; dev_vel1 = dev_vel2; dev_vel2 = tmp; } void Boids::stepSimulationScatteredGrid(float dt) { - // TODO-2.1 - // Uniform Grid Neighbor search using Thrust sort. - // In Parallel: - // - label each particle with its array index as well as its grid index. - // Use 2x width grids. - // - Unstable key sort using Thrust. A stable sort isn't necessary, but you - // are welcome to do a performance comparison. - // - Naively unroll the loop for finding the start and end indices of each - // cell's data pointers in the array of boid indices - // - Perform velocity updates using neighbor search - // - Update positions - // - Ping-pong buffers as needed + // TODO-2.1 + // Uniform Grid Neighbor search using Thrust sort. + // In Parallel: + // - label each particle with its array index as well as its grid index. + dim3 fullBlocksPerGrid((numObjects + blockSize - 1) / blockSize); + kernResetIntBuffer << > >(numObjects, dev_gridCellStartIndices, -1); + kernResetIntBuffer << > >(numObjects, dev_gridCellEndIndices, -1); + + kernComputeIndices << > >(numObjects, gridSideCount, gridMinimum, gridInverseCellWidth, dev_pos, dev_particleArrayIndices, dev_particleGridIndices); + + // Use 2x width grids. + // - Unstable key sort using Thrust. A stable sort isn't necessary, but you + // are welcome to do a performance comparison. + dev_thrust_particleArrayIndices = thrust::device_ptr(dev_particleArrayIndices); + dev_thrust_particleGridIndices = thrust::device_ptr(dev_particleGridIndices); + + thrust::sort_by_key(dev_thrust_particleGridIndices, dev_thrust_particleGridIndices + numObjects, dev_thrust_particleArrayIndices); + + // - Naively unroll the loop for finding the start and end indices of each + // cell's data pointers in the array of boid indices + kernIdentifyCellStartEnd << > >(numObjects, dev_particleGridIndices, dev_gridCellStartIndices, dev_gridCellEndIndices); + + // - Perform velocity updates using neighbor search + kernUpdateVelNeighborSearchScattered << > >(numObjects, gridSideCount, gridMinimum, + gridInverseCellWidth, gridCellWidth, + dev_gridCellStartIndices, dev_gridCellEndIndices, + dev_particleArrayIndices, dev_pos, dev_vel1, dev_vel2); + + // - Update positions + kernUpdatePos << > >(numObjects, dt, dev_pos, dev_vel2); + + // - Ping-pong buffers as needed + glm::vec3 *tmp = dev_vel1; + dev_vel1 = dev_vel2; + dev_vel2 = tmp; } +__global__ void kernUpdatePosVel(int N, glm::vec3 *pos, glm::vec3 *vel1, + glm::vec3 *coh_pos, glm::vec3 *coh_vel, int *particleArrayIndices) { + int index = (blockIdx.x * blockDim.x) + threadIdx.x; + if (index >= N) { + return; + } + + int index2 = particleArrayIndices[index]; + + coh_pos[index] = pos[index2]; + coh_vel[index] = vel1[index2]; +} + + void Boids::stepSimulationCoherentGrid(float dt) { - // TODO-2.3 - start by copying Boids::stepSimulationNaiveGrid - // Uniform Grid Neighbor search using Thrust sort on cell-coherent data. - // In Parallel: - // - Label each particle with its array index as well as its grid index. - // Use 2x width grids - // - Unstable key sort using Thrust. A stable sort isn't necessary, but you - // are welcome to do a performance comparison. - // - Naively unroll the loop for finding the start and end indices of each - // cell's data pointers in the array of boid indices - // - BIG DIFFERENCE: use the rearranged array index buffer to reshuffle all - // the particle data in the simulation array. - // CONSIDER WHAT ADDITIONAL BUFFERS YOU NEED - // - Perform velocity updates using neighbor search - // - Update positions - // - Ping-pong buffers as needed. THIS MAY BE DIFFERENT FROM BEFORE. + // TODO-2.3 - start by copying Boids::stepSimulationNaiveGrid + // Uniform Grid Neighbor search using Thrust sort on cell-coherent data. + // In Parallel: + // - Label each particle with its array index as well as its grid index. + // Use 2x width grids + // - Unstable key sort using Thrust. A stable sort isn't necessary, but you + // are welcome to do a performance comparison. + // - Naively unroll the loop for finding the start and end indices of each + // cell's data pointers in the array of boid indices + // - BIG DIFFERENCE: use the rearranged array index buffer to reshuffle all + // the particle data in the simulation array. + // CONSIDER WHAT ADDITIONAL BUFFERS YOU NEED + // - Perform velocity updates using neighbor search + // - Update positions + // - Ping-pong buffers as needed. THIS MAY BE DIFFERENT FROM BEFORE. } void Boids::endSimulation() { - cudaFree(dev_vel1); - cudaFree(dev_vel2); - cudaFree(dev_pos); - - // TODO-2.1 TODO-2.3 - Free any additional buffers here. + cudaFree(dev_vel1); + cudaFree(dev_vel2); + cudaFree(dev_pos); + + // TODO-2.1 TODO-2.3 - Free any additional buffers here. + cudaFree(dev_particleArrayIndices); + cudaFree(dev_particleGridIndices); + cudaFree(dev_gridCellStartIndices); + cudaFree(dev_gridCellEndIndices); } void Boids::unitTest() { - // LOOK-1.2 Feel free to write additional tests here. - - // test unstable sort - int *dev_intKeys; - int *dev_intValues; - int N = 10; - - int *intKeys = new int[N]; - int *intValues = new int[N]; - - intKeys[0] = 0; intValues[0] = 0; - intKeys[1] = 1; intValues[1] = 1; - intKeys[2] = 0; intValues[2] = 2; - intKeys[3] = 3; intValues[3] = 3; - intKeys[4] = 0; intValues[4] = 4; - intKeys[5] = 2; intValues[5] = 5; - intKeys[6] = 2; intValues[6] = 6; - intKeys[7] = 0; intValues[7] = 7; - intKeys[8] = 5; intValues[8] = 8; - intKeys[9] = 6; intValues[9] = 9; - - cudaMalloc((void**)&dev_intKeys, N * sizeof(int)); - checkCUDAErrorWithLine("cudaMalloc dev_intKeys failed!"); - - cudaMalloc((void**)&dev_intValues, N * sizeof(int)); - checkCUDAErrorWithLine("cudaMalloc dev_intValues failed!"); - - dim3 fullBlocksPerGrid((N + blockSize - 1) / blockSize); - - std::cout << "before unstable sort: " << std::endl; - for (int i = 0; i < N; i++) { - std::cout << " key: " << intKeys[i]; - std::cout << " value: " << intValues[i] << std::endl; - } - - // How to copy data to the GPU - cudaMemcpy(dev_intKeys, intKeys, sizeof(int) * N, cudaMemcpyHostToDevice); - cudaMemcpy(dev_intValues, intValues, sizeof(int) * N, cudaMemcpyHostToDevice); - - // Wrap device vectors in thrust iterators for use with thrust. - thrust::device_ptr dev_thrust_keys(dev_intKeys); - thrust::device_ptr dev_thrust_values(dev_intValues); - // LOOK-2.1 Example for using thrust::sort_by_key - thrust::sort_by_key(dev_thrust_keys, dev_thrust_keys + N, dev_thrust_values); - - // How to copy data back to the CPU side from the GPU - cudaMemcpy(intKeys, dev_intKeys, sizeof(int) * N, cudaMemcpyDeviceToHost); - cudaMemcpy(intValues, dev_intValues, sizeof(int) * N, cudaMemcpyDeviceToHost); - checkCUDAErrorWithLine("memcpy back failed!"); - - std::cout << "after unstable sort: " << std::endl; - for (int i = 0; i < N; i++) { - std::cout << " key: " << intKeys[i]; - std::cout << " value: " << intValues[i] << std::endl; - } - - // cleanup - delete[] intKeys; - delete[] intValues; - cudaFree(dev_intKeys); - cudaFree(dev_intValues); - checkCUDAErrorWithLine("cudaFree failed!"); - return; + // LOOK-1.2 Feel free to write additional tests here. + + // test unstable sort + int *dev_intKeys; + int *dev_intValues; + int N = 10; + + int *intKeys = new int[N]; + int *intValues = new int[N]; + + intKeys[0] = 0; intValues[0] = 0; + intKeys[1] = 1; intValues[1] = 1; + intKeys[2] = 0; intValues[2] = 2; + intKeys[3] = 3; intValues[3] = 3; + intKeys[4] = 0; intValues[4] = 4; + intKeys[5] = 2; intValues[5] = 5; + intKeys[6] = 2; intValues[6] = 6; + intKeys[7] = 0; intValues[7] = 7; + intKeys[8] = 5; intValues[8] = 8; + intKeys[9] = 6; intValues[9] = 9; + + cudaMalloc((void**)&dev_intKeys, N * sizeof(int)); + checkCUDAErrorWithLine("cudaMalloc dev_intKeys failed!"); + + cudaMalloc((void**)&dev_intValues, N * sizeof(int)); + checkCUDAErrorWithLine("cudaMalloc dev_intValues failed!"); + + dim3 fullBlocksPerGrid((N + blockSize - 1) / blockSize); + + std::cout << "before unstable sort: " << std::endl; + for (int i = 0; i < N; i++) { + std::cout << " key: " << intKeys[i]; + std::cout << " value: " << intValues[i] << std::endl; + } + + // How to copy data to the GPU + cudaMemcpy(dev_intKeys, intKeys, sizeof(int) * N, cudaMemcpyHostToDevice); + cudaMemcpy(dev_intValues, intValues, sizeof(int) * N, cudaMemcpyHostToDevice); + + // Wrap device vectors in thrust iterators for use with thrust. + thrust::device_ptr dev_thrust_keys(dev_intKeys); + thrust::device_ptr dev_thrust_values(dev_intValues); + // LOOK-2.1 Example for using thrust::sort_by_key + thrust::sort_by_key(dev_thrust_keys, dev_thrust_keys + N, dev_thrust_values); + + // How to copy data back to the CPU side from the GPU + cudaMemcpy(intKeys, dev_intKeys, sizeof(int) * N, cudaMemcpyDeviceToHost); + cudaMemcpy(intValues, dev_intValues, sizeof(int) * N, cudaMemcpyDeviceToHost); + checkCUDAErrorWithLine("memcpy back failed!"); + + std::cout << "after unstable sort: " << std::endl; + for (int i = 0; i < N; i++) { + std::cout << " key: " << intKeys[i]; + std::cout << " value: " << intValues[i] << std::endl; + } + + // cleanup + delete[] intKeys; + delete[] intValues; + cudaFree(dev_intKeys); + cudaFree(dev_intValues); + checkCUDAErrorWithLine("cudaFree failed!"); + return; } diff --git a/src/main.cpp b/src/main.cpp index a29471d..be358c1 100644 --- a/src/main.cpp +++ b/src/main.cpp @@ -14,7 +14,7 @@ // LOOK-2.1 LOOK-2.3 - toggles for UNIFORM_GRID and COHERENT_GRID #define VISUALIZE 1 -#define UNIFORM_GRID 0 +#define UNIFORM_GRID 1 #define COHERENT_GRID 0 // LOOK-1.2 - change this to adjust particle count in the simulation From f306aaf807b68e901c5d58d544ff00a9ce89d7f0 Mon Sep 17 00:00:00 2001 From: Yash Date: Sun, 10 Sep 2017 08:57:55 -0400 Subject: [PATCH 3/7] Part 2.1 Uniform Grid --- src/kernel.cu | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/src/kernel.cu b/src/kernel.cu index 4ed204b..208bf71 100644 --- a/src/kernel.cu +++ b/src/kernel.cu @@ -84,11 +84,11 @@ thrust::device_ptr dev_thrust_particleGridIndices; int *dev_gridCellStartIndices; // What part of dev_particleArrayIndices belongs int *dev_gridCellEndIndices; // to this cell? - // TODO-2.3 - consider what additional buffers you might need to reshuffle - // the position and velocity data to be coherent within cells. +// TODO-2.3 - consider what additional buffers you might need to reshuffle +// the position and velocity data to be coherent within cells. - // LOOK-2.1 - Grid parameters based on simulation parameters. - // These are automatically computed for you in Boids::initSimulation +// LOOK-2.1 - Grid parameters based on simulation parameters. +// These are automatically computed for you in Boids::initSimulation int gridCellCount; int gridSideCount; float gridCellWidth; From 7090f877cb6f801abf11251d810addac992557a1 Mon Sep 17 00:00:00 2001 From: Yash Date: Sun, 10 Sep 2017 09:35:40 -0400 Subject: [PATCH 4/7] Part 2.3 Coherent Grid --- src/kernel.cu | 109 +++++++++++++++++++++++++++++++++++++++++++++++++- src/main.cpp | 2 +- 2 files changed, 108 insertions(+), 3 deletions(-) diff --git a/src/kernel.cu b/src/kernel.cu index 208bf71..26deaaa 100644 --- a/src/kernel.cu +++ b/src/kernel.cu @@ -86,6 +86,8 @@ int *dev_gridCellEndIndices; // to this cell? // TODO-2.3 - consider what additional buffers you might need to reshuffle // the position and velocity data to be coherent within cells. +glm::vec3 *coh_pos; +glm::vec3 *coh_vel; // LOOK-2.1 - Grid parameters based on simulation parameters. // These are automatically computed for you in Boids::initSimulation @@ -186,6 +188,12 @@ void Boids::initSimulation(int N) { cudaMalloc((void**)&dev_gridCellEndIndices, gridCellCount * sizeof(int)); checkCUDAErrorWithLine("cudaMalloc dev_gridCellEndIndices failed!"); + cudaMalloc((void**)&coh_pos, N * sizeof(glm::vec3)); + checkCUDAErrorWithLine("cudaMalloc coh_pos failed!"); + + cudaMalloc((void**)&coh_vel, N * sizeof(glm::vec3)); + checkCUDAErrorWithLine("cudaMalloc coh_vel failed!"); + cudaThreadSynchronize(); } @@ -497,16 +505,85 @@ __global__ void kernUpdateVelNeighborSearchCoherent( glm::vec3 *pos, glm::vec3 *vel1, glm::vec3 *vel2) { // TODO-2.3 - This should be very similar to kernUpdateVelNeighborSearchScattered, // except with one less level of indirection. + int index = threadIdx.x + (blockIdx.x * blockDim.x); + if (index >= N) { + return; + } + glm::vec3 posboid = pos[index]; + glm::vec3 veln = vel1[index]; + glm::vec3 perceived_center(0, 0, 0); + glm::vec3 c(0, 0, 0); + glm::vec3 perceived_velocity(0, 0, 0); + int n1 = 0, n3 = 0; + // This should expect gridCellStartIndices and gridCellEndIndices to refer // directly to pos and vel1. + // - Identify the grid cell that this particle is in + glm::vec3 gridboid = inverseCellWidth*(pos[index] - gridMin); + // - Identify which cells may contain neighbors. This isn't always 8. // - For each cell, read the start/end indices in the boid pointer array. // DIFFERENCE: For best results, consider what order the cells should be // checked in to maximize the memory benefits of reordering the boids data. - // - Access each boid in the cell and compute velocity change from - // the boids rules, if this boid is within the neighborhood distance. + for (int i = 0; i < 2; i++) + { + int x = imax((int)gridboid.x - i, 0); + for (int j = 0; j < 2; j++) + { + int y = imax((int)gridboid.y - j, 0); + for (int k = 0; k < 2; k++) + { + int z = imax((int)gridboid.z - k, 0); + int cellboid = gridIndex3Dto1D(x, y, z, gridResolution); + if (gridCellStartIndices[cellboid] >= 0) + { + int start = gridCellStartIndices[cellboid]; + int end = gridCellEndIndices[cellboid]; + for (int b = start; b <= end; b++) + { + float distance = glm::distance(posboid, pos[b]); + if (b != index) + { + // Rule 1: boids fly towards their local perceived center of mass, which excludes themselves + if (distance < rule1Distance) + { + perceived_center += pos[b]; + n1++; + } + // Rule 2: boids try to stay a distance d away from each other + if (distance < rule2Distance) + c -= (pos[b] - posboid); + // Rule 3: boids try to match the speed of surrounding boids + if (distance < rule3Distance) + { + perceived_velocity += vel1[b]; + n3++; + } + } + } + } + } + } + } + if (n1 > 0) + { + perceived_center /= n1; + veln += ((perceived_center - posboid) * rule1Scale); + } + + veln += (c * rule2Scale); + + if (n3 > 0) + { + perceived_velocity /= n3; + veln += (perceived_velocity * rule3Scale); + } // - Clamp the speed change before putting the new speed in vel2 + float speed = glm::length(veln); + if (speed > maxSpeed) + veln *= maxSpeed / speed; + vel2[index] = veln; } /** @@ -580,17 +657,43 @@ void Boids::stepSimulationCoherentGrid(float dt) { // Uniform Grid Neighbor search using Thrust sort on cell-coherent data. // In Parallel: // - Label each particle with its array index as well as its grid index. + dim3 fullBlocksPerGrid((numObjects + blockSize - 1) / blockSize); + kernResetIntBuffer << > >(numObjects, dev_gridCellStartIndices, -1); + kernResetIntBuffer << > >(numObjects, dev_gridCellEndIndices, -1); + + kernComputeIndices << > >(numObjects, gridSideCount, gridMinimum, gridInverseCellWidth, dev_pos, dev_particleArrayIndices, dev_particleGridIndices); + // Use 2x width grids // - Unstable key sort using Thrust. A stable sort isn't necessary, but you // are welcome to do a performance comparison. + dev_thrust_particleArrayIndices = thrust::device_ptr(dev_particleArrayIndices); + dev_thrust_particleGridIndices = thrust::device_ptr(dev_particleGridIndices); + + thrust::sort_by_key(dev_thrust_particleGridIndices, dev_thrust_particleGridIndices + numObjects, dev_thrust_particleArrayIndices); + // - Naively unroll the loop for finding the start and end indices of each // cell's data pointers in the array of boid indices + kernIdentifyCellStartEnd <<>>(numObjects, dev_particleGridIndices, dev_gridCellStartIndices, dev_gridCellEndIndices); + // - BIG DIFFERENCE: use the rearranged array index buffer to reshuffle all // the particle data in the simulation array. // CONSIDER WHAT ADDITIONAL BUFFERS YOU NEED + kernUpdatePosVel <<>>(numObjects, dev_pos, dev_vel1, coh_pos, coh_vel, dev_particleArrayIndices); + // - Perform velocity updates using neighbor search + kernUpdateVelNeighborSearchCoherent <<>>(numObjects, gridSideCount, gridMinimum, gridInverseCellWidth, gridCellWidth, dev_gridCellStartIndices, dev_gridCellEndIndices, coh_pos, coh_vel, dev_vel2); + // - Update positions + kernUpdatePos <<>>(numObjects, dt, coh_pos, dev_vel2); + // - Ping-pong buffers as needed. THIS MAY BE DIFFERENT FROM BEFORE. + glm::vec3 *tmp = dev_vel1; + dev_vel1 = dev_vel2; + dev_vel2 = tmp; + + tmp = dev_pos; + dev_pos = coh_pos; + coh_pos = tmp; } void Boids::endSimulation() { @@ -603,6 +706,8 @@ void Boids::endSimulation() { cudaFree(dev_particleGridIndices); cudaFree(dev_gridCellStartIndices); cudaFree(dev_gridCellEndIndices); + cudaFree(coh_pos); + cudaFree(coh_vel); } void Boids::unitTest() { diff --git a/src/main.cpp b/src/main.cpp index be358c1..a7c2c99 100644 --- a/src/main.cpp +++ b/src/main.cpp @@ -15,7 +15,7 @@ // LOOK-2.1 LOOK-2.3 - toggles for UNIFORM_GRID and COHERENT_GRID #define VISUALIZE 1 #define UNIFORM_GRID 1 -#define COHERENT_GRID 0 +#define COHERENT_GRID 1 // LOOK-1.2 - change this to adjust particle count in the simulation const int N_FOR_VIS = 5000; From 2b3b60173e96ae24852970a46843c0d2e4e7774a Mon Sep 17 00:00:00 2001 From: Yash Date: Sun, 10 Sep 2017 18:22:39 -0400 Subject: [PATCH 5/7] Graphs added --- README.md | 28 +++++++++++++++++++++++----- images/blocksize.jpg | Bin 0 -> 31481 bytes images/boids.gif | Bin 0 -> 7919223 bytes images/nonvisualboid.jpg | Bin 0 -> 36771 bytes images/visualboid.jpg | Bin 0 -> 38491 bytes 5 files changed, 23 insertions(+), 5 deletions(-) create mode 100644 images/blocksize.jpg create mode 100644 images/boids.gif create mode 100644 images/nonvisualboid.jpg create mode 100644 images/visualboid.jpg diff --git a/README.md b/README.md index 98dd9a8..7f0e3d2 100644 --- a/README.md +++ b/README.md @@ -1,10 +1,28 @@ **University of Pennsylvania, CIS 565: GPU Programming and Architecture, Project 1 - Flocking** -* (TODO) YOUR NAME HERE -* Tested on: (TODO) Windows 22, i7-2222 @ 2.22GHz 22GB, GTX 222 222MB (Moore 2222 Lab) +* Yash Vardhan +* Tested on: Windows 10 Pro, Intel i5-4200U (4) @ 2.600GHz 4GB, NVIDIA GeForce 840M 2048MB -### (TODO: Your README) +Boids Flocking using coherent uniform grid +=========================================== -Include screenshots, analysis, etc. (Remember, this is public, so don't put -anything here that you don't want to share with the world.) +![](images/boids.gif) + +Performance Analysis +==================== + +FPS vs Number of Boids(Visualized) +---------------------------------- + +![](images/visualboid.jpg) + +FPS vs Number of Boids(Non-Visualized) +-------------------------------------- + +![](images/nonvisualboid.jpg) + +FPS vs Block Size +------------------ + +![](images/blocksize.jpg) diff --git a/images/blocksize.jpg b/images/blocksize.jpg new file mode 100644 index 0000000000000000000000000000000000000000..49a32f5b6b3526e9d104724a20702753285202bf GIT binary patch literal 31481 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
GXHIh~rndql{ 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

$*nRdbdQ4r8k_&FkDVS zY9>BQJE20ES8S9;?p0b)y|QTD~SDCsmSy#yQFaHe}h&lkP$6lGu}I! zt4bPIQ`S|{naD%wnfAMd>65~Jm;(|lW7864JeSn z?%_Pw!gCdTeA(95i9LSSPkqsE66R}YTUibus;47ieh7ky>=2)m!6Zmadc`rzMhwn5 z>k2K!R8)yZp75C*w9wU8O0(2`8!bTo$I!gdl>{E z>@W#SA8;09%jiZZnG^)Uj!&Y-9>F#;R>Q3E1MHKKK#A80kcc4eTY`+hn>2!80}l{E z%#{hD89gh|)gUYN@tOFANAVlpa4+Z3CXJWS)wfnBaS;dt{ELlH$7$!6U<+XSXYkTG zW8%`r_R;u(|6Vn74j3wxTn7F3SR4D+8dLMf7T;U{f%1{Do z&~;_6760U=s-qZH(^2O-{wnJZxMX`Gfe79k>Bmx{5tFN|a)vMQ=jjhNjgYij(=*e5zb$@?^EQmr;NlfFDIpqrxiCQPLCt)Wk9o?}t3RNtU zq__}L?RnTw@;bw;nrssz_F>_wvf$=XtH9Gxo>ld=Qu*Z%A95^vcUpz?Yh}pcB<9Y- zTU5f237Um>pT2d%7v0!htSl&TC~YL3b8o<6aPVtT8lP?$$ za}~&99m&qx-pY#r;i=95*n(IuY<&_5Onrgt=Ifz5G)vHZFz2*MJldsA)seD|ICmV% zu>4Z)5K|XUgaq0qp_6=@_$OH9p(n@CV=>4^EZiUQSX%;tfFNkT&}s3kNcir=8A++W5oj`fQ}H|ZDTk=%Q-#^DtP=41ck!yy4?cdN7h8J6dNB25NMAQ zx$?(%!r8X)v+qL}C}9(dU@{o&_Xp;ISmE~rURy{U>_xynz@E9=VuOez7y+ZkAH*^o zGYEsK`}QI@v>JaT5CDR#Kd}YWyT8i7=WmOE6Fyx}1tNf=MHIfYRQJKui+;sW5V$+8 z7FIgm_Dkl_{@l_3Z<+H)^b-`x51R3dsUT61b`0i+!0noca~BX^0|<2JHZS9`^%S}S zrdQF0?F)$9!}vYs&>r0J;A5FoN*nE)y|-!zC3qz>9p?ScxT3^{`15hCUjHo+EUPjG z=bV4hsK~gsM!6Ob2PX&7ws7LWc$SfhuaxFk&5I@n%p0`|Hae|?#f9OO(FZ&y_T@Bi z+YB8u1d+PcyBjSy>u1}Vu85I-5I&yX$S%(KJg8|}EU!LTn>$=vA%F1=v3~j0hQ_Nr zY18^kwMEXoDdbm%C4VqCU(C)=rJetvIR3lD&bK5FKTb5j_=Y0ruQz{m@txllp!-E+ zIC&4(??ojD-CSNJDN#wiLE|kM$`EA3yNfnd#r9)Jpls@TJMxs@-ZqLD#7I z@&Scv9SiqblW2ML)M%D|MY-wfY7Acp2SDi&{|vLrp-^7=?pXqP31PMi*JPbl!i#DH z88i66mv8%|PVvG2ZTq88zaQm)!e3+lXg6(|A(pb>sB01qD+D)PJ@NP?dA2LKW2a>*Ht5bmEPdY7Z|+t^0bA4F_PMY+8Hejf}b$JmAAbt zzjyeqLb+%!#o~mqaa10UGi=24HHEV;N`0v1xU1?uw;D zHzT%nHxt{e4yGCAYNr1JuKc3mNKz2+1g(HI?A7VB@=wTD@sC~!Pwnd}uKxuCIqlK; zw23bm$Z3~Ur-S=~fqd;#;_KMHU?5*<>H0dfzhEH$M8n@>AYsLjk(T}8@-G-jZ`}Vt z=f9*1yBgf!;||-otf1_iWZ|>V;l8_8Ge)(`@Tb!K%dUUT&~J$KDeDtCc!n;3BWql% zP8{>R1|n>y68tKWf1`H&T5W+_r#X>~I@*WOvWWE(d&K5`+MlY~zwY~QOc}$U_Ik~@ ziKXkvnOmHR#!Iv!>s^r;qIb3NxhQYz`@BR*c-_NV+y0mNgYWY>#IyWRKR3$s1q7rr zqE4T?&(bi6W?VKvIy0x#Z3K+v_m29O`sx}sY8%G{oZf6=1|$Ryw!VMjf?8jHonE|y z_W|U|8@zb&Ple<7gH`XMEcLu*I5=LBZPla1<}th>X3ct6mubqQVP7YiJJM+25ajtD za>pAg{ZybCJbxt$me7i^z415CD+YVL24_BAij``xPk zCy<89ce>Ci*}8u~9D=+5ZYKRw5~yEm0Ep?uVbhb)5vw^y)c^Ml;eUd|cq+6XeZ~Ll zJKcY!KK}vaE#K|d6f+y{Vve)p9N$^#TZC(lO$=zclr0nYFp7wuq{G97xaXV{KF+PL z;_#gy({a#KKd8tAo*@#5PD{4K< zJzgNlhr|5+4q+EykvrBKZ9kh+WJk3 zA^YmwD!2~OufuPKGGR|__HdHd9Y$8ixK6?|$IQ($UTRz24j`sQ zy?*2+P=e2r=P5c;8Dc#G);&_O`!T;pp^l?_LB@5C$Z7Nzb6R=8dC?`TRn^QwT=F}P zuDCR{U9tD0&lv{g?(h<;{vhd3XFP60w?9IUX5?o;NJJ1sM5@K4!~ltJ@2Gxz04%Nl zlOGnR_6Hr|)Gw9ySi4;Mr{NqY;0)qOonXYi9wrfnf4minI3T7cLV^7DJJGk>;I>YJ zgMZh<#FO5X{`>MLdkBJ)X@zf{-af5LU_^z|Kn`XhCtHkLAm|eZA}-@JVA(S5w|Akx zJ-{UWr##HuentRuE%9jinD(eP>038XPHo7aEv0`-{^EN6V173htm?qpCD#9Ht%&|B z(7!2tJ_v!6?X7~M;;N#q!Ufg=#XK6PEP1U9_U9QMkCU zzvQ9(4VUu2uH;XS{h#MbCWbpDP)jjgak139ad(>*FIC$yw^?gT3^4d9nEa_ra3}kJ zOW*$a(l@ZUl7c6&aHhPUZI{G?aK`k|rmV2n!fgvg{-tVdz|}Env1D6J3f}=@U&6QM80R_UF!rET}72_mN-&K|y=X zhk;c_;Hdy*H8r`fB@b?s$Pr+UywZdw|87Gh)fLeGhJp4M^Vp<*e7hTZ1foa5UtF0d zHSuzv28#U*Hyj?$VD*zH;nIl1`tnPcnGZox3XGrc-}wGz|Jb+o^}jOyi=*^6 zIyk$HU5q~_u|ELE-}kSQ`qtEyQz+u!Bf;-E^aoTVwK)d#cbY+e2W6LP_dAE@l*m6( zyZ*_s{iwb=1l)DtK#yQ3U!cI#roQ)O|19DC^V$L8ff%L5#hv!4i`_#o)6a8^nN&Qq ztMUf(H?A*-PRH*9p;laUKCVJRD6j*rZz$(F#@BD}}1#)zPfUwSvQs z3vRScR0L5lB@3Tx+S=%<2pc(TRFvNq)bLVo;=D^>6@@vWg{YS#wMMmXaO zq9LEqd2L>|9CkleWqOrXZO5v;eFv3ee(Vm4;ynCe{Ns&?t;AJ-gp<^Pax`=QVKxuK z8@i=r+)mYKSAu`7!kQ)(VlTnD!20?YGi^0~3hlCrQL&U7JH2L~tT1CZ@sQ7woXeKU ztn+j0kc|RnwUG#NQg3+Hv1%jkoJid3P5~@ z%|DKhggk_9*UEj&?2_oSuGt|#0^x7wLJfq?qr&=7n|&xe`8aRcY*x@-3lTu&BepcR ziy_a)S`a(`{+Uk+U0l*GxIdna<8ZxbuN=k`Sv)%oi_&iAn`|{FILQTp4s0ls@L#)8 zPpGm=pN1`f-Uz+8Ti1%pZ~>lMJ&eCW%X>cmfSLgvJ2wd%6(-ReL+Tj1L^f`3PXx5Qg0~# zi_ov55pAbxu=;B^5`PtA2B-Y4met7_*i0&4;^(a2^IrHX>oGZ9iHs{@Z0E?|GNcg` z%F%JK9d_g2tIO#wGz>Pnna#n(m_-|0XY?{8CRBRMT3yFTP{~X@t3P_xT*$pIv1Yn} zGiV~w9QXIka2fw9tDu8_JcgO_Yj2!6@Ly6%l%{-TeE4i1jlv3%a{$L(zH0#FwaoVd z)-U- z*nKZ-+TXM8&(fnmHr9VhXQs=UlAJjpFXJ%FQoCl#UgfWO+BJ#pW;k@@Tp-e`YqNf4 z+pLduycn+DMEj!ks*pomQC&#uW*-sMxg(+4f!py7}ok(N$+G9nJ+O6_$ z2^f1N(9bFsxcZH5h1GcZysq4x&dhdLuj3dQ(M}joHytQp9~sen$-`$f{4A#eMN@yq z0@~nx<2`x};jq@I$)p9#(3DB`s_|A>q?)cMv zWVD1>t*H)VXXO|+-bni0BDH75ke+`g{2V3t?;k4uFf(A~V|J#}q$gif|LcFp0powh zA?3eogU97~{Q7~%zL0Ps%EyJM^5U5L*Dg3|DnD?oc=bUl3u~BeohHP1*`I8`Q={vr z^Tb2>*_hk6FSIr~u8}tN$71PWQTsI0c(TKOIF|oEbPD-DItyLgNbK4Qu}BNu#93gL zt724BAvX}qjU_#Uezb6=vftAp#4gPL!fq{v>vXaS68Pb(82amEFE!Gcp1<5kn){*i zuBpcDn{P*z@@l=UBUVL7$A6d*zvK9S=y>{nJP!39ouzK4kXCsrl0LVWEUeTY_G3w{)uno=P|6g)U{XbF=16jiFWNd==qKnPmg1c7j%0_W|+rHxs?+6WoVyQ7Pip~MN z8|!gJi9fCnnk;`~i|0KIo}a#t0P=&v{O7*53CECG^Ub>nf*#>HaAsW4HGenx?wu6zX3e%(a6w}Kh zcnQ(rbe=Cq)zG|^=A-{{iO$!c@ezW$B)_~@@a|!t_^NqQ<6b)>nXmO#R)6^2S&9%3 zch@%M{^5QR}LI`Ob;3S(-+T2k0;R-Dqae3;%66rL~?m4%-n z{V(s)g8B+uDHS!NJMR`r^y0SN7&Bw#us~hCEFXILV`^;(pf9HzbL}>5PvNL|Hz)s0 zc|)xfqx@Xi=yf}x=Cg@D@6T3yS6r>U@kUF#XylM8hNYEz@6{@;G0T!#(EM1|m8g^^ zkNwTh!z|O@mnQY)X^km0$yT73MJOEoS63~vkLg+C!k)113|?Bhjb_(c%mJPlROuL( z5}UWnHKr`1%_f%@r@ng4B5N+@#4zl3dS{E^GrpM!c;D|2zD~)|k-eX+HL5w(V$W&% zax#ceyBwv7cXzMdxxF$_Rk^72VrJB(S?%BDS4~qQR2#Yz zh0T(QSAupSLmVqA$Zf3Bx*d2V-v8ODc`@!btvG*lge8%)I4u8$1#?fTO4EL>%Yeir z0Dha=+W^KQfBDjo&upV=b#a)v7Vq&sH<|TZ;(l>W_&w(^G;eKu4|dtDYOup$nyiyA zLuGGcNHe*rki8Daz)a$juQHV<9{TThlxyV#(Z($uiR6nFU+;97MD+SjjpPZi&YZED zA-qWYOo%x>m33v+YPG#;wvgw1ICh93UQ&nzh9@rz$vNf|GhBgtd4)$TnU2l5zE=ik z)t?C@}k8w|w-y&cj<@V@BQLia-S zojrMV*>~zv=Jn0q8qnwy{aqbDN(<4p`%!s z^2LxR1y%3r-*Z)TxG&G#)w?94^kivw%cOwCXNz|wyr`Za>dxLETFY8q^inG4`^#Fr z`I)MZ64oAeTIPD($ISScuNH8$y!?H=Z11Lf7K-b{RE5k6uWp=o_>&0Z@rt^8*KWN( z6!h|?#H9DW6W2X)F!$M=ta|_V@yb_~r{#lVpN4F`^yRnY(|MPU-MW{#|C*-)Wi>-ckAOQ%sCBQr&+aWmUC0i;YlOpS$qLwMo7w`}FUNPL%k>d24xr<$n_M3dze z{_K<~V)u9S24>H*b<;21xNZBS;%31`&54C`5;sn~@-MAH_afSKP`LKmNY;R&ujtPi^};Q&*W!`ig<%`Mr_bFO|Hu zOq+Jwe`}lPe}-#&3RcauRDY&Wd{TXWu!F>`*tKihd-Zg;oKR>wyXD4`X%-?{dG`+T zu}f-6&wJ>;VBNe`H(pMYO39UNow{|E|Y0QaYL zeO-N4>b|d-c2?Tnecry;BX2ZLJ?CfnPwH&GXjWOk>xpr$%g+}tf4R0^W?SA_!2>zU z&8Oz9tNLX8GR&rQY0Rr_Q69}+Qj4Oq0`K@|MH$E$^zr{XB=YHS*Wr5J`*&Q|nazFp z?4jn}Ce>yh>-AZRD>FX5?Y*gZ$H;sG zYk>T>j+OZ}{);oOw_SVnMP-%9374GH0{OdQ8?M(hC zPuU)s7qKQV@BFzZWfFfpnU!{)?&o>6?Vrw-J>J=j(_UGxh`M*@)IvSQPs)7(3+5<4 zkrD3S!R{Pu-yt59tufnwbJJIs=C@|SxpFlw0wH1#3{>PQERHe+c86VCo16dSO52l; zq;}7fE!{Gg@k?~}TD3>F-}vezzct=*$iOA3v(N2K&$};cb;Ee$Ui~|D>ao+F-51v; z_1@Ke*8Ep3!6KYrX>ONW;kn1x8&9xZ`KNc`?On0xH+j9PX@Zs!SC569IFMx1|2}Ek z!4oIeTkgKFHEid#IWMEuoLseGmc^s}eHxcbyn1CG*yrvIuX9}Y?;K-xa( literal 0 HcmV?d00001 diff --git a/images/boids.gif b/images/boids.gif new file mode 100644 index 0000000000000000000000000000000000000000..0fc933142b5016eaf415c1c837b96349264d722d GIT binary patch literal 7919223 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

&osvrpDdn&0Og*!o@rq36EOPb!N@Lqh?6TT>q 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