From 17b3faf497bd3be66d6dfe6cc0f75542c390f271 Mon Sep 17 00:00:00 2001 From: Zhenzhong Tang Date: Fri, 8 Sep 2023 02:26:38 -0400 Subject: [PATCH 1/5] Part 1: Naive Boids Simulation --- src/kernel.cu | 50 +++++++++++++++++++++++++++++++++++++++++++++----- 1 file changed, 45 insertions(+), 5 deletions(-) diff --git a/src/kernel.cu b/src/kernel.cu index 74dffcb..0dc2297 100644 --- a/src/kernel.cu +++ b/src/kernel.cu @@ -229,11 +229,37 @@ void Boids::copyBoidsToVBO(float *vbodptr_positions, float *vbodptr_velocities) * Compute the new velocity on the body with index `iSelf` due to the `N` boids * 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); +__device__ glm::vec3 computeVelocityChange(int N, int iSelf, const glm::vec3* pos, const glm::vec3* vel) { + int numNeighbors1 = 0, numNeighbors3 = 0; + glm::vec3 pc{ 0.0f }, c{ 0.0f }, pv{ 0.0f }; + for (int i = 0; i < N; i++) { + if (i != iSelf) { + float distance = glm::distance(pos[i], pos[iSelf]); + // Rule 1: boids fly towards their local perceived center of mass, which excludes themselves + if (distance < rule1Distance) { + pc += pos[i]; + numNeighbors1++; + } + // Rule 2: boids try to stay a distance d away from each other + if (distance < rule2Distance) c -= (pos[i] - pos[iSelf]); + // Rule 3: boids try to match the speed of surrounding boids + if (distance < rule3Distance) { + pv += vel[i]; + numNeighbors3++; + } + } + } + glm::vec3 velDelta{ 0.0f }; + if (numNeighbors1 != 0) { + pc /= numNeighbors1; + velDelta += (pc - pos[iSelf]) * rule1Scale; + } + velDelta += c * rule2Scale; + if (numNeighbors3 != 0) { + pv /= numNeighbors3; + velDelta += pv * rule3Scale; + } + return velDelta; } /** @@ -243,8 +269,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) { // Compute a new velocity based on pos and vel1 + int index = threadIdx.x + (blockIdx.x * blockDim.x); + if (index >= N) { + return; + } + glm::vec3 newVel = vel1[index] + computeVelocityChange(N, index, pos, vel1); // Clamp the speed + if (glm::length(newVel) > maxSpeed) { + newVel = glm::normalize(newVel) * maxSpeed; + } // Record the new velocity into vel2. Question: why NOT vel1? + // Answer: other threads may be still reading from vel1 to compute velocity changes + vel2[index] = newVel; } /** @@ -348,7 +384,11 @@ __global__ void kernUpdateVelNeighborSearchCoherent( */ void Boids::stepSimulationNaive(float dt) { // TODO-1.2 - use the kernels you wrote to step the simulation forward in time. + int numBlocks = (numObjects + blockSize - 1) / blockSize; + kernUpdateVelocityBruteForce<<>>(numObjects, dev_pos, dev_vel1, dev_vel2); + kernUpdatePos<<>>(numObjects, dt, dev_pos, dev_vel2); // TODO-1.2 ping-pong the velocity buffers + std::swap(dev_vel1, dev_vel2); } void Boids::stepSimulationScatteredGrid(float dt) { From f17d05bfe4b3a88b4f78c3eaea2cc44160b46d70 Mon Sep 17 00:00:00 2001 From: Zhenzhong Tang Date: Sun, 10 Sep 2023 03:40:49 -0400 Subject: [PATCH 2/5] Part 2: Let there be (better) flocking! --- src/kernel.cu | 208 ++++++++++++++++++++++++++++++++++++++++++++++++-- 1 file changed, 200 insertions(+), 8 deletions(-) diff --git a/src/kernel.cu b/src/kernel.cu index 0dc2297..166f1c5 100644 --- a/src/kernel.cu +++ b/src/kernel.cu @@ -85,6 +85,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 *dev_coherentPos; +glm::vec3 *dev_coherentVel; // LOOK-2.1 - Grid parameters based on simulation parameters. // These are automatically computed for you in Boids::initSimulation @@ -169,6 +171,27 @@ 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!"); + + dev_thrust_particleArrayIndices = thrust::device_pointer_cast(dev_particleArrayIndices); + dev_thrust_particleGridIndices = thrust::device_pointer_cast(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!"); + + cudaMalloc((void**)&dev_coherentPos, N * sizeof(glm::vec3)); + checkCUDAErrorWithLine("cudaMalloc dev_coherentPos failed!"); + + cudaMalloc((void**)&dev_coherentVel, N * sizeof(glm::vec3)); + checkCUDAErrorWithLine("cudaMalloc dev_coherentVel failed!"); + cudaDeviceSynchronize(); } @@ -321,10 +344,17 @@ __device__ int gridIndex3Dto1D(int x, int y, int z, int 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 + // 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 + int index = (blockIdx.x * blockDim.x) + threadIdx.x; + if (index >= N) { + return; + } + indices[index] = index; + glm::ivec3 gridIndex = glm::floor((pos[index] - gridMin) * inverseCellWidth); + gridIndices[index] = gridIndex3Dto1D(gridIndex.x, gridIndex.y, gridIndex.z, gridResolution); } // LOOK-2.1 Consider how this could be useful for indicating that a cell @@ -342,6 +372,24 @@ __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; + int currentGrid = particleGridIndices[index]; + if (index == 0) { + gridCellStartIndices[currentGrid] = index; + } + else if (index < N) { + int previousGrid = particleGridIndices[index - 1]; + if (currentGrid != previousGrid) { + gridCellEndIndices[previousGrid] = index - 1; + gridCellStartIndices[currentGrid] = index; + } + if (index == N - 1) { + gridCellEndIndices[currentGrid] = index; + } + } + else { + return; + } } __global__ void kernUpdateVelNeighborSearchScattered( @@ -352,12 +400,76 @@ __global__ void kernUpdateVelNeighborSearchScattered( 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 = (blockIdx.x * blockDim.x) + threadIdx.x; + if (index >= N) { + return; + } // - Identify the grid cell that this particle is in // - Identify which cells may contain neighbors. This isn't always 8. + glm::vec3 thisPos = pos[index], thisVel = vel1[index]; + float r = imax(imax(rule1Distance, rule2Distance), rule3Distance); + glm::ivec3 gridIndexStart3d = glm::floor((thisPos - r - gridMin) * inverseCellWidth); + glm::ivec3 gridIndexEnd3d = glm::floor((thisPos + r - gridMin) * inverseCellWidth); // - 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. + int numNeighbors1 = 0, numNeighbors3 = 0; + glm::vec3 pc{ 0.0f }, c{ 0.0f }, pv{ 0.0f }; + for (int x = gridIndexStart3d.x; x <= gridIndexEnd3d.x; x++) { + for (int y = gridIndexStart3d.y; y <= gridIndexEnd3d.y; y++) { + for (int z = gridIndexStart3d.z; z <= gridIndexEnd3d.z; z++) { + int gridIndex1d = gridIndex3Dto1D(x, y, z, gridResolution); + int startIndex = gridCellStartIndices[gridIndex1d], endIndex = gridCellEndIndices[gridIndex1d]; + if (startIndex == -1 || endIndex == -1) { + continue; + } + for (int i = startIndex; i <= endIndex; i++) { + int boidIndex = particleArrayIndices[i]; + if (boidIndex != index) { + glm::vec3 otherPos = pos[boidIndex], otherVel = vel1[boidIndex]; + float distance = glm::distance(otherPos, thisPos); + // Rule 1: boids fly towards their local perceived center of mass, which excludes themselves + if (distance < rule1Distance) { + pc += otherPos; + numNeighbors1++; + } + // Rule 2: boids try to stay a distance d away from each other + if (distance < rule2Distance) c -= (otherPos - thisPos); + // Rule 3: boids try to match the speed of surrounding boids + if (distance < rule3Distance) { + pv += otherVel; + numNeighbors3++; + } + } + } + } + } + } + glm::vec3 newVel{ thisVel }; + if (numNeighbors1 != 0) { + pc /= numNeighbors1; + newVel += (pc - thisPos) * rule1Scale; + } + newVel += c * rule2Scale; + if (numNeighbors3 != 0) { + pv /= numNeighbors3; + newVel += pv * rule3Scale; + } // - Clamp the speed change before putting the new speed in vel2 + if (glm::length(newVel) > maxSpeed) { + newVel = glm::normalize(newVel) * maxSpeed; + } + vel2[index] = newVel; +} + +__global__ void kernRearrangePosVel(int N, int *particleArrayIndices, glm::vec3 *pos, glm::vec3 *vel, glm::vec3 *coherentPos, glm::vec3 *coherentVel) { + int index = (blockIdx.x * blockDim.x) + threadIdx.x; + if (index >= N) { + return; + } + int arrIndex = particleArrayIndices[index]; + coherentPos[index] = pos[arrIndex]; + coherentVel[index] = vel[arrIndex]; } __global__ void kernUpdateVelNeighborSearchCoherent( @@ -369,14 +481,68 @@ __global__ void kernUpdateVelNeighborSearchCoherent( // except with one less level of indirection. // This should expect gridCellStartIndices and gridCellEndIndices to refer // directly to pos and vel1. + int index = (blockIdx.x * blockDim.x) + threadIdx.x; + if (index >= N) { + return; + } // - Identify the grid cell that this particle is in // - Identify which cells may contain neighbors. This isn't always 8. + glm::vec3 thisPos = pos[index], thisVel = vel1[index]; + float r = imax(imax(rule1Distance, rule2Distance), rule3Distance); + glm::ivec3 gridIndexStart3d = glm::floor((thisPos - r - gridMin) * inverseCellWidth); + glm::ivec3 gridIndexEnd3d = glm::floor((thisPos + r - gridMin) * inverseCellWidth); // - 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. + int numNeighbors1 = 0, numNeighbors3 = 0; + glm::vec3 pc{ 0.0f }, c{ 0.0f }, pv{ 0.0f }; + for (int z = gridIndexStart3d.z; z <= gridIndexEnd3d.z; z++) { + for (int y = gridIndexStart3d.y; y <= gridIndexEnd3d.y; y++) { + for (int x = gridIndexStart3d.x; x <= gridIndexEnd3d.x; x++) { + int gridIndex1d = gridIndex3Dto1D(x, y, z, gridResolution); + int startIndex = gridCellStartIndices[gridIndex1d], endIndex = gridCellEndIndices[gridIndex1d]; + if (startIndex == -1 || endIndex == -1) { + continue; + } + for (int boidIndex = startIndex; boidIndex <= endIndex; boidIndex++) { + if (boidIndex != index) { + // optimize pos and vel access using shared memory + glm::vec3 otherPos = pos[boidIndex], otherVel = vel1[boidIndex]; // SHARED MEMORY + float distance = glm::distance(otherPos, thisPos); + // Rule 1: boids fly towards their local perceived center of mass, which excludes themselves + if (distance < rule1Distance) { + pc += otherPos; + numNeighbors1++; + } + // Rule 2: boids try to stay a distance d away from each other + if (distance < rule2Distance) c -= (otherPos - thisPos); + // Rule 3: boids try to match the speed of surrounding boids + if (distance < rule3Distance) { + pv += otherVel; + numNeighbors3++; + } + } + } + } + } + } + glm::vec3 newVel{ thisVel }; + if (numNeighbors1 != 0) { + pc /= numNeighbors1; + newVel += (pc - thisPos) * rule1Scale; + } + newVel += c * rule2Scale; + if (numNeighbors3 != 0) { + pv /= numNeighbors3; + newVel += pv * rule3Scale; + } // - Clamp the speed change before putting the new speed in vel2 + if (glm::length(newVel) > maxSpeed) { + newVel = glm::normalize(newVel) * maxSpeed; + } + vel2[index] = newVel; } /** @@ -384,9 +550,9 @@ __global__ void kernUpdateVelNeighborSearchCoherent( */ void Boids::stepSimulationNaive(float dt) { // TODO-1.2 - use the kernels you wrote to step the simulation forward in time. - int numBlocks = (numObjects + blockSize - 1) / blockSize; - kernUpdateVelocityBruteForce<<>>(numObjects, dev_pos, dev_vel1, dev_vel2); - kernUpdatePos<<>>(numObjects, dt, dev_pos, dev_vel2); + dim3 fullBlocksPerGrid((numObjects + blockSize - 1) / blockSize); + kernUpdateVelocityBruteForce << > > (numObjects, dev_pos, dev_vel1, dev_vel2); + kernUpdatePos << > > (numObjects, dt, dev_pos, dev_vel2); // TODO-1.2 ping-pong the velocity buffers std::swap(dev_vel1, dev_vel2); } @@ -395,33 +561,55 @@ void Boids::stepSimulationScatteredGrid(float dt) { // TODO-2.1 // Uniform Grid Neighbor search using Thrust sort. // In Parallel: + dim3 fullBlocksPerGridForObjects((numObjects + blockSize - 1) / blockSize); + dim3 fullBlocksPerGridForGridCells((gridCellCount + blockSize - 1) / blockSize); + kernResetIntBuffer << > > (numObjects, dev_gridCellStartIndices, -1); + kernResetIntBuffer << > > (numObjects, dev_gridCellEndIndices, -1); // - label each particle with its array index as well as its grid index. // Use 2x width grids. + kernComputeIndices << > > (numObjects, gridSideCount, gridMinimum, gridInverseCellWidth, dev_pos, dev_particleArrayIndices, dev_particleGridIndices); // - Unstable key sort using Thrust. A stable sort isn't necessary, but you // are welcome to do a performance comparison. + 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 + std::swap(dev_vel1, dev_vel2); } 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: + dim3 fullBlocksPerGridForObjects((numObjects + blockSize - 1) / blockSize); + dim3 fullBlocksPerGridForGridCells((gridCellCount + blockSize - 1) / blockSize); + kernResetIntBuffer << > > (numObjects, dev_gridCellStartIndices, -1); + kernResetIntBuffer << > > (numObjects, dev_gridCellEndIndices, -1); // - Label each particle with its array index as well as its grid index. // Use 2x width grids + kernComputeIndices << > > (numObjects, gridSideCount, gridMinimum, gridInverseCellWidth, dev_pos, dev_particleArrayIndices, dev_particleGridIndices); // - Unstable key sort using Thrust. A stable sort isn't necessary, but you // are welcome to do a performance comparison. + 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 + kernRearrangePosVel << > > (numObjects, dev_particleArrayIndices, dev_pos, dev_vel1, dev_coherentPos, dev_coherentVel); // - Perform velocity updates using neighbor search + // CONSIDER WHAT ADDITIONAL BUFFERS YOU NEED + kernUpdateVelNeighborSearchCoherent << > > (numObjects, gridSideCount, gridMinimum, gridInverseCellWidth, gridCellWidth, dev_gridCellStartIndices, dev_gridCellEndIndices, dev_coherentPos, dev_coherentVel, dev_vel2); // - Update positions + kernUpdatePos << > > (numObjects, dt, dev_coherentPos, dev_vel2); // - Ping-pong buffers as needed. THIS MAY BE DIFFERENT FROM BEFORE. + std::swap(dev_vel1, dev_vel2); + std::swap(dev_pos, dev_coherentPos); } void Boids::endSimulation() { @@ -430,6 +618,10 @@ void Boids::endSimulation() { 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() { From f06cfde1942cb07050d81994d9a85b72af357827 Mon Sep 17 00:00:00 2001 From: Zhenzhong Tang Date: Sun, 10 Sep 2023 21:51:23 -0400 Subject: [PATCH 3/5] Code FInal Update --- src/kernel.cu | 70 ++++++++++++++++++++++++++++----------------------- src/main.cpp | 25 ++++++++++++++---- src/main.hpp | 2 +- 3 files changed, 60 insertions(+), 37 deletions(-) diff --git a/src/kernel.cu b/src/kernel.cu index 166f1c5..f3f7f1c 100644 --- a/src/kernel.cu +++ b/src/kernel.cu @@ -36,6 +36,9 @@ void checkCUDAError(const char *msg, int line = -1) { * Configuration * *****************/ +// Search 27 nearby cells instead of 8, uncomment to enable. +//#define SEARCH27 + /*! Block size used for CUDA kernel launch. */ #define blockSize 128 @@ -159,7 +162,11 @@ void Boids::initSimulation(int N) { checkCUDAErrorWithLine("kernGenerateRandomPosArray failed!"); // LOOK-2.1 computing grid params +#ifdef SEARCH27 + gridCellWidth = 1.0f * std::max(std::max(rule1Distance, rule2Distance), rule3Distance); +#else gridCellWidth = 2.0f * std::max(std::max(rule1Distance, rule2Distance), rule3Distance); +#endif int halfSideCount = (int)(scene_scale / gridCellWidth) + 1; gridSideCount = 2 * halfSideCount; @@ -425,21 +432,22 @@ __global__ void kernUpdateVelNeighborSearchScattered( } for (int i = startIndex; i <= endIndex; i++) { int boidIndex = particleArrayIndices[i]; - if (boidIndex != index) { - glm::vec3 otherPos = pos[boidIndex], otherVel = vel1[boidIndex]; - float distance = glm::distance(otherPos, thisPos); - // Rule 1: boids fly towards their local perceived center of mass, which excludes themselves - if (distance < rule1Distance) { - pc += otherPos; - numNeighbors1++; - } - // Rule 2: boids try to stay a distance d away from each other - if (distance < rule2Distance) c -= (otherPos - thisPos); - // Rule 3: boids try to match the speed of surrounding boids - if (distance < rule3Distance) { - pv += otherVel; - numNeighbors3++; - } + if (boidIndex == index) { + continue; + } + glm::vec3 otherPos = pos[boidIndex], otherVel = vel1[boidIndex]; + float distance = glm::distance(otherPos, thisPos); + // Rule 1: boids fly towards their local perceived center of mass, which excludes themselves + if (distance < rule1Distance) { + pc += otherPos; + numNeighbors1++; + } + // Rule 2: boids try to stay a distance d away from each other + if (distance < rule2Distance) c -= (otherPos - thisPos); + // Rule 3: boids try to match the speed of surrounding boids + if (distance < rule3Distance) { + pv += otherVel; + numNeighbors3++; } } } @@ -507,22 +515,22 @@ __global__ void kernUpdateVelNeighborSearchCoherent( continue; } for (int boidIndex = startIndex; boidIndex <= endIndex; boidIndex++) { - if (boidIndex != index) { - // optimize pos and vel access using shared memory - glm::vec3 otherPos = pos[boidIndex], otherVel = vel1[boidIndex]; // SHARED MEMORY - float distance = glm::distance(otherPos, thisPos); - // Rule 1: boids fly towards their local perceived center of mass, which excludes themselves - if (distance < rule1Distance) { - pc += otherPos; - numNeighbors1++; - } - // Rule 2: boids try to stay a distance d away from each other - if (distance < rule2Distance) c -= (otherPos - thisPos); - // Rule 3: boids try to match the speed of surrounding boids - if (distance < rule3Distance) { - pv += otherVel; - numNeighbors3++; - } + if (boidIndex == index) { + continue; + } + glm::vec3 otherPos = pos[boidIndex], otherVel = vel1[boidIndex]; + float distance = glm::distance(otherPos, thisPos); + // Rule 1: boids fly towards their local perceived center of mass, which excludes themselves + if (distance < rule1Distance) { + pc += otherPos; + numNeighbors1++; + } + // Rule 2: boids try to stay a distance d away from each other + if (distance < rule2Distance) c -= (otherPos - thisPos); + // Rule 3: boids try to match the speed of surrounding boids + if (distance < rule3Distance) { + pv += otherVel; + numNeighbors3++; } } } diff --git a/src/main.cpp b/src/main.cpp index b82c8c6..d18b477 100644 --- a/src/main.cpp +++ b/src/main.cpp @@ -183,7 +183,7 @@ void initShaders(GLuint * program) { //==================================== // Main loop //==================================== - void runCUDA() { + void runCUDA(cudaEvent_t &start, cudaEvent_t &stop, float &elapsedTime) { // Map OpenGL buffer object for writing from CUDA on a single GPU // No data is moved (Win & Linux). When mapped to CUDA, OpenGL should not // use this buffer @@ -196,6 +196,7 @@ void initShaders(GLuint * program) { cudaGLMapBufferObject((void**)&dptrVertVelocities, boidVBO_velocities); // execute the kernel + cudaEventRecord(start, 0); #if UNIFORM_GRID && COHERENT_GRID Boids::stepSimulationCoherentGrid(DT); #elif UNIFORM_GRID @@ -203,6 +204,9 @@ void initShaders(GLuint * program) { #else Boids::stepSimulationNaive(DT); #endif + cudaEventRecord(stop, 0); + cudaEventSynchronize(stop); + cudaEventElapsedTime(&elapsedTime, start, stop); #if VISUALIZE Boids::copyBoidsToVBO(dptrVertPositions, dptrVertVelocities); @@ -216,6 +220,10 @@ void initShaders(GLuint * program) { double fps = 0; double timebase = 0; int frame = 0; + cudaEvent_t start, stop; + float elapsedTime = 0; + cudaEventCreate(&start); + cudaEventCreate(&stop); Boids::unitTest(); // LOOK-1.2 We run some basic example code to make sure // your CUDA development setup is ready to go. @@ -232,13 +240,17 @@ void initShaders(GLuint * program) { frame = 0; } - runCUDA(); + runCUDA(start, stop, elapsedTime); std::ostringstream ss; ss << "["; ss.precision(1); ss << std::fixed << fps; - ss << " fps] " << deviceName; + ss << " fps] "; + ss.precision(3); + ss << "[" << elapsedTime << " ms] "; + ss << deviceName; + ss << " (" << N_FOR_VIS << " Bodies)"; glfwSetWindowTitle(window, ss.str().c_str()); glClear(GL_COLOR_BUFFER_BIT | GL_DEPTH_BUFFER_BIT); @@ -258,6 +270,9 @@ void initShaders(GLuint * program) { } glfwDestroyWindow(window); glfwTerminate(); + + cudaEventDestroy(start); + cudaEventDestroy(stop); } @@ -290,8 +305,8 @@ void initShaders(GLuint * program) { updateCamera(); } - lastX = xpos; - lastY = ypos; + lastX = xpos; + lastY = ypos; } void updateCamera() { diff --git a/src/main.hpp b/src/main.hpp index 88e9df7..dc21070 100644 --- a/src/main.hpp +++ b/src/main.hpp @@ -70,7 +70,7 @@ void keyCallback(GLFWwindow* window, int key, int scancode, int action, int mods void mouseButtonCallback(GLFWwindow* window, int button, int action, int mods); void mousePositionCallback(GLFWwindow* window, double xpos, double ypos); void updateCamera(); -void runCUDA(); +void runCUDA(cudaEvent_t &start, cudaEvent_t &stop, float &elapsedTime); //==================================== // Setup/init Stuff From 23e880e322ed0dcbfdde1cf5d4c301d2ff380db9 Mon Sep 17 00:00:00 2001 From: Zhenzhong Tang Date: Mon, 11 Sep 2023 00:27:11 -0400 Subject: [PATCH 4/5] Update README.md --- README.md | 87 ++++++++++++++++-- images/Coherent Boids in Mem.png | Bin 0 -> 85297 bytes ...with 5,000 Boids and Visualization OFF.svg | 1 + ... 8 Grids v.s. 27 Grids Search, Stacked.svg | 1 + ...tion OFF, 8 Grids v.s. 27 Grids Search.svg | 1 + images/FPS with Visualization OFF.svg | 1 + images/FPS with Visualization ON.svg | 1 + images/coherent-8-27.png | Bin 0 -> 338369 bytes images/demo.gif | Bin 0 -> 6648829 bytes images/scattered-8-27.png | Bin 0 -> 327981 bytes images/scattered-coherent.png | Bin 0 -> 328206 bytes 11 files changed, 86 insertions(+), 6 deletions(-) create mode 100644 images/Coherent Boids in Mem.png create mode 100644 images/FPS with 5,000 Boids and Visualization OFF.svg create mode 100644 images/FPS with Visualization OFF, 8 Grids v.s. 27 Grids Search, Stacked.svg create mode 100644 images/FPS with Visualization OFF, 8 Grids v.s. 27 Grids Search.svg create mode 100644 images/FPS with Visualization OFF.svg create mode 100644 images/FPS with Visualization ON.svg create mode 100644 images/coherent-8-27.png create mode 100644 images/demo.gif create mode 100644 images/scattered-8-27.png create mode 100644 images/scattered-coherent.png diff --git a/README.md b/README.md index d63a6a1..dd3bd08 100644 --- a/README.md +++ b/README.md @@ -1,11 +1,86 @@ **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) +* Zhenzhong Tang + * [LinkedIn](https://www.linkedin.com/in/zhenzhong-anthony-tang-82334a210), [Instagram](https://instagram.com/toytag12), [personal website](https://toytag.net/) +* Tested on: Windows 11 Pro 22H2, AMD EPYC 7V12 64-Core Processor (4 vCPU cores) @ 2.44GHz 28GiB, Tesla T4 16GiB (Azure) -### (TODO: Your README) +## Boids, A Flocking Simulation -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/demo.gif) + +This demo is a CUDA-based coherent uniform grid search implementation of the [Boids](https://en.wikipedia.org/wiki/Boids) flocking simulation algorithm. The algorithm, developed by Craig Reynolds in 1986, simulates the flocking behaviour of birds. The goal of this project is to implement the algorithm with CUDA in different ways and optimize performance. + + +## Naive Implementation + +A simple implementation of the algorithm is to iterate through each boid and calculate the updated velocity and position based on [three rules](http://www.vergenet.net/~conrad/boids/pseudocode.html). Even with CUDA parallelization, this method is slow because each boid needs to check the position of every other boid. There are $O(n^2)$ global memory access, causing the CUDA program to be heavily memory-bounded. + + +### Uniform Grid Search (Scattered Memory) + +To avoid checking every other boids in the simulation, we can use a uniform grid to divide the space into cells. Each boid is assigned to a cell based on its position. Then, we only need to check the boids in the same cell and its neighboring cells. + +![](images/Boids%20Ugrid%20neighbor%20search%20shown.png) + +The image shows a simplified version in 2d plane, with grid cell width equals to 2 times the maximum search radius. Each boids would only need to check at most 4 neighbor cells (or in 3d case, 8 neighbor cells). This significantly reduces the number of global memory access. + + +### Uniform Grid Search (Coherent Memory) + +We can store the sorted position and velocity of boids based on cell indexes, so that boids data are contiguous in memory from the perspective of grid cells. The specific implementation eliminates an overhead associated with fetching a pointer index from global memory to access the position and velocity of boids in global memory. Interestingly, one parallelizing sort is considerably faster than the cost of random fetches of global memory. Also, ***coalesced*** memory access benefits more from cache and compiler optimizations. + +![](images/Coherent%20Boids%20in%20Mem.png) + +## Performance Analysis + +We use average Frames Per Second (FPS) to compare the performance of different implementations. Each kernel function call has a block size of 128, which in most cases leads to better performance than other block sizes. + +### Number of Boids + +![](images/FPS%20with%20Visualization%20ON.svg) +![](images/FPS%20with%20Visualization%20OFF.svg) + +We see the performance of naive implementation is worse than grid searches. The coherent grid search implementation is the fastest, with a 3x speedup compared to the naive implementation with 5,000 boids. With more boids, we see more significant speedup. The coherent grid search is even 10x faster than the scattered grid search in 500,000 and 1,000,000 boids tests. + +### Block Size + +![](images/FPS%20with%205,000%20Boids%20and%20Visualization%20OFF.svg) + +Selecting an appropriate block size is crucial to effectively utilize the available resources on the GPU, ensuring that all Streaming Multiprocessors (SMs) are actively engaged, and there are enough warps to hide memory access latencies. But in our tests, we didn't see significant difference in performance with different block sizes. All there implementation tend to perform a bit worse when block size is too large, like 1024, or too small, like 16. + +### Fine-Grained Cells (8 v.s. 27 Neighbors) + +![](images/FPS%20with%20Visualization%20OFF,%208%20Grids%20v.s.%2027%20Grids%20Search.svg) + +We see even more improved results when we set the grid cell width to 1 times the maximum search radius, so that each boid would need to check at most 27 neighbor cells. With fine-grained search, the coherent grid search is more than 5x faster than the 8-cell coherent grid search in 500,000 and 1,000,000 boids tests. This is huge improvement. To put it more intuitively, see the stacked comparison. 27-cell coherent grid search in 500,000 and 1,000,000 tests is dominating the others. + +![](images/FPS%20with%20Visualization%20OFF,%208%20Grids%20v.s.%2027%20Grids%20Search,%20Stacked.svg) + +### Profile of Uniform Grid Search (Scattered Memory) and Uniform Grid Search (Coherent Memory) + +Current(blue) is the coherent grid search, and baseline(green) is the scattered grid search. +![](images/scattered-coherent.png) + +### Profile of 27-cell Coherent Grid Search and 8-cell Coherent Grid Search + +Current(blue) is the 27-cell coherent grid search, and baseline(green) is the 8-cell coherent grid search. +![](images/coherent-8-27.png) + +### QA + +#### For each implementation, how does changing the number of boids affect performance? Why do you think this is? + +With more boids, all three implementations perform worse. This is because with more boids, there are more things to sort, more memory access, more thread/warp/block management, and more computation. + +#### For each implementation, how does changing the block count and block size affect performance? Why do you think this is? + +Changing the block size has a relatively minor impact on the results, with only slight decreases in performance observed when block size is 16 (too small) or 1024 (too large). This limited effect can be attributed to the fact that the fundamental thread scheduling is managed by a "warp" of 32 threads. + +#### 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? + +The coherent grid search is faster than the scattered grid search, especially when the number of boids is huge. I didn't expect to see such big leap. I think this is because the coherent grid search has better memory access pattern, and the overhead of sorting is less than the overhead of global memory access. + +#### Did changing cell width and checking 27 vs 8 neighboring cells affect performance? Why or why not? + +Yes, using 27 neighbor cells improved the performance by quite a lot. On one hand there are more cells to search, but on the other hand, the search is more accurate, so that we can avoid checking boids that are not in distance from the current boid, which results in less global memory access. This is especially useful when the number of boids is large. All in all, our program is still **memory-bounded**. diff --git a/images/Coherent Boids in Mem.png b/images/Coherent Boids in Mem.png new file mode 100644 index 0000000000000000000000000000000000000000..8c9680f89d950bf51fabf4e1198db6faaabd1300 GIT binary patch literal 85297 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 R&~NbHVTGge(fjqT{U3vmr0)O# literal 0 HcmV?d00001 diff --git a/images/FPS with 5,000 Boids and Visualization OFF.svg b/images/FPS with 5,000 Boids and Visualization OFF.svg new file mode 100644 index 0000000..8edc3bf --- /dev/null +++ b/images/FPS with 5,000 Boids and Visualization OFF.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/images/FPS with Visualization OFF, 8 Grids v.s. 27 Grids Search, Stacked.svg b/images/FPS with Visualization OFF, 8 Grids v.s. 27 Grids Search, Stacked.svg new file mode 100644 index 0000000..46f8062 --- /dev/null +++ b/images/FPS with Visualization OFF, 8 Grids v.s. 27 Grids Search, Stacked.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/images/FPS with Visualization OFF, 8 Grids v.s. 27 Grids Search.svg b/images/FPS with Visualization OFF, 8 Grids v.s. 27 Grids Search.svg new file mode 100644 index 0000000..fa5562d --- /dev/null +++ b/images/FPS with Visualization OFF, 8 Grids v.s. 27 Grids Search.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/images/FPS with Visualization OFF.svg b/images/FPS with Visualization OFF.svg new file mode 100644 index 0000000..bc555a3 --- /dev/null +++ b/images/FPS with Visualization OFF.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/images/FPS with Visualization ON.svg b/images/FPS with Visualization ON.svg new file mode 100644 index 0000000..2c05188 --- /dev/null +++ b/images/FPS with Visualization ON.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/images/coherent-8-27.png b/images/coherent-8-27.png new file mode 100644 index 0000000000000000000000000000000000000000..f6b977ddcbcc5237249a181ac1e07a45f6b66540 GIT binary patch literal 338369 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�uY%UZ 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

(Y5Cj^lc{Z|>h?aAdDI5UO}7=xH?Ew&|v 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