From 9a2823d27911b73b08e1bf2cdbd0f142f1a1bb3b Mon Sep 17 00:00:00 2001 From: Nithin Pranesh Date: Sat, 11 Sep 2021 18:53:48 -0400 Subject: [PATCH 1/6] naive and uniform grids implementations --- src/kernel.cu | 272 ++++++++++++++++++++++++++++++++++++++++++++++++-- src/main.cpp | 2 +- src/main.hpp | 6 +- 3 files changed, 267 insertions(+), 13 deletions(-) diff --git a/src/kernel.cu b/src/kernel.cu index 74dffcb..acba276 100644 --- a/src/kernel.cu +++ b/src/kernel.cu @@ -45,11 +45,11 @@ void checkCUDAError(const char *msg, int line = -1) { #define rule2Distance 3.0f #define rule3Distance 5.0f -#define rule1Scale 0.01f +#define rule1Scale 0.005f #define rule2Scale 0.1f -#define rule3Scale 0.1f +#define rule3Scale 0.01f -#define maxSpeed 1.0f +#define maxSpeed 15.0f /*! Size of the starting area in simulation space. */ #define scene_scale 100.0f @@ -59,7 +59,8 @@ void checkCUDAError(const char *msg, int line = -1) { ***********************************************/ int numObjects; -dim3 threadsPerBlock(blockSize); +dim3 threadsPerBlock(blockSize); +dim3 fullBlocksPerGrid; // LOOK-1.2 - These buffers are here to hold all your boid information. // These get allocated for you in Boids::initSimulation. @@ -127,9 +128,16 @@ __global__ void kernGenerateRandomPosArray(int time, int N, glm::vec3 * arr, flo 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; + arr[index].x = (scale - maxSpeed) * rand.x; + arr[index].y = (scale - maxSpeed) * rand.y; + arr[index].z = (scale - maxSpeed) * rand.z; + } +} + +__global__ void kernGenerateRandomVelArray(int time, int N, glm::vec3* arr) { + int index = (blockIdx.x * blockDim.x) + threadIdx.x; + if (index < N) { + arr[index] = generateRandomVec3(time, index); } } @@ -138,7 +146,7 @@ __global__ void kernGenerateRandomPosArray(int time, int N, glm::vec3 * arr, flo */ void Boids::initSimulation(int N) { numObjects = N; - dim3 fullBlocksPerGrid((N + blockSize - 1) / blockSize); + 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. @@ -156,6 +164,10 @@ void Boids::initSimulation(int N) { dev_pos, scene_scale); checkCUDAErrorWithLine("kernGenerateRandomPosArray failed!"); + kernGenerateRandomVelArray << > > (2, numObjects, + dev_vel1); + checkCUDAErrorWithLine("kernGenerateRandomVelArray failed!"); + // LOOK-2.1 computing grid params gridCellWidth = 2.0f * std::max(std::max(rule1Distance, rule2Distance), rule3Distance); int halfSideCount = (int)(scene_scale / gridCellWidth) + 1; @@ -169,6 +181,21 @@ void Boids::initSimulation(int N) { 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!"); + + cudaMalloc((void**)&dev_gridCellStartIndices, gridCellCount * sizeof(int)); + checkCUDAErrorWithLine("cudaMalloc dev_gridCellStartIndices failed!"); + + cudaMalloc((void**)&dev_gridCellEndIndices, gridCellCount * sizeof(int)); + checkCUDAErrorWithLine("cudaMalloc dev_gridCellEndIndices failed!"); + + dev_thrust_particleArrayIndices = thrust::device_ptr(dev_particleArrayIndices); + dev_thrust_particleGridIndices = thrust::device_ptr(dev_particleGridIndices); + cudaDeviceSynchronize(); } @@ -223,6 +250,113 @@ void Boids::copyBoidsToVBO(float *vbodptr_positions, float *vbodptr_velocities) * stepSimulation * ******************/ +struct VelocityCalculationInfo { + const glm::vec3* pos; + const glm::vec3* vel; + const glm::vec3& selfPos; + const glm::vec3& selfVel; + glm::vec3 perceivedCenter; + glm::vec3 perceivedVelocity; + glm::vec3 separation; + int perceivedCenterNeighbors; + int perceivedVelocityNeighbors; +}; + +/** +* Prepares all needed info for the velocity calculation for this boid. +*/ +__device__ VelocityCalculationInfo initVelocityCalculationInfo(int N, int iSelf, const glm::vec3* pos, const glm::vec3* vel) { + return { + pos, + vel, + pos[iSelf], + vel[iSelf], + glm::vec3(0.0f), + glm::vec3(0.0f), + glm::vec3(0.0f), + 0, + 0 + }; +} + +/** +* Accumulates the given boid's contribution to the current boid's velocity. +*/ +__device__ void accumulateBoidContribution( + int iOther, + VelocityCalculationInfo& calculationInfo) { + + glm::vec3 iPos = calculationInfo.pos[iOther]; + const glm::vec3& iVel = calculationInfo.vel[iOther]; + + glm::vec3 difference = iPos - calculationInfo.selfPos; + + // take into account boundary wrapping + if (difference.x > scene_scale) { + difference.x -= 2.0f * scene_scale; + iPos.x -= 2.0f * scene_scale; + } + else if (difference.x < -scene_scale) { + difference.x += 2.0f * scene_scale; + iPos.x += 2.0f * scene_scale; + } + + if (difference.y > scene_scale) { + difference.y -= 2.0f * scene_scale; + iPos.y -= 2.0f * scene_scale; + } + else if (difference.y < -scene_scale) { + difference.y += 2.0f * scene_scale; + iPos.y += 2.0f * scene_scale; + } + + if (difference.z > scene_scale) { + difference.z -= 2.0f * scene_scale; + iPos.z -= 2.0f * scene_scale; + } + else if (difference.z < -scene_scale) { + difference.z += 2.0f * scene_scale; + iPos.z += 2.0f * scene_scale; + } + + float distance = glm::length(difference); + + if (distance < rule1Distance) { + calculationInfo.perceivedCenter += iPos; + ++calculationInfo.perceivedCenterNeighbors; + } + + if (distance < rule2Distance) { + calculationInfo.separation -= difference; + } + + if (distance < rule3Distance) { + calculationInfo.perceivedVelocity += iVel; + ++calculationInfo.perceivedVelocityNeighbors; + } +} + +/** +* Evaluates the VelocityCalculationInfo to find the change in velocity for the current boid. +*/ +__device__ glm::vec3 evaluateVelocityCalculationInfo(VelocityCalculationInfo& calculationInfo) { + glm::vec3 result(0.0f); + + if (calculationInfo.perceivedCenterNeighbors > 0) { + calculationInfo.perceivedCenter /= calculationInfo.perceivedCenterNeighbors; + result += rule1Scale * (calculationInfo.perceivedCenter - calculationInfo.selfPos); + } + + result += rule2Scale * calculationInfo.separation; + + if (calculationInfo.perceivedVelocityNeighbors > 0) { + calculationInfo.perceivedVelocity /= calculationInfo.perceivedVelocityNeighbors; + result += rule3Scale * (calculationInfo.perceivedVelocity - calculationInfo.selfVel); + } + + return result; +} + /** * LOOK-1.2 You can use this as a helper for kernUpdateVelocityBruteForce. * __device__ code can be called from a __global__ context @@ -233,7 +367,15 @@ __device__ glm::vec3 computeVelocityChange(int N, int iSelf, const glm::vec3 *po // 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); + + // Naive implementation + VelocityCalculationInfo calculationInfo = initVelocityCalculationInfo(N, iSelf, pos, vel); + for (int i = 0; i < N; ++i) { + if (i != iSelf) { + accumulateBoidContribution(i, calculationInfo); + } + } + return evaluateVelocityCalculationInfo(calculationInfo); } /** @@ -245,6 +387,14 @@ __global__ void kernUpdateVelocityBruteForce(int N, glm::vec3 *pos, // Compute a new velocity based on pos and vel1 // Clamp the speed // Record the new velocity into vel2. Question: why NOT vel1? + int index = threadIdx.x + (blockIdx.x * blockDim.x); + if (index >= 0 && index < N) { + vel2[index] = vel1[index] + computeVelocityChange(N, index, pos, vel1); + + if (glm::length(vel2[index]) > maxSpeed) { + vel2[index] = maxSpeed * glm::normalize(vel2[index]); + } + } } /** @@ -289,6 +439,12 @@ __global__ void kernComputeIndices(int N, int gridResolution, // - 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 + int index = (blockIdx.x * blockDim.x) + threadIdx.x; + if (index >= 0 && index < N) { + glm::vec3 gridCoords = glm::floor((pos[index] - gridMin) * inverseCellWidth); + gridIndices[index] = gridIndex3Dto1D(gridCoords.x, gridCoords.y, gridCoords.z, gridResolution); + indices[index] = index; + } } // LOOK-2.1 Consider how this could be useful for indicating that a cell @@ -306,6 +462,15 @@ __global__ void kernIdentifyCellStartEnd(int N, int *particleGridIndices, // 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 index = (blockIdx.x * blockDim.x) + threadIdx.x; + if (index > 0 && index < N) { + int lastGridIndex = particleGridIndices[index - 1]; + int gridIndex = particleGridIndices[index]; + if (lastGridIndex != gridIndex) { + gridCellEndIndices[lastGridIndex] = index; + gridCellStartIndices[gridIndex] = index; + } + } } __global__ void kernUpdateVelNeighborSearchScattered( @@ -322,6 +487,39 @@ __global__ void kernUpdateVelNeighborSearchScattered( // - 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 index = (blockIdx.x * blockDim.x) + threadIdx.x; + if (index >= 0 && index < N) { + int boidIndex = particleArrayIndices[index]; + glm::ivec3 iGridCoords(glm::floor((pos[boidIndex] - gridMin) * inverseCellWidth)); + + VelocityCalculationInfo calculationInfo = initVelocityCalculationInfo(N, boidIndex, pos, vel1); + + // will preserve cache locality except in the case we need to wrap around the boundaries + for (int dz = -1; dz <= 1; ++dz) { + int z = (iGridCoords.z + dz) % gridResolution; + for (int dy = -1; dy <= 1; ++dy) { + int y = (iGridCoords.y + dy) % gridResolution; + for (int dx = -1; dx <= 1; ++dx) { + int x = (iGridCoords.x + dx) % gridResolution; + int gridIndex = gridIndex3Dto1D(x, y, z, gridResolution); + int gridStart = gridCellStartIndices[gridIndex]; + int gridEnd = gridCellEndIndices[gridIndex]; + // check all boids in this cell + for (int i = gridStart; i < gridEnd; ++i) { + if (i != index) { + accumulateBoidContribution(particleArrayIndices[i], calculationInfo); + } + } + } + } + } + + vel2[boidIndex] = vel1[boidIndex] + evaluateVelocityCalculationInfo(calculationInfo); + + if (glm::length(vel2[boidIndex]) > maxSpeed) { + vel2[boidIndex] = maxSpeed * glm::normalize(vel2[boidIndex]); + } + } } __global__ void kernUpdateVelNeighborSearchCoherent( @@ -349,6 +547,14 @@ __global__ void kernUpdateVelNeighborSearchCoherent( void Boids::stepSimulationNaive(float dt) { // TODO-1.2 - use the kernels you wrote to step the simulation forward in time. // TODO-1.2 ping-pong the velocity buffers + + kernUpdateVelocityBruteForce << > > (numObjects, dev_pos, dev_vel1, dev_vel2); + checkCUDAErrorWithLine("kernUpdateVelocityBruteForce failed!"); + + kernUpdatePos << > > (numObjects, dt, dev_pos, dev_vel2); + checkCUDAErrorWithLine("kernUpdatePos failed!"); + + std::swap(dev_vel1, dev_vel2); } void Boids::stepSimulationScatteredGrid(float dt) { @@ -364,6 +570,54 @@ void Boids::stepSimulationScatteredGrid(float dt) { // - Perform velocity updates using neighbor search // - Update positions // - Ping-pong buffers as needed + + // Both start and end point to the end of the boids array. Using this as the default value lets us avoid having + // to set the end pointer of the last sorted grid cell. + kernResetIntBuffer << > > (gridCellCount, dev_gridCellStartIndices, numObjects); + checkCUDAErrorWithLine("Clearing dev_gridCellStartIndices failed!"); + kernResetIntBuffer << > > (gridCellCount, dev_gridCellEndIndices, numObjects); + checkCUDAErrorWithLine("Clearing dev_gridCellEndIndices failed!"); + + kernComputeIndices << > > ( + numObjects, + gridSideCount, + glm::vec3(-scene_scale), + 1.0f / gridCellWidth, + dev_pos, + dev_particleArrayIndices, + dev_particleGridIndices); + checkCUDAErrorWithLine("kernComputeIndices failed!"); + + thrust::sort_by_key( + dev_thrust_particleGridIndices, + dev_thrust_particleGridIndices + numObjects, + dev_thrust_particleArrayIndices); + + kernIdentifyCellStartEnd << > > ( + numObjects, + dev_particleGridIndices, + dev_gridCellStartIndices, + dev_gridCellEndIndices); + checkCUDAErrorWithLine("kernIdentifyCellStartEnd failed!"); + + kernUpdateVelNeighborSearchScattered << > > ( + numObjects, + gridSideCount, + glm::vec3(-scene_scale), + 1.0f / gridCellWidth, + gridCellWidth, + dev_gridCellStartIndices, + dev_gridCellEndIndices, + dev_particleArrayIndices, + dev_pos, + dev_vel1, + dev_vel2); + checkCUDAErrorWithLine("kernUpdateVelNeighborSearchScattered failed!"); + + kernUpdatePos << > > (numObjects, dt, dev_pos, dev_vel2); + checkCUDAErrorWithLine("kernUpdatePos failed!"); + + std::swap(dev_vel1, dev_vel2); } void Boids::stepSimulationCoherentGrid(float dt) { diff --git a/src/main.cpp b/src/main.cpp index b82c8c6..063a977 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 diff --git a/src/main.hpp b/src/main.hpp index 88e9df7..5b3be76 100644 --- a/src/main.hpp +++ b/src/main.hpp @@ -36,9 +36,9 @@ const float fovy = (float) (PI / 4); const float zNear = 0.10f; const float zFar = 10.0f; // LOOK-1.2: for high DPI displays, you may want to double these settings. -int width = 1280; -int height = 720; -int pointSize = 2; +int width = 2560; +int height = 1440; +int pointSize = 5; // For camera controls bool leftMousePressed = false; From 426cedd90436ec716e548b52933e50b56331e715 Mon Sep 17 00:00:00 2001 From: Nithin Pranesh Date: Sun, 12 Sep 2021 13:54:17 -0400 Subject: [PATCH 2/6] added 8 cell check in uniform grid implementation (instead of 27) --- src/kernel.cu | 37 +++++++++++++++++++++++++++++++++---- src/main.hpp | 6 +++--- 2 files changed, 36 insertions(+), 7 deletions(-) diff --git a/src/kernel.cu b/src/kernel.cu index acba276..34e2df0 100644 --- a/src/kernel.cu +++ b/src/kernel.cu @@ -45,11 +45,11 @@ void checkCUDAError(const char *msg, int line = -1) { #define rule2Distance 3.0f #define rule3Distance 5.0f -#define rule1Scale 0.005f +#define rule1Scale 0.008f #define rule2Scale 0.1f #define rule3Scale 0.01f -#define maxSpeed 15.0f +#define maxSpeed 10.0f /*! Size of the starting area in simulation space. */ #define scene_scale 100.0f @@ -490,11 +490,40 @@ __global__ void kernUpdateVelNeighborSearchScattered( int index = (blockIdx.x * blockDim.x) + threadIdx.x; if (index >= 0 && index < N) { int boidIndex = particleArrayIndices[index]; - glm::ivec3 iGridCoords(glm::floor((pos[boidIndex] - gridMin) * inverseCellWidth)); + glm::vec3 fGridCoords = (pos[boidIndex] - gridMin) * inverseCellWidth; + glm::ivec3 iGridCoords(glm::floor(fGridCoords)); + glm::ivec3 searchDirection( + (fGridCoords.x - iGridCoords.x) > 0.5f ? 1 : -1, + (fGridCoords.y - iGridCoords.y) > 0.5f ? 1 : -1, + (fGridCoords.z - iGridCoords.z) > 0.5f ? 1 : -1); VelocityCalculationInfo calculationInfo = initVelocityCalculationInfo(N, boidIndex, pos, vel1); // will preserve cache locality except in the case we need to wrap around the boundaries + + // CHECK 8 CELLS + /**/ + for (int i = 0; i < 2; ++i) { + int z = (iGridCoords.z + i * searchDirection.z) % gridResolution; + for (int j = 0; j < 2; ++j) { + int y = (iGridCoords.y + j * searchDirection.y) % gridResolution; + for (int k = 0; k < 2; ++k) { + int x = (iGridCoords.x + k * searchDirection.x) % gridResolution; + int gridIndex = gridIndex3Dto1D(x, y, z, gridResolution); + int gridStart = gridCellStartIndices[gridIndex]; + int gridEnd = gridCellEndIndices[gridIndex]; + // check all boids in this cell + for (int l = gridStart; l < gridEnd; ++l) { + if (l != index) { + accumulateBoidContribution(particleArrayIndices[l], calculationInfo); + } + } + } + } + }/**/ + + // CHECK 27 CELLS + /** / for (int dz = -1; dz <= 1; ++dz) { int z = (iGridCoords.z + dz) % gridResolution; for (int dy = -1; dy <= 1; ++dy) { @@ -512,7 +541,7 @@ __global__ void kernUpdateVelNeighborSearchScattered( } } } - } + }/**/ vel2[boidIndex] = vel1[boidIndex] + evaluateVelocityCalculationInfo(calculationInfo); diff --git a/src/main.hpp b/src/main.hpp index 5b3be76..88e9df7 100644 --- a/src/main.hpp +++ b/src/main.hpp @@ -36,9 +36,9 @@ const float fovy = (float) (PI / 4); const float zNear = 0.10f; const float zFar = 10.0f; // LOOK-1.2: for high DPI displays, you may want to double these settings. -int width = 2560; -int height = 1440; -int pointSize = 5; +int width = 1280; +int height = 720; +int pointSize = 2; // For camera controls bool leftMousePressed = false; From e55796c73ed15f467f66641c25d78d00b414f0b6 Mon Sep 17 00:00:00 2001 From: Nithin Pranesh Date: Sun, 12 Sep 2021 15:52:11 -0400 Subject: [PATCH 3/6] coherent uniform grid --- src/kernel.cu | 150 ++++++++++++++++++++++++++++++++++++++++++++++++-- src/main.cpp | 4 +- 2 files changed, 146 insertions(+), 8 deletions(-) diff --git a/src/kernel.cu b/src/kernel.cu index 34e2df0..a88cd67 100644 --- a/src/kernel.cu +++ b/src/kernel.cu @@ -45,11 +45,11 @@ void checkCUDAError(const char *msg, int line = -1) { #define rule2Distance 3.0f #define rule3Distance 5.0f -#define rule1Scale 0.008f +#define rule1Scale 0.01f #define rule2Scale 0.1f -#define rule3Scale 0.01f +#define rule3Scale 0.1f -#define maxSpeed 10.0f +#define maxSpeed 1.0f /*! Size of the starting area in simulation space. */ #define scene_scale 100.0f @@ -71,6 +71,9 @@ glm::vec3 *dev_pos; glm::vec3 *dev_vel1; glm::vec3 *dev_vel2; +// used to reorder the position buffer for 2.3 +glm::vec3* dev_pos2; + // LOOK-2.1 - these are NOT allocated for you. You'll have to set up the thrust // pointers on your own too. @@ -163,11 +166,11 @@ void Boids::initSimulation(int N) { kernGenerateRandomPosArray<<>>(1, numObjects, dev_pos, scene_scale); checkCUDAErrorWithLine("kernGenerateRandomPosArray failed!"); - + /* kernGenerateRandomVelArray << > > (2, numObjects, dev_vel1); checkCUDAErrorWithLine("kernGenerateRandomVelArray failed!"); - + */ // LOOK-2.1 computing grid params gridCellWidth = 2.0f * std::max(std::max(rule1Distance, rule2Distance), rule3Distance); int halfSideCount = (int)(scene_scale / gridCellWidth) + 1; @@ -181,6 +184,9 @@ void Boids::initSimulation(int N) { gridMinimum.z -= halfGridWidth; // TODO-2.1 TODO-2.3 - Allocate additional buffers here. + cudaMalloc((void**)&dev_pos2, N * sizeof(glm::vec3)); + checkCUDAErrorWithLine("cudaMalloc dev_pos2 failed!"); + cudaMalloc((void**)&dev_particleArrayIndices, N * sizeof(int)); checkCUDAErrorWithLine("cudaMalloc dev_particleArrayIndices failed!"); @@ -351,7 +357,7 @@ __device__ glm::vec3 evaluateVelocityCalculationInfo(VelocityCalculationInfo& ca if (calculationInfo.perceivedVelocityNeighbors > 0) { calculationInfo.perceivedVelocity /= calculationInfo.perceivedVelocityNeighbors; - result += rule3Scale * (calculationInfo.perceivedVelocity - calculationInfo.selfVel); + result += rule3Scale * (calculationInfo.perceivedVelocity);// -calculationInfo.selfVel); } return result; @@ -456,6 +462,18 @@ __global__ void kernResetIntBuffer(int N, int *intBuffer, int value) { } } +/** +* Reorders the input buffer as prescribed by the indices and moves it into +* the output buffer. +*/ +template +__global__ void kernArrangeBuffer(int N, const int* indices, T* in, T* out) { + int index = (blockIdx.x * blockDim.x) + threadIdx.x; + if (index >= 0 && index < N) { + out[index] = std::move(in[indices[index]]); + } +} + __global__ void kernIdentifyCellStartEnd(int N, int *particleGridIndices, int *gridCellStartIndices, int *gridCellEndIndices) { // TODO-2.1 @@ -568,6 +586,67 @@ __global__ void kernUpdateVelNeighborSearchCoherent( // - 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 index = (blockIdx.x * blockDim.x) + threadIdx.x; + if (index >= 0 && index < N) { + glm::vec3 fGridCoords = (pos[index] - gridMin) * inverseCellWidth; + glm::ivec3 iGridCoords(glm::floor(fGridCoords)); + glm::ivec3 searchDirection( + (fGridCoords.x - iGridCoords.x) > 0.5f ? 1 : -1, + (fGridCoords.y - iGridCoords.y) > 0.5f ? 1 : -1, + (fGridCoords.z - iGridCoords.z) > 0.5f ? 1 : -1); + + VelocityCalculationInfo calculationInfo = initVelocityCalculationInfo(N, index, pos, vel1); + + // will preserve cache locality except in the case we need to wrap around the boundaries + + // CHECK 8 CELLS + /**/ + for (int i = 0; i < 2; ++i) { + int z = (iGridCoords.z + i * searchDirection.z) % gridResolution; + for (int j = 0; j < 2; ++j) { + int y = (iGridCoords.y + j * searchDirection.y) % gridResolution; + for (int k = 0; k < 2; ++k) { + int x = (iGridCoords.x + k * searchDirection.x) % gridResolution; + int gridIndex = gridIndex3Dto1D(x, y, z, gridResolution); + int gridStart = gridCellStartIndices[gridIndex]; + int gridEnd = gridCellEndIndices[gridIndex]; + // check all boids in this cell + for (int l = gridStart; l < gridEnd; ++l) { + if (l != index) { + accumulateBoidContribution(l, calculationInfo); + } + } + } + } + }/**/ + + // CHECK 27 CELLS + /** / + for (int dz = -1; dz <= 1; ++dz) { + int z = (iGridCoords.z + dz) % gridResolution; + for (int dy = -1; dy <= 1; ++dy) { + int y = (iGridCoords.y + dy) % gridResolution; + for (int dx = -1; dx <= 1; ++dx) { + int x = (iGridCoords.x + dx) % gridResolution; + int gridIndex = gridIndex3Dto1D(x, y, z, gridResolution); + int gridStart = gridCellStartIndices[gridIndex]; + int gridEnd = gridCellEndIndices[gridIndex]; + // check all boids in this cell + for (int i = gridStart; i < gridEnd; ++i) { + if (i != index) { + accumulateBoidContribution(particleArrayIndices[i], calculationInfo); + } + } + } + } + }/**/ + + vel2[index] = vel1[index] + evaluateVelocityCalculationInfo(calculationInfo); + + if (glm::length(vel2[index]) > maxSpeed) { + vel2[index] = maxSpeed * glm::normalize(vel2[index]); + } + } } /** @@ -665,6 +744,60 @@ void Boids::stepSimulationCoherentGrid(float dt) { // - Perform velocity updates using neighbor search // - Update positions // - Ping-pong buffers as needed. THIS MAY BE DIFFERENT FROM BEFORE. + + kernResetIntBuffer << > > (gridCellCount, dev_gridCellStartIndices, numObjects); + checkCUDAErrorWithLine("Clearing dev_gridCellStartIndices failed!"); + kernResetIntBuffer << > > (gridCellCount, dev_gridCellEndIndices, numObjects); + checkCUDAErrorWithLine("Clearing dev_gridCellEndIndices failed!"); + + kernComputeIndices << > > ( + numObjects, + gridSideCount, + glm::vec3(-scene_scale), + 1.0f / gridCellWidth, + dev_pos, + dev_particleArrayIndices, + dev_particleGridIndices); + checkCUDAErrorWithLine("kernComputeIndices failed!"); + + thrust::sort_by_key( + dev_thrust_particleGridIndices, + dev_thrust_particleGridIndices + numObjects, + dev_thrust_particleArrayIndices); + + // now apply the new order to the position and velocity buffers + kernArrangeBuffer << > > (numObjects, dev_particleArrayIndices, dev_pos, dev_pos2); + checkCUDAErrorWithLine("rearranging position buffer (kernArrangeBuffer) failed!"); + kernArrangeBuffer << > > (numObjects, dev_particleArrayIndices, dev_vel1, dev_vel2); + checkCUDAErrorWithLine("rearranging velocity buffer (kernArrangeBuffer) failed!"); + + std::swap(dev_pos, dev_pos2); + std::swap(dev_vel1, dev_vel2); + + kernIdentifyCellStartEnd << > > ( + numObjects, + dev_particleGridIndices, + dev_gridCellStartIndices, + dev_gridCellEndIndices); + checkCUDAErrorWithLine("kernIdentifyCellStartEnd failed!"); + + kernUpdateVelNeighborSearchCoherent << > > ( + numObjects, + gridSideCount, + glm::vec3(-scene_scale), + 1.0f / gridCellWidth, + gridCellWidth, + dev_gridCellStartIndices, + dev_gridCellEndIndices, + dev_pos, + dev_vel1, + dev_vel2); + checkCUDAErrorWithLine("kernUpdateVelNeighborSearchScattered failed!"); + + kernUpdatePos << > > (numObjects, dt, dev_pos, dev_vel2); + checkCUDAErrorWithLine("kernUpdatePos failed!"); + + std::swap(dev_vel1, dev_vel2); } void Boids::endSimulation() { @@ -673,6 +806,11 @@ void Boids::endSimulation() { cudaFree(dev_pos); // TODO-2.1 TODO-2.3 - Free any additional buffers here. + cudaFree(dev_pos2); + cudaFree(dev_particleArrayIndices); + cudaFree(dev_particleGridIndices); + cudaFree(dev_gridCellStartIndices); + cudaFree(dev_gridCellEndIndices); } void Boids::unitTest() { diff --git a/src/main.cpp b/src/main.cpp index 063a977..cb35fe1 100644 --- a/src/main.cpp +++ b/src/main.cpp @@ -15,10 +15,10 @@ // 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; +const int N_FOR_VIS = 70000; const float DT = 0.2f; /** From 1b1c8ee55207dfb0283a72c330c202100d301dc1 Mon Sep 17 00:00:00 2001 From: Nithin Pranesh Date: Sun, 12 Sep 2021 23:10:45 -0400 Subject: [PATCH 4/6] wip readme --- README.md | 40 ++++++++++++++++++++++++++++++++++------ images/boids.gif | Bin 0 -> 8327381 bytes images/boids.png | Bin 0 -> 287761 bytes src/kernel.cu | 4 ++-- src/main.cpp | 2 +- 5 files changed, 37 insertions(+), 9 deletions(-) create mode 100644 images/boids.gif create mode 100644 images/boids.png diff --git a/README.md b/README.md index d63a6a1..4d3b675 100644 --- a/README.md +++ b/README.md @@ -1,11 +1,39 @@ **University of Pennsylvania, CIS 565: GPU Programming and Architecture, Project 1 - Flocking** -* (TODO) YOUR NAME HERE - * (TODO) [LinkedIn](), [personal website](), [twitter](), etc. -* Tested on: (TODO) Windows 22, i7-2222 @ 2.22GHz 22GB, GTX 222 222MB (Moore 2222 Lab) +* Nithin Pranesh + * Here are some links to connect with me: [LinkedIn](https://www.linkedin.com/in/nithin-pranesh), [YouTube](https://www.youtube.com/channel/UCAQwYrQblfN8qeDW28KkH7g/featured), [Twitter](https://twitter.com/NithinPranesh1). +* Tested on: XPS 15 7590, Windows 20H2, i7-9750H @ 2.60GHz 22GB, GTX 1650. -### (TODO: Your README) +### Overview + +![Gif of Boids simulation](images/boids.gif) + +![Screenshot of Boids simulation](images/boids.png) + +This is a simulation of the flocking behavior of an idealized species referred to as "Boids". While there are many other behavioral forces that could be added, this simulation only considers cohesion, spacing, and momentum. More precisely, an individual boid attempts to stick near the rest of the flock, maintain a small distance from other boids to avoid collision, and maintain a similar velocity to the local flock. + +### Questions + +* For each implementation, how does changing the number of boids affect +performance? Why do you think this is? + +- Naive implementation: The naive implementation has to check all other boids for velocity contributions in order to update the velocity of a single boid. This is the case even if some are obviously too far away to affect the current boid. So increasing the number of boids linearly increases the time it takes. + +- Scattered uniform grid: The uniform grid implementation takes an extra precomputation sorting step that is gpu-accelerated, but as a result we only need to check a constant number of cells per boid (in our case 8 cells). Each cell may technically have an arbitrary amount of boids out of the total n boids, but in practice, the spacing rule keeps the worst case density still quite low. + +Increasing the number of total boids will not increase the local boid density noticeably. This is true up until the entire scene is saturated with boids, at which point the simulation is useless anyhow. Since the runtime complexity of the uniform grid approach is a linear function of the local density, the performance for the velocity calculation practically does not deteriorate with more boids. As the number of boids increases, the overall performance gets worse as a result of the sorting step, cache non-locality, using global memory instead of shared memory, and the limit of gpu core count. + +- Coherent uniform grid: The coherent uniform grid appraoch clearly saves all the computation that the normal uniform grid implementation did above. In addition it resolves the cache non-locality we saw since now the position and velocity buffers are reordered by grid cell id during the sorting step. This is so that when we iterate over boids in a cell and in adjacent cells, the retrieved cache line will contain the boid data in the same order that we will be iterating through it. When increasing the number of total boids, the performance will still be bound on the usage of global memory instead of shared memory. + +* For each implementation, how does changing the block count and block size +affect performance? Why do you think this is? + +* For the coherent uniform grid: did you experience any performance improvements +with the more coherent uniform grid? Was this the outcome you expected? +Why or why not? +- There did not appear to be a difference in framerate at 50,000 boids when the visuals were enabled, both were hovering around 550 fps. At 70,000 boids with the visualization off the difference was more clear, the uniform grid was struggling at around 8 fps while the coherent uniform grid was comfortably hovering around 290 fps. + +* Did changing cell width and checking 27 vs 8 neighboring cells affect performance? +- Using 8 cells (2x2x2 cube) instead of 27 (3x3x3 cube) was slightly faster not necessarily because it was less cells, but because a 3x3x3 cube has 9 disjoint memory segments that need to be fetched while a 2x2x2 cube only has 4 disjoint memory segments. This is determined by looking at which cells in each cube are contiguous with other cells in memory. Then, we need to see how many disjoint groups (each group containing contiguous cells) make up the entire cube. For example, in the 2x2x2 search cube, there are 4 segments of memory that are disjoint from each other, each of which has 2 cells that are adjacent in memory. In the 3x3x3 case, there are 9 disjoint segments with 3 adjacent cells in each segment. -Include screenshots, analysis, etc. (Remember, this is public, so don't put -anything here that you don't want to share with the world.) diff --git a/images/boids.gif b/images/boids.gif new file mode 100644 index 0000000000000000000000000000000000000000..3a264302b23c374fa88b9ab7d4e48b332812cf04 GIT binary patch literal 8327381 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