From 6b4fd71ea0c515f855276ab5769c76135e19c483 Mon Sep 17 00:00:00 2001 From: Alex Perry Date: Tue, 5 Sep 2017 13:16:05 -0400 Subject: [PATCH 01/13] first attempt at part 1. --- src/kernel.cu | 50 +++++++++++++++++++++++++++++++++++++++++++++----- 1 file changed, 45 insertions(+), 5 deletions(-) diff --git a/src/kernel.cu b/src/kernel.cu index aaf0fbf..8f23617 100644 --- a/src/kernel.cu +++ b/src/kernel.cu @@ -223,6 +223,14 @@ void Boids::copyBoidsToVBO(float *vbodptr_positions, float *vbodptr_velocities) * stepSimulation * ******************/ +__device__ glm::vec3 clamp(glm::vec3 vec, float max) { + if (glm::length(vec) > max) { + return glm::normalize(vec) * max; + } else { + return vec; + } +} + /** * LOOK-1.2 You can use this as a helper for kernUpdateVelocityBruteForce. * __device__ code can be called from a __global__ context @@ -233,18 +241,44 @@ __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); + glm::vec3 perceived_center; + glm::vec3 rule2_acc; + glm::vec3 perceived_velocity; + glm::vec3 current_pos = pos[iSelf]; + for (int i = 0; i < N; ++i) { + if (i == iSelf) continue; + glm::vec3 n_pos = pos[i]; + if (glm::distance(current_pos, n_pos) < rule1Distance) { + perceived_center += n_pos; + } + if (glm::distance(current_pos, n_pos) < rule2Distance) { + rule2_acc -= (current_pos - n_pos); + } + if (glm::distance(current_pos, n_pos) < rule3Distance) { + perceived_velocity += vel[i]; + } + } + perceived_center /= (N-1); + percieved_velocity /= (N-1); + return rule1Scale * (perceived_center - current_pos) + + rule2Scale * rule2_acc + + rule3Scale * perceived_velocity; } /** * TODO-1.2 implement basic flocking -* For each of the `N` bodies, update its position based on its current velocity. +* For each of the `N` bodies, update its velocity based on the other boids. */ __global__ void kernUpdateVelocityBruteForce(int N, glm::vec3 *pos, glm::vec3 *vel1, glm::vec3 *vel2) { - // Compute a new velocity based on pos and vel1 - // Clamp the speed - // Record the new velocity into vel2. Question: why NOT vel1? + for (int i = 0; i < N; ++i) { + // Compute a new velocity based on pos and vel1 + glm::vec3 delta_v = computeVelocityChange(N, i, pos, vel1); + // Clamp the speed + glm::vec3 new_vel = clamp(delta_v + vel1[i], maxSpeed); + // Record the new velocity into vel2. Question: why NOT vel1? + vel2[i] = new_vel; + } } /** @@ -347,8 +381,14 @@ __global__ void kernUpdateVelNeighborSearchCoherent( * Step the entire N-body simulation by `dt` seconds. */ void Boids::stepSimulationNaive(float dt) { + dim3 fullBlocksPerGrid((N + blockSize - 1) / blockSize); // 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 *dev_vel_temp = dev_vel1; + dev_vel1 = dev_vel2; + dev_vel2 = dev_vel_temp; } void Boids::stepSimulationScatteredGrid(float dt) { From 8c6aa3e1454d1d3513ab2274ccccd65941fcbe53 Mon Sep 17 00:00:00 2001 From: Alexander Perry Date: Tue, 5 Sep 2017 10:24:12 -0700 Subject: [PATCH 02/13] fix a compile error. --- src/kernel.cu | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/src/kernel.cu b/src/kernel.cu index 8f23617..66ed54a 100644 --- a/src/kernel.cu +++ b/src/kernel.cu @@ -259,7 +259,7 @@ __device__ glm::vec3 computeVelocityChange(int N, int iSelf, const glm::vec3 *po } } perceived_center /= (N-1); - percieved_velocity /= (N-1); + perceived_velocity /= (N-1); return rule1Scale * (perceived_center - current_pos) + rule2Scale * rule2_acc + rule3Scale * perceived_velocity; @@ -381,7 +381,7 @@ __global__ void kernUpdateVelNeighborSearchCoherent( * Step the entire N-body simulation by `dt` seconds. */ void Boids::stepSimulationNaive(float dt) { - dim3 fullBlocksPerGrid((N + blockSize - 1) / blockSize); + dim3 fullBlocksPerGrid((numObjects + blockSize - 1) / blockSize); // 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); From 51c458b5b17381ac911da7ea9f45664a87b3d0dd Mon Sep 17 00:00:00 2001 From: ALEXANDER PERRY Date: Wed, 6 Sep 2017 14:31:05 -0400 Subject: [PATCH 03/13] make naive boids work. --- src/kernel.cu | 47 +++++++++++++++++++++++++++++++++++------------ src/main.cpp | 7 ++++--- 2 files changed, 39 insertions(+), 15 deletions(-) diff --git a/src/kernel.cu b/src/kernel.cu index 66ed54a..746016a 100644 --- a/src/kernel.cu +++ b/src/kernel.cu @@ -52,7 +52,7 @@ void checkCUDAError(const char *msg, int line = -1) { #define maxSpeed 1.0f /*! Size of the starting area in simulation space. */ -#define scene_scale 100.0f +#define scene_scale 40.0f /*********************************************** * Kernel state (pointers are device pointers) * @@ -241,28 +241,40 @@ __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 - glm::vec3 perceived_center; - glm::vec3 rule2_acc; - glm::vec3 perceived_velocity; + glm::vec3 perceived_center = glm::vec3(0.0f, 0.0f, 0.0f); + glm::vec3 rule2_acc = glm::vec3(0.0f, 0.0f, 0.0f); + glm::vec3 perceived_velocity = glm::vec3(0.0f, 0.0f, 0.0f); + int neighbor1_count = 0; + int neighbor2_count = 0; glm::vec3 current_pos = pos[iSelf]; for (int i = 0; i < N; ++i) { if (i == iSelf) continue; glm::vec3 n_pos = pos[i]; - if (glm::distance(current_pos, n_pos) < rule1Distance) { + float dist = glm::distance(current_pos, n_pos); + if (dist < rule1Distance) { perceived_center += n_pos; + ++neighbor1_count; } - if (glm::distance(current_pos, n_pos) < rule2Distance) { - rule2_acc -= (current_pos - n_pos); + if (dist < rule2Distance) { + rule2_acc -= (n_pos - current_pos); } - if (glm::distance(current_pos, n_pos) < rule3Distance) { + if (dist < rule3Distance) { perceived_velocity += vel[i]; + ++neighbor2_count; } } - perceived_center /= (N-1); - perceived_velocity /= (N-1); + if (neighbor1_count == 0) { + perceived_center = current_pos; + } + else { + perceived_center /= neighbor1_count; + } + if (neighbor2_count != 0) { + perceived_velocity /= neighbor2_count; + } return rule1Scale * (perceived_center - current_pos) + rule2Scale * rule2_acc + - rule3Scale * perceived_velocity; + rule3Scale * perceived_velocity; } /** @@ -320,7 +332,7 @@ __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. + // - Label each boid with the index of its gri000d cell. // - Set up a parallel array of integer indices as pointers to the actual // boid data in pos and vel1/vel2 } @@ -389,6 +401,17 @@ void Boids::stepSimulationNaive(float dt) { glm::vec3 *dev_vel_temp = dev_vel1; dev_vel1 = dev_vel2; dev_vel2 = dev_vel_temp; + // glm::vec3 values[500]; + // cudaMemcpy(values, dev_pos, sizeof(glm::vec3) * 500, cudaMemcpyDeviceToHost); + // std::cout << "step pos values:\n"; + // for (int i = 0; i < 5; ++i) { + // std::cout << values[i].x << ", " << values[i].y << ", " << values[i].z << "\n"; + // } + // cudaMemcpy(values, dev_vel2, sizeof(glm::vec3) * 500, cudaMemcpyDeviceToHost); + // std::cout << "step vel values:\n"; + // for (int i = 0; i < 5; ++i) { + // std::cout << values[i].x << ", " << values[i].y << ", " << values[i].z << "\n"; + // } } void Boids::stepSimulationScatteredGrid(float dt) { diff --git a/src/main.cpp b/src/main.cpp index a29471d..486166d 100644 --- a/src/main.cpp +++ b/src/main.cpp @@ -18,7 +18,7 @@ #define COHERENT_GRID 0 // LOOK-1.2 - change this to adjust particle count in the simulation -const int N_FOR_VIS = 5000; +const int N_FOR_VIS = 500; const float DT = 0.2f; /** @@ -84,6 +84,7 @@ bool init(int argc, char **argv) { glfwWindowHint(GLFW_OPENGL_PROFILE, GLFW_OPENGL_CORE_PROFILE); window = glfwCreateWindow(width, height, deviceName.c_str(), NULL, NULL); + std::printf("unmap vbo pos\n"); if (!window) { glfwTerminate(); return false; @@ -220,8 +221,8 @@ void initShaders(GLuint * program) { double timebase = 0; int frame = 0; - Boids::unitTest(); // LOOK-1.2 We run some basic example code to make sure - // your CUDA development setup is ready to go. + //Boids::unitTest(); // LOOK-1.2 We run some basic example code to make sure + // // your CUDA development setup is ready to go. while (!glfwWindowShouldClose(window)) { glfwPollEvents(); From a705034e6fbed7e34a8ee139731ad2a1ca61948b Mon Sep 17 00:00:00 2001 From: Alex Perry Date: Fri, 8 Sep 2017 11:06:01 -0400 Subject: [PATCH 04/13] work on part 2. --- src/kernel.cu | 50 ++++++++++++++++++++++++++++++++++++++++++++------ 1 file changed, 44 insertions(+), 6 deletions(-) diff --git a/src/kernel.cu b/src/kernel.cu index 746016a..129939d 100644 --- a/src/kernel.cu +++ b/src/kernel.cu @@ -169,6 +169,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(glm::vec3 *)); + checkCUDAErrorWithLine("cudaMalloc dev_particleArrayIndices failed!"); + + cudaMalloc((void**)&dev_particleGridIndices, N * sizeof(glm::vec3 *)); + 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); + cudaThreadSynchronize(); } @@ -329,12 +344,19 @@ __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 gri000d 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 + // - 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 i = (blockIdx.x * blockDim.x) + threadIdx.x; + if (i < N) { + indices[i] = i; + glm::vec3 abs_pos = (pos[i] - gridMin)*inverseCellWidth; + int index = gridIndex3Dto1D((int)abs_pos.x, (int)abs_pos.y, (int)abs_pos.z, gridResolution); + gridIndices[i] = index; + } } // LOOK-2.1 Consider how this could be useful for indicating that a cell @@ -352,6 +374,22 @@ __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 < N) { + int gridIndex = particleGridIndices[index]; + if (index == 0) { + gridCellStartIndices[gridIndex] = 0; + } + if (index == N-1) { + gridCellEndIndices[gridIndex] = index; + } else { + int nextGridIndex = particleGridIndices[index+1]; + if (gridIndex != nextGridIndex) { + gridCellEndIndices[gridIndex] = index; + gridCellStartIndices[nextGridIndex] = index+1; + } + } + } } __global__ void kernUpdateVelNeighborSearchScattered( From 850e10826983c051482e915bd29ded4f825783fd Mon Sep 17 00:00:00 2001 From: Alexander Perry Date: Fri, 8 Sep 2017 08:31:47 -0700 Subject: [PATCH 05/13] Fix overcalculating bug in naive simulation. --- src/kernel.cu | 30 +++++++++--------------------- src/main.cpp | 2 +- 2 files changed, 10 insertions(+), 22 deletions(-) diff --git a/src/kernel.cu b/src/kernel.cu index 129939d..de32c8a 100644 --- a/src/kernel.cu +++ b/src/kernel.cu @@ -52,7 +52,7 @@ void checkCUDAError(const char *msg, int line = -1) { #define maxSpeed 1.0f /*! Size of the starting area in simulation space. */ -#define scene_scale 40.0f +#define scene_scale 100.0f /*********************************************** * Kernel state (pointers are device pointers) * @@ -298,14 +298,13 @@ __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) { - for (int i = 0; i < N; ++i) { - // Compute a new velocity based on pos and vel1 - glm::vec3 delta_v = computeVelocityChange(N, i, pos, vel1); - // Clamp the speed - glm::vec3 new_vel = clamp(delta_v + vel1[i], maxSpeed); - // Record the new velocity into vel2. Question: why NOT vel1? - vel2[i] = new_vel; - } + int index = threadIdx.x + (blockIdx.x * blockDim.x); + // Compute a new velocity based on pos and vel1 + glm::vec3 delta_v = computeVelocityChange(N, index, pos, vel1); + // Clamp the speed + glm::vec3 new_vel = clamp(delta_v + vel1[index], maxSpeed); + // Record the new velocity into vel2. Question: why NOT vel1? + vel2[index] = new_vel; } /** @@ -386,7 +385,7 @@ __global__ void kernIdentifyCellStartEnd(int N, int *particleGridIndices, int nextGridIndex = particleGridIndices[index+1]; if (gridIndex != nextGridIndex) { gridCellEndIndices[gridIndex] = index; - gridCellStartIndices[nextGridIndex] = index+1; + gridCellStartIndices[nextGridIndex] = index+1; } } } @@ -439,17 +438,6 @@ void Boids::stepSimulationNaive(float dt) { glm::vec3 *dev_vel_temp = dev_vel1; dev_vel1 = dev_vel2; dev_vel2 = dev_vel_temp; - // glm::vec3 values[500]; - // cudaMemcpy(values, dev_pos, sizeof(glm::vec3) * 500, cudaMemcpyDeviceToHost); - // std::cout << "step pos values:\n"; - // for (int i = 0; i < 5; ++i) { - // std::cout << values[i].x << ", " << values[i].y << ", " << values[i].z << "\n"; - // } - // cudaMemcpy(values, dev_vel2, sizeof(glm::vec3) * 500, cudaMemcpyDeviceToHost); - // std::cout << "step vel values:\n"; - // for (int i = 0; i < 5; ++i) { - // std::cout << values[i].x << ", " << values[i].y << ", " << values[i].z << "\n"; - // } } void Boids::stepSimulationScatteredGrid(float dt) { diff --git a/src/main.cpp b/src/main.cpp index 486166d..82991bd 100644 --- a/src/main.cpp +++ b/src/main.cpp @@ -18,7 +18,7 @@ #define COHERENT_GRID 0 // LOOK-1.2 - change this to adjust particle count in the simulation -const int N_FOR_VIS = 500; +const int N_FOR_VIS = 5000; const float DT = 0.2f; /** From e8939cea0e15406f72ae48289cac8ac265a83cd6 Mon Sep 17 00:00:00 2001 From: Alex Perry Date: Fri, 8 Sep 2017 15:42:30 -0400 Subject: [PATCH 06/13] finish uniform attempt 1. --- src/kernel.cu | 116 +++++++++++++++++++++++++++++++++++++++++++++++--- 1 file changed, 109 insertions(+), 7 deletions(-) diff --git a/src/kernel.cu b/src/kernel.cu index de32c8a..c61ff5a 100644 --- a/src/kernel.cu +++ b/src/kernel.cu @@ -260,7 +260,7 @@ __device__ glm::vec3 computeVelocityChange(int N, int iSelf, const glm::vec3 *po glm::vec3 rule2_acc = glm::vec3(0.0f, 0.0f, 0.0f); glm::vec3 perceived_velocity = glm::vec3(0.0f, 0.0f, 0.0f); int neighbor1_count = 0; - int neighbor2_count = 0; + int neighbor3_count = 0; glm::vec3 current_pos = pos[iSelf]; for (int i = 0; i < N; ++i) { if (i == iSelf) continue; @@ -275,21 +275,20 @@ __device__ glm::vec3 computeVelocityChange(int N, int iSelf, const glm::vec3 *po } if (dist < rule3Distance) { perceived_velocity += vel[i]; - ++neighbor2_count; + ++neighbor3_count; } } if (neighbor1_count == 0) { perceived_center = current_pos; - } - else { + } else { perceived_center /= neighbor1_count; } - if (neighbor2_count != 0) { - perceived_velocity /= neighbor2_count; + if (neighbor3_count != 0) { + perceived_velocity /= neighbor3_count; } return rule1Scale * (perceived_center - current_pos) + rule2Scale * rule2_acc + - rule3Scale * perceived_velocity; + rule3Scale * perceived_velocity; } /** @@ -391,6 +390,59 @@ __global__ void kernIdentifyCellStartEnd(int N, int *particleGridIndices, } } +__device__ glm::vec3 computeVelocityChangePerCell( + int N, int iSelf, const glm::vec3 *pos, const glm::vec3 *vel, + int *particleArrayIndices, int *gridCellStartIndices, + int *gridCellEndIndices, int cellCount, int *cellIndices) { + glm::vec3 perceived_center = glm::vec3(0.0f, 0.0f, 0.0f); + glm::vec3 rule2_acc = glm::vec3(0.0f, 0.0f, 0.0f); + glm::vec3 perceived_velocity = glm::vec3(0.0f, 0.0f, 0.0f); + int neighbor1_count = 0; + int neighbor3_count = 0; + glm::vec3 current_pos = pos[iSelf]; + for (int cellIndex = 0, cellIndex < cellCount; ++cellIndex) { + int startIndex = gridCellStartIndices[cellIndices[cellIndex]]; + int endIndex = gridCellEndIndices[cellIndices[cellIndex]]; + if (startIndex == -1) continue; + for (int arrayIndex = startIndex; arrayIndex < endIndex; ++arrayIndex) { + int i = particleArrayIndices[arrayIndex]; + if (i == iSelf) continue; + glm::vec3 n_pos = pos[i]; + float dist = glm::distance(current_pos, n_pos); + if (dist < rule1Distance) { + perceived_center += n_pos; + ++neighbor1_count; + } + if (dist < rule2Distance) { + rule2_acc -= (n_pos - current_pos); + } + if (dist < rule3Distance) { + perceived_velocity += vel[i]; + ++neighbor3_count; + } + } + } + if (neighbor1_count == 0) { + perceived_center = current_pos; + } else { + perceived_center /= neighbor1_count; + } + if (neighbor3_count != 0) { + perceived_velocity /= neighbor3_count; + } + return rule1Scale * (perceived_center - current_pos) + + rule2Scale * rule2_acc + + rule3Scale * perceived_velocity; +} + +__device__ bool shouldAddCell(glm::vec3 absPos, glm::ivec3 option, int gridResolution) { + if (option.x < 0 || option.y < 0 || option.z < 0 || option.x >= gridResolution || option.y >= gridResolution || option.z >= gridResolution) { + return false; + } + glm::vec3 diff = option + glm::vec3(0.5f, 0.5f, 0.5f) - abspos; + return diff.x < 1.0f && diff.y < 1.0f && diff.z < 1.0f; +} + __global__ void kernUpdateVelNeighborSearchScattered( int N, int gridResolution, glm::vec3 gridMin, float inverseCellWidth, float cellWidth, @@ -405,6 +457,38 @@ __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 = threadIdx.x + (blockIdx.x * blockDim.x); + if (index < N) { + glm::vec3 absPos = (pos[index] - gridMin)*inverseCellWidth; + glm::ivec3 iAbsPos((int)absPos.x, (int)absPos.y, (int)absPos.z); + int gridIndex = gridIndex3Dto1D(iAbsPos.x, iAbsPos.y, iAbsPos.z, gridResolution); + int cellIndices[8]; + cellIndices[0] = gridIndex; + int cellIndex = 1; + + bool shouldAddBelowX = absPos.x - iAbsPos.x < 0.5 && iAbsPos.x > 0; + bool shouldAddAboveX = absPos.x - iAbsPos.x >= 0.5 && iAbsPos.x < gridResolution; + bool shouldAddBelowY = absPos.y - iAbsPos.y < 0.5 && iAbsPos.y > 0; + bool shouldAddAboveY = absPos.y - iAbsPos.y >= 0.5 && iAbsPos.y < gridResolution; + bool shouldAddBelowZ = absPos.z - iAbsPos.z < 0.5 && iAbsPos.z > 0; + bool shouldAddAboveZ = absPos.z - iAbsPos.z >= 0.5 && iAbsPos.z < gridResolution; + for (int xIndex = -1; xIndex <= 1; ++xIndex) { + for (int yIndex = -1; yIndex <= 1; ++yIndex) { + for (int zIndex = -1; zIndex <= 1; ++zIndex) { + glm::ivec3 option = iAbsPos + glm::ivec3(xIndex, yIndex, zIndex); + if (shouldAddCell(absPos, option, gridResolution)) { + cellIndices[cellIndex] = gridIndex3Dto1D(option.x, option.y, option.z, gridResolution); + ++cellIndex; + } + } + } + } + glm::vec3 delta_v = computVelocityChangePerCell(N, index, pos, vel1, particleArrayIndices, gridCellStartIndices, gridCellEndIndices, cellIndex, &cellIndices); + } + // Clamp the speed + glm::vec3 new_vel = clamp(delta_v + vel1[index], maxSpeed); + // Record the new velocity into vel2. Question: why NOT vel1? + vel2[index] = new_vel; } __global__ void kernUpdateVelNeighborSearchCoherent( @@ -441,6 +525,8 @@ void Boids::stepSimulationNaive(float dt) { } void Boids::stepSimulationScatteredGrid(float dt) { + dim3 fullBlocksPerGrid((numObjects + blockSize - 1) / blockSize); + dim3 fullBlocksForCell((gridCellCount + blockSize - 1) / blockSize); // TODO-2.1 // Uniform Grid Neighbor search using Thrust sort. // In Parallel: @@ -453,6 +539,22 @@ void Boids::stepSimulationScatteredGrid(float dt) { // - Perform velocity updates using neighbor search // - Update positions // - Ping-pong buffers as needed + kernResetIntBuffer<<>>(gridCellCount, dev_gridCellStartIndices, -1); + kernResetIntBuffer<<>>(gridCellCount, dev_gridCellEndIndices, -1); + + kernComputeIndices<<>>(numObjects, gridSideCount, gridMinimum, gridInverseCellWidth, dev_pos, dev_particleArrayIndices, dev_particleGridIndices); + thrust::sort_by_key(dev_thrust_particleArrayIndices, dev_thrust_particleArrayIndices + numObjects, dev_thrust_particleGridIndices); + + kernIndentifyCellStartEnd<<>>(numObjects, dev_particleGridIndices, dev_gridCellStartIndices, dev_gridCellStartIndices); + + kernUnpdateVelNeighborSearchScattered<<>>(numObjects, gridMinimum, gridInverseCellWidth, gridCellWidth, dev_gridCellStartIndices, dev_gridCellEndIndices, dev_particleArrayIndices, dev_pos, dev_vel1, dev_vel2); + + + kernUpdatePos<<>>(numObjects, dt, dev_pos, dev_vel2); + + glm::vec3 *dev_vel_temp = dev_vel1; + dev_vel1 = dev_vel2; + dev_vel2 = dev_vel_temp; } void Boids::stepSimulationCoherentGrid(float dt) { From e2c039e105c6792d3358459a16213138a5ef5349 Mon Sep 17 00:00:00 2001 From: Alexander Perry Date: Fri, 8 Sep 2017 15:20:56 -0700 Subject: [PATCH 07/13] working uniform grid. 120 fps. --- src/kernel.cu | 92 ++++++++++++++++++++++++++++++--------------------- src/main.cpp | 2 +- 2 files changed, 55 insertions(+), 39 deletions(-) diff --git a/src/kernel.cu b/src/kernel.cu index c61ff5a..693efc7 100644 --- a/src/kernel.cu +++ b/src/kernel.cu @@ -298,12 +298,14 @@ __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); - // Compute a new velocity based on pos and vel1 - glm::vec3 delta_v = computeVelocityChange(N, index, pos, vel1); - // Clamp the speed - glm::vec3 new_vel = clamp(delta_v + vel1[index], maxSpeed); - // Record the new velocity into vel2. Question: why NOT vel1? - vel2[index] = new_vel; + if (index < N) { + // Compute a new velocity based on pos and vel1 + glm::vec3 delta_v = computeVelocityChange(N, index, pos, vel1); + // Clamp the speed + glm::vec3 new_vel = clamp(delta_v + vel1[index], maxSpeed); + // Record the new velocity into vel2. Question: why NOT vel1? + vel2[index] = new_vel; + } } /** @@ -384,7 +386,7 @@ __global__ void kernIdentifyCellStartEnd(int N, int *particleGridIndices, int nextGridIndex = particleGridIndices[index+1]; if (gridIndex != nextGridIndex) { gridCellEndIndices[gridIndex] = index; - gridCellStartIndices[nextGridIndex] = index+1; + gridCellStartIndices[nextGridIndex] = index+1; } } } @@ -400,7 +402,7 @@ __device__ glm::vec3 computeVelocityChangePerCell( int neighbor1_count = 0; int neighbor3_count = 0; glm::vec3 current_pos = pos[iSelf]; - for (int cellIndex = 0, cellIndex < cellCount; ++cellIndex) { + for (int cellIndex = 0; cellIndex < cellCount; ++cellIndex) { int startIndex = gridCellStartIndices[cellIndices[cellIndex]]; int endIndex = gridCellEndIndices[cellIndices[cellIndex]]; if (startIndex == -1) continue; @@ -411,14 +413,14 @@ __device__ glm::vec3 computeVelocityChangePerCell( float dist = glm::distance(current_pos, n_pos); if (dist < rule1Distance) { perceived_center += n_pos; - ++neighbor1_count; + ++neighbor1_count; } if (dist < rule2Distance) { rule2_acc -= (n_pos - current_pos); } if (dist < rule3Distance) { perceived_velocity += vel[i]; - ++neighbor3_count; + ++neighbor3_count; } } } @@ -439,10 +441,11 @@ __device__ bool shouldAddCell(glm::vec3 absPos, glm::ivec3 option, int gridResol if (option.x < 0 || option.y < 0 || option.z < 0 || option.x >= gridResolution || option.y >= gridResolution || option.z >= gridResolution) { return false; } - glm::vec3 diff = option + glm::vec3(0.5f, 0.5f, 0.5f) - abspos; - return diff.x < 1.0f && diff.y < 1.0f && diff.z < 1.0f; + glm::vec3 diff = glm::abs(glm::vec3(option) + glm::vec3(0.5f, 0.5f, 0.5f) - absPos); + return diff.x <= 1.0f && diff.y <= 1.0f && diff.z <= 1.0f; } + __global__ void kernUpdateVelNeighborSearchScattered( int N, int gridResolution, glm::vec3 gridMin, float inverseCellWidth, float cellWidth, @@ -463,32 +466,28 @@ __global__ void kernUpdateVelNeighborSearchScattered( glm::ivec3 iAbsPos((int)absPos.x, (int)absPos.y, (int)absPos.z); int gridIndex = gridIndex3Dto1D(iAbsPos.x, iAbsPos.y, iAbsPos.z, gridResolution); int cellIndices[8]; - cellIndices[0] = gridIndex; - int cellIndex = 1; - - bool shouldAddBelowX = absPos.x - iAbsPos.x < 0.5 && iAbsPos.x > 0; - bool shouldAddAboveX = absPos.x - iAbsPos.x >= 0.5 && iAbsPos.x < gridResolution; - bool shouldAddBelowY = absPos.y - iAbsPos.y < 0.5 && iAbsPos.y > 0; - bool shouldAddAboveY = absPos.y - iAbsPos.y >= 0.5 && iAbsPos.y < gridResolution; - bool shouldAddBelowZ = absPos.z - iAbsPos.z < 0.5 && iAbsPos.z > 0; - bool shouldAddAboveZ = absPos.z - iAbsPos.z >= 0.5 && iAbsPos.z < gridResolution; + //cellIndices[0] = gridIndex; + int cellIndex = 0; + for (int xIndex = -1; xIndex <= 1; ++xIndex) { for (int yIndex = -1; yIndex <= 1; ++yIndex) { for (int zIndex = -1; zIndex <= 1; ++zIndex) { - glm::ivec3 option = iAbsPos + glm::ivec3(xIndex, yIndex, zIndex); - if (shouldAddCell(absPos, option, gridResolution)) { - cellIndices[cellIndex] = gridIndex3Dto1D(option.x, option.y, option.z, gridResolution); - ++cellIndex; - } + glm::ivec3 option = iAbsPos + glm::ivec3(xIndex, yIndex, zIndex); + if (shouldAddCell(absPos, option, gridResolution)) { + cellIndices[cellIndex] = gridIndex3Dto1D(option.x, option.y, option.z, gridResolution); + ++cellIndex; + } } } } - glm::vec3 delta_v = computVelocityChangePerCell(N, index, pos, vel1, particleArrayIndices, gridCellStartIndices, gridCellEndIndices, cellIndex, &cellIndices); + glm::vec3 delta_v = computeVelocityChangePerCell( + N, index, pos, vel1, particleArrayIndices, gridCellStartIndices, + gridCellEndIndices, cellIndex, cellIndices); + // Clamp the speed + glm::vec3 new_vel = clamp(delta_v + vel1[index], maxSpeed); + // Record the new velocity into vel2. Question: why NOT vel1? + vel2[index] = new_vel; } - // Clamp the speed - glm::vec3 new_vel = clamp(delta_v + vel1[index], maxSpeed); - // Record the new velocity into vel2. Question: why NOT vel1? - vel2[index] = new_vel; } __global__ void kernUpdateVelNeighborSearchCoherent( @@ -539,15 +538,32 @@ void Boids::stepSimulationScatteredGrid(float dt) { // - Perform velocity updates using neighbor search // - Update positions // - Ping-pong buffers as needed - kernResetIntBuffer<<>>(gridCellCount, dev_gridCellStartIndices, -1); - kernResetIntBuffer<<>>(gridCellCount, dev_gridCellEndIndices, -1); + kernResetIntBuffer<<>>(gridCellCount, dev_gridCellStartIndices, -1); + kernResetIntBuffer<<>>(gridCellCount, dev_gridCellEndIndices, -1); kernComputeIndices<<>>(numObjects, gridSideCount, gridMinimum, gridInverseCellWidth, dev_pos, dev_particleArrayIndices, dev_particleGridIndices); - thrust::sort_by_key(dev_thrust_particleArrayIndices, dev_thrust_particleArrayIndices + numObjects, dev_thrust_particleGridIndices); - - kernIndentifyCellStartEnd<<>>(numObjects, dev_particleGridIndices, dev_gridCellStartIndices, dev_gridCellStartIndices); - - kernUnpdateVelNeighborSearchScattered<<>>(numObjects, gridMinimum, gridInverseCellWidth, gridCellWidth, dev_gridCellStartIndices, dev_gridCellEndIndices, dev_particleArrayIndices, dev_pos, dev_vel1, dev_vel2); + thrust::sort_by_key(dev_thrust_particleGridIndices, dev_thrust_particleGridIndices + numObjects, dev_thrust_particleArrayIndices); + +// int keys[5000]; +// int values[5000]; +// cudaMemcpy(keys, dev_particleGridIndices, sizeof(int) * 5000, cudaMemcpyDeviceToHost); +// cudaMemcpy(values, dev_particleArrayIndices, sizeof(int) * 5000, cudaMemcpyDeviceToHost); +// for (int i = 0; i < 5000; ++i) { +// std::cout << "grid id: " << keys[i]; +// std::cout << " array: " << values[i] << "\n"; +// } + + kernIdentifyCellStartEnd<<>>(numObjects, dev_particleGridIndices, dev_gridCellStartIndices, dev_gridCellEndIndices); +// int start[10648]; +// int end[10648]; +// cudaMemcpy(start, dev_gridCellStartIndices, sizeof(int) * 10648, cudaMemcpyDeviceToHost); +// cudaMemcpy(end, dev_gridCellEndIndices, sizeof(int) * 10648, cudaMemcpyDeviceToHost); +// for (int i = 0; i < 10648; ++i) { +// std::cout << "start: " << start[i]; +// std::cout << " end: " << end[i] << "\n"; +// } + + kernUpdateVelNeighborSearchScattered<<>>(numObjects, gridSideCount, gridMinimum, gridInverseCellWidth, gridCellWidth, dev_gridCellStartIndices, dev_gridCellEndIndices, dev_particleArrayIndices, dev_pos, dev_vel1, dev_vel2); kernUpdatePos<<>>(numObjects, dt, dev_pos, dev_vel2); diff --git a/src/main.cpp b/src/main.cpp index 82991bd..6cfe520 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 82e2726484599e58e284e5f71b44556eab95dc75 Mon Sep 17 00:00:00 2001 From: Alex Perry Date: Fri, 8 Sep 2017 22:48:56 -0400 Subject: [PATCH 08/13] Work on coherent swarming. --- src/kernel.cu | 109 +++++++++++++++++++++++++++++++++++++++++++++++--- 1 file changed, 104 insertions(+), 5 deletions(-) diff --git a/src/kernel.cu b/src/kernel.cu index 693efc7..df518ba 100644 --- a/src/kernel.cu +++ b/src/kernel.cu @@ -85,6 +85,12 @@ 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_pos_temp; + +thrust::device_ptr dev_thrust_pos_orig; +thrust::device_ptr dev_thrust_vel_orig; +thrust::device_ptr dev_thrust_pos_rear; +thrust::device_ptr dev_thrust_vel_rear; // LOOK-2.1 - Grid parameters based on simulation parameters. // These are automatically computed for you in Boids::initSimulation @@ -184,6 +190,14 @@ void Boids::initSimulation(int N) { dev_thrust_particleArrayIndices = thrust::device_ptr(dev_particleArrayIndices); dev_thrust_particleGridIndices = thrust::device_ptr(dev_particleGridIndices); + cudaMalloc((void**)&dev_pos_temp, N * sizeof(glm::vec3 *)); + checkCudeErrorWithLine("cudaMalloc dev_pos_temp faile!"); + + dev_thrust_pos_orig = thrust::device_ptr(dev_pos); + dev_thrust_pos_rear = thrust::device_ptr(dev_pos_temp); + dev_thrust_vel_orig = thrust::device_ptr(dev_vel1); + dev_thrust_vel_rear = thrust::device_ptr(dev_vel2); + cudaThreadSynchronize(); } @@ -466,7 +480,6 @@ __global__ void kernUpdateVelNeighborSearchScattered( glm::ivec3 iAbsPos((int)absPos.x, (int)absPos.y, (int)absPos.z); int gridIndex = gridIndex3Dto1D(iAbsPos.x, iAbsPos.y, iAbsPos.z, gridResolution); int cellIndices[8]; - //cellIndices[0] = gridIndex; int cellIndex = 0; for (int xIndex = -1; xIndex <= 1; ++xIndex) { @@ -490,6 +503,50 @@ __global__ void kernUpdateVelNeighborSearchScattered( } } +__device__ glm::vec3 computeVelocityChangePerCellCoherent( + int N, int iSelf, const glm::vec3 *pos, const glm::vec3 *vel, + int *particleArrayIndices, int *gridCellStartIndices, + int *gridCellEndIndices, int cellCount, int *cellIndices) { + glm::vec3 perceived_center = glm::vec3(0.0f, 0.0f, 0.0f); + glm::vec3 rule2_acc = glm::vec3(0.0f, 0.0f, 0.0f); + glm::vec3 perceived_velocity = glm::vec3(0.0f, 0.0f, 0.0f); + int neighbor1_count = 0; + int neighbor3_count = 0; + glm::vec3 current_pos = pos[iSelf]; + for (int cellIndex = 0; cellIndex < cellCount; ++cellIndex) { + int startIndex = gridCellStartIndices[cellIndices[cellIndex]]; + int endIndex = gridCellEndIndices[cellIndices[cellIndex]]; + if (startIndex == -1) continue; + for (int i = startIndex; i < endIndex; ++i) { + if (i == iSelf) continue; + glm::vec3 n_pos = pos[i]; + float dist = glm::distance(current_pos, n_pos); + if (dist < rule1Distance) { + perceived_center += n_pos; + ++neighbor1_count; + } + if (dist < rule2Distance) { + rule2_acc -= (n_pos - current_pos); + } + if (dist < rule3Distance) { + perceived_velocity += vel[i]; + ++neighbor3_count; + } + } + } + if (neighbor1_count == 0) { + perceived_center = current_pos; + } else { + perceived_center /= neighbor1_count; + } + if (neighbor3_count != 0) { + perceived_velocity /= neighbor3_count; + } + return rule1Scale * (perceived_center - current_pos) + + rule2Scale * rule2_acc + + rule3Scale * perceived_velocity; +} + __global__ void kernUpdateVelNeighborSearchCoherent( int N, int gridResolution, glm::vec3 gridMin, float inverseCellWidth, float cellWidth, @@ -507,6 +564,33 @@ __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 = threadIdx.x + (blockIdx.x * blockDim.x); + if (index < N) { + glm::vec3 absPos = (pos[index] - gridMin)*inverseCellWidth; + glm::ivec3 iAbsPos((int)absPos.x, (int)absPos.y, (int)absPos.z); + int gridIndex = gridIndex3Dto1D(iAbsPos.x, iAbsPos.y, iAbsPos.z, gridResolution); + int cellIndices[8]; + int cellIndex = 0; + + for (int xIndex = -1; xIndex <= 1; ++xIndex) { + for (int yIndex = -1; yIndex <= 1; ++yIndex) { + for (int zIndex = -1; zIndex <= 1; ++zIndex) { + glm::ivec3 option = iAbsPos + glm::ivec3(xIndex, yIndex, zIndex); + if (shouldAddCell(absPos, option, gridResolution)) { + cellIndices[cellIndex] = gridIndex3Dto1D(option.x, option.y, option.z, gridResolution); + ++cellIndex; + } + } + } + } + glm::vec3 delta_v = computeVelocityChangePerCellCoherent( + N, index, pos, vel1, particleArrayIndices, gridCellStartIndices, + gridCellEndIndices, cellIndex, cellIndices); + // Clamp the speed + glm::vec3 new_vel = clamp(delta_v + vel1[index], maxSpeed); + // Record the new velocity into vel2. Question: why NOT vel1? + vel2[index] = new_vel; + } } /** @@ -518,9 +602,7 @@ void Boids::stepSimulationNaive(float dt) { 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 *dev_vel_temp = dev_vel1; dev_vel1 = dev_vel2; - dev_vel2 = dev_vel_temp; } void Boids::stepSimulationScatteredGrid(float dt) { @@ -568,9 +650,7 @@ void Boids::stepSimulationScatteredGrid(float dt) { kernUpdatePos<<>>(numObjects, dt, dev_pos, dev_vel2); - glm::vec3 *dev_vel_temp = dev_vel1; dev_vel1 = dev_vel2; - dev_vel2 = dev_vel_temp; } void Boids::stepSimulationCoherentGrid(float dt) { @@ -589,6 +669,25 @@ 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, -1); + kernResetIntBuffer<<>>(gridCellCount, dev_gridCellEndIndices, -1); + + kernComputeIndices<<>>(numObjects, gridSideCount, gridMinimum, gridInverseCellWidth, dev_pos, dev_particleArrayIndices, dev_particleGridIndices); + thrust::sort_by_key(dev_thrust_particleGridIndices, dev_thrust_particleGridIndices + numObjects, dev_thrust_particleArrayIndices); + thrust::gather(dev_thrust_particleArrayIndices, dev_thrust_particleArrayIndices + numObjects, thrust_dev_pos_orig, thrust_dev_pos_rear); + thrust::gather(dev_thrust_particleArrayIndices, dev_thrust_particleArrayIndices + numObjects, thrust_dev_orig, thrust_dev_rear); + + kernIdentifyCellStartEnd<<>>(numObjects, dev_particleGridIndices, dev_gridCellStartIndices, dev_gridCellEndIndices); + + + kernUpdateVelNeighborSearchCoherent<<>>(numObjects, gridSideCount, gridMinimum, gridInverseCellWidth, gridCellWidth, dev_gridCellStartIndices, dev_gridCellEndIndices, dev_particleArrayIndices, dev_pos_temp, dev_vel2, dev_vel1); + + + kernUpdatePos<<>>(numObjects, dt, dev_pos, dev_vel2); + + dev_pos = dev_pos_temp; + thrust_dev_pos_orig = thrust::device_ptr(dev_pos); + thrust_dev_pos_rear = thrust::device_ptr(dev_pos_temp); } void Boids::endSimulation() { From 6667be43d7f20f6ca1e22e1871ffe591ef3c7c99 Mon Sep 17 00:00:00 2001 From: Alexander Perry Date: Fri, 8 Sep 2017 20:22:38 -0700 Subject: [PATCH 09/13] make coherent grid compile. --- src/kernel.cu | 50 ++++++++++++++++++++------------------------------ src/main.cpp | 2 +- 2 files changed, 21 insertions(+), 31 deletions(-) diff --git a/src/kernel.cu b/src/kernel.cu index df518ba..66f7262 100644 --- a/src/kernel.cu +++ b/src/kernel.cu @@ -191,7 +191,7 @@ void Boids::initSimulation(int N) { dev_thrust_particleGridIndices = thrust::device_ptr(dev_particleGridIndices); cudaMalloc((void**)&dev_pos_temp, N * sizeof(glm::vec3 *)); - checkCudeErrorWithLine("cudaMalloc dev_pos_temp faile!"); + checkCUDAErrorWithLine("cudaMalloc dev_pos_temp failed!"); dev_thrust_pos_orig = thrust::device_ptr(dev_pos); dev_thrust_pos_rear = thrust::device_ptr(dev_pos_temp); @@ -505,7 +505,7 @@ __global__ void kernUpdateVelNeighborSearchScattered( __device__ glm::vec3 computeVelocityChangePerCellCoherent( int N, int iSelf, const glm::vec3 *pos, const glm::vec3 *vel, - int *particleArrayIndices, int *gridCellStartIndices, + int *gridCellStartIndices, int *gridCellEndIndices, int cellCount, int *cellIndices) { glm::vec3 perceived_center = glm::vec3(0.0f, 0.0f, 0.0f); glm::vec3 rule2_acc = glm::vec3(0.0f, 0.0f, 0.0f); @@ -584,7 +584,7 @@ __global__ void kernUpdateVelNeighborSearchCoherent( } } glm::vec3 delta_v = computeVelocityChangePerCellCoherent( - N, index, pos, vel1, particleArrayIndices, gridCellStartIndices, + N, index, pos, vel1, gridCellStartIndices, gridCellEndIndices, cellIndex, cellIndices); // Clamp the speed glm::vec3 new_vel = clamp(delta_v + vel1[index], maxSpeed); @@ -620,40 +620,25 @@ void Boids::stepSimulationScatteredGrid(float dt) { // - Perform velocity updates using neighbor search // - Update positions // - Ping-pong buffers as needed - kernResetIntBuffer<<>>(gridCellCount, dev_gridCellStartIndices, -1); - kernResetIntBuffer<<>>(gridCellCount, dev_gridCellEndIndices, -1); + kernResetIntBuffer<<>>(gridCellCount, dev_gridCellStartIndices, -1); + kernResetIntBuffer<<>>(gridCellCount, dev_gridCellEndIndices, -1); + cudaDeviceSynchronize(); kernComputeIndices<<>>(numObjects, gridSideCount, gridMinimum, gridInverseCellWidth, dev_pos, dev_particleArrayIndices, dev_particleGridIndices); thrust::sort_by_key(dev_thrust_particleGridIndices, dev_thrust_particleGridIndices + numObjects, dev_thrust_particleArrayIndices); -// int keys[5000]; -// int values[5000]; -// cudaMemcpy(keys, dev_particleGridIndices, sizeof(int) * 5000, cudaMemcpyDeviceToHost); -// cudaMemcpy(values, dev_particleArrayIndices, sizeof(int) * 5000, cudaMemcpyDeviceToHost); -// for (int i = 0; i < 5000; ++i) { -// std::cout << "grid id: " << keys[i]; -// std::cout << " array: " << values[i] << "\n"; -// } - kernIdentifyCellStartEnd<<>>(numObjects, dev_particleGridIndices, dev_gridCellStartIndices, dev_gridCellEndIndices); -// int start[10648]; -// int end[10648]; -// cudaMemcpy(start, dev_gridCellStartIndices, sizeof(int) * 10648, cudaMemcpyDeviceToHost); -// cudaMemcpy(end, dev_gridCellEndIndices, sizeof(int) * 10648, cudaMemcpyDeviceToHost); -// for (int i = 0; i < 10648; ++i) { -// std::cout << "start: " << start[i]; -// std::cout << " end: " << end[i] << "\n"; -// } kernUpdateVelNeighborSearchScattered<<>>(numObjects, gridSideCount, gridMinimum, gridInverseCellWidth, gridCellWidth, dev_gridCellStartIndices, dev_gridCellEndIndices, dev_particleArrayIndices, dev_pos, dev_vel1, dev_vel2); - kernUpdatePos<<>>(numObjects, dt, dev_pos, dev_vel2); dev_vel1 = dev_vel2; } void Boids::stepSimulationCoherentGrid(float dt) { + dim3 fullBlocksPerGrid((numObjects + blockSize - 1) / blockSize); + dim3 fullBlocksForCell((gridCellCount + blockSize - 1) / blockSize); // TODO-2.3 - start by copying Boids::stepSimulationNaiveGrid // Uniform Grid Neighbor search using Thrust sort on cell-coherent data. // In Parallel: @@ -669,25 +654,30 @@ 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, -1); - kernResetIntBuffer<<>>(gridCellCount, dev_gridCellEndIndices, -1); + kernResetIntBuffer<<>>(gridCellCount, dev_gridCellStartIndices, -1); + kernResetIntBuffer<<>>(gridCellCount, dev_gridCellEndIndices, -1); + cudaDeviceSynchronize(); kernComputeIndices<<>>(numObjects, gridSideCount, gridMinimum, gridInverseCellWidth, dev_pos, dev_particleArrayIndices, dev_particleGridIndices); thrust::sort_by_key(dev_thrust_particleGridIndices, dev_thrust_particleGridIndices + numObjects, dev_thrust_particleArrayIndices); - thrust::gather(dev_thrust_particleArrayIndices, dev_thrust_particleArrayIndices + numObjects, thrust_dev_pos_orig, thrust_dev_pos_rear); - thrust::gather(dev_thrust_particleArrayIndices, dev_thrust_particleArrayIndices + numObjects, thrust_dev_orig, thrust_dev_rear); + thrust::gather(dev_thrust_particleArrayIndices, + dev_thrust_particleArrayIndices + numObjects, + dev_thrust_pos_orig, dev_thrust_pos_rear); + thrust::gather(dev_thrust_particleArrayIndices, + dev_thrust_particleArrayIndices + numObjects, + dev_thrust_vel_orig, dev_thrust_vel_rear); kernIdentifyCellStartEnd<<>>(numObjects, dev_particleGridIndices, dev_gridCellStartIndices, dev_gridCellEndIndices); - kernUpdateVelNeighborSearchCoherent<<>>(numObjects, gridSideCount, gridMinimum, gridInverseCellWidth, gridCellWidth, dev_gridCellStartIndices, dev_gridCellEndIndices, dev_particleArrayIndices, dev_pos_temp, dev_vel2, dev_vel1); + kernUpdateVelNeighborSearchCoherent<<>>(numObjects, gridSideCount, gridMinimum, gridInverseCellWidth, gridCellWidth, dev_gridCellStartIndices, dev_gridCellEndIndices, dev_pos_temp, dev_vel2, dev_vel1); kernUpdatePos<<>>(numObjects, dt, dev_pos, dev_vel2); dev_pos = dev_pos_temp; - thrust_dev_pos_orig = thrust::device_ptr(dev_pos); - thrust_dev_pos_rear = thrust::device_ptr(dev_pos_temp); + dev_thrust_pos_orig = thrust::device_ptr(dev_pos); + dev_thrust_pos_rear = thrust::device_ptr(dev_pos_temp); } void Boids::endSimulation() { diff --git a/src/main.cpp b/src/main.cpp index 6cfe520..5d6e874 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 b3ab3fcdf981cada082be190484b420927f5f6c9 Mon Sep 17 00:00:00 2001 From: Alexander Perry Date: Sat, 9 Sep 2017 13:25:32 -0700 Subject: [PATCH 10/13] working coherent grid 200fps. --- src/kernel.cu | 96 ++++++++++++++++++++++++++++++++++----------------- 1 file changed, 64 insertions(+), 32 deletions(-) diff --git a/src/kernel.cu b/src/kernel.cu index 66f7262..960b3ea 100644 --- a/src/kernel.cu +++ b/src/kernel.cu @@ -85,12 +85,9 @@ 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_pos_temp; -thrust::device_ptr dev_thrust_pos_orig; -thrust::device_ptr dev_thrust_vel_orig; -thrust::device_ptr dev_thrust_pos_rear; -thrust::device_ptr dev_thrust_vel_rear; +thrust::device_ptr dev_thrust_pos; +thrust::device_ptr dev_thrust_vel; // LOOK-2.1 - Grid parameters based on simulation parameters. // These are automatically computed for you in Boids::initSimulation @@ -190,13 +187,8 @@ void Boids::initSimulation(int N) { dev_thrust_particleArrayIndices = thrust::device_ptr(dev_particleArrayIndices); dev_thrust_particleGridIndices = thrust::device_ptr(dev_particleGridIndices); - cudaMalloc((void**)&dev_pos_temp, N * sizeof(glm::vec3 *)); - checkCUDAErrorWithLine("cudaMalloc dev_pos_temp failed!"); - - dev_thrust_pos_orig = thrust::device_ptr(dev_pos); - dev_thrust_pos_rear = thrust::device_ptr(dev_pos_temp); - dev_thrust_vel_orig = thrust::device_ptr(dev_vel1); - dev_thrust_vel_rear = thrust::device_ptr(dev_vel2); + dev_thrust_pos = thrust::device_ptr(dev_pos); + dev_thrust_vel = thrust::device_ptr(dev_vel1); cudaThreadSynchronize(); } @@ -659,25 +651,50 @@ void Boids::stepSimulationCoherentGrid(float dt) { cudaDeviceSynchronize(); kernComputeIndices<<>>(numObjects, gridSideCount, gridMinimum, gridInverseCellWidth, dev_pos, dev_particleArrayIndices, dev_particleGridIndices); - thrust::sort_by_key(dev_thrust_particleGridIndices, dev_thrust_particleGridIndices + numObjects, dev_thrust_particleArrayIndices); - thrust::gather(dev_thrust_particleArrayIndices, + auto values = thrust::make_zip_iterator(thrust::make_tuple(dev_thrust_pos, dev_thrust_vel)); + //thrust::sort_by_key(dev_thrust_particleGridIndices, dev_thrust_particleGridIndices + numObjects, dev_thrust_particleArrayIndices); + thrust::sort_by_key(dev_thrust_particleGridIndices, dev_thrust_particleGridIndices + numObjects, values); + + /*int key[50]; + glm::vec3 data[50]; + glm::vec3 data2[50]; + cudaMemcpy(key, dev_particleGridIndices, 50 * sizeof(int), cudaMemcpyDeviceToHost); + cudaMemcpy(data, dev_pos, 50 * sizeof(glm::vec3), cudaMemcpyDeviceToHost); + std::cout << "before:\n"; + for (int i = 0; i < 50; ++i) { + std::cout << "key: " << key[i] << " val: (" << data[i].x << ", " << data[i].y << ", " << data[i].z << ")\n"; + } + cudaMemcpy(data2, dev_vel1, 50 * sizeof(glm::vec3), cudaMemcpyDeviceToHost); + std::cout << "after:\n"; + for (int i = 0; i < 50; ++i) { + std::cout << "val: (" << data2[i].x << ", " << data2[i].y << ", " << data2[i].z << ")\n"; + }*/ + /*thrust::gather(dev_thrust_particleArrayIndices, dev_thrust_particleArrayIndices + numObjects, dev_thrust_pos_orig, dev_thrust_pos_rear); thrust::gather(dev_thrust_particleArrayIndices, dev_thrust_particleArrayIndices + numObjects, dev_thrust_vel_orig, dev_thrust_vel_rear); + cudaMemcpy(data2, dev_pos_temp, 50 * sizeof(glm::vec3), cudaMemcpyDeviceToHost); + std::cout << "after:\n"; + for (int i = 0; i < 50; ++i) { + std::cout << "val: (" << data2[i].x << ", " << data2[i].y << ", " << data2[i].z << ")\n"; + }*/ + kernIdentifyCellStartEnd<<>>(numObjects, dev_particleGridIndices, dev_gridCellStartIndices, dev_gridCellEndIndices); - kernUpdateVelNeighborSearchCoherent<<>>(numObjects, gridSideCount, gridMinimum, gridInverseCellWidth, gridCellWidth, dev_gridCellStartIndices, dev_gridCellEndIndices, dev_pos_temp, dev_vel2, dev_vel1); + kernUpdateVelNeighborSearchCoherent<<>>(numObjects, gridSideCount, gridMinimum, gridInverseCellWidth, gridCellWidth, dev_gridCellStartIndices, dev_gridCellEndIndices, dev_pos, dev_vel1, dev_vel2); kernUpdatePos<<>>(numObjects, dt, dev_pos, dev_vel2); - dev_pos = dev_pos_temp; - dev_thrust_pos_orig = thrust::device_ptr(dev_pos); - dev_thrust_pos_rear = thrust::device_ptr(dev_pos_temp); +// dev_pos = dev_pos_temp; +// dev_thrust_pos_orig = thrust::device_ptr(dev_pos); +// dev_thrust_pos_rear = thrust::device_ptr(dev_pos_temp); + dev_vel1 = dev_vel2; + dev_thrust_vel = thrust::device_ptr(dev_vel1); } void Boids::endSimulation() { @@ -694,21 +711,23 @@ void Boids::unitTest() { // test unstable sort int *dev_intKeys; int *dev_intValues; + int *dev_intValues2; 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; + int *intValues2 = new int[N]; + + intKeys[0] = 0; intValues[0] = 0; intValues2[0] = 10; + intKeys[1] = 1; intValues[1] = 1; intValues2[1] = 11; + intKeys[2] = 0; intValues[2] = 2; intValues2[2] = 12; + intKeys[3] = 3; intValues[3] = 3; intValues2[3] = 13; + intKeys[4] = 0; intValues[4] = 4; intValues2[4] = 14; + intKeys[5] = 2; intValues[5] = 5; intValues2[5] = 15; + intKeys[6] = 2; intValues[6] = 6; intValues2[6] = 16; + intKeys[7] = 0; intValues[7] = 7; intValues2[7] = 17; + intKeys[8] = 5; intValues[8] = 8; intValues2[8] = 18; + intKeys[9] = 6; intValues[9] = 9; intValues2[9] = 19; cudaMalloc((void**)&dev_intKeys, N * sizeof(int)); checkCUDAErrorWithLine("cudaMalloc dev_intKeys failed!"); @@ -716,40 +735,53 @@ void Boids::unitTest() { cudaMalloc((void**)&dev_intValues, N * sizeof(int)); checkCUDAErrorWithLine("cudaMalloc dev_intValues failed!"); + cudaMalloc((void**)&dev_intValues2, N * sizeof(int)); + checkCUDAErrorWithLine("cudaMalloc dev_intValues2 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; + std::cout << " value: " << intValues[i]; + std::cout << " value2: " << intValues2[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); + cudaMemcpy(dev_intValues2, intValues2, 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); + thrust::device_ptr dev_thrust_values2(dev_intValues2); + + auto zipped = thrust::make_zip_iterator(thrust::make_tuple(dev_thrust_values, dev_thrust_values2)); // LOOK-2.1 Example for using thrust::sort_by_key - thrust::sort_by_key(dev_thrust_keys, dev_thrust_keys + N, dev_thrust_values); + //thrust::sort_by_key(dev_thrust_keys, dev_thrust_keys + N, dev_thrust_values); + thrust::sort_by_key(dev_thrust_keys, dev_thrust_keys + N, zipped); // 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); + cudaMemcpy(intValues2, dev_intValues2, 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; + std::cout << " value: " << intValues[i]; + std::cout << " value2: " << intValues2[i] << std::endl; } // cleanup delete[] intKeys; delete[] intValues; + delete[] intValues2; cudaFree(dev_intKeys); cudaFree(dev_intValues); + cudaFree(dev_intValues2); checkCUDAErrorWithLine("cudaFree failed!"); return; } From 897dd91f9d2a5199c82b4e68bbee1aa165497643 Mon Sep 17 00:00:00 2001 From: Alexander Perry Date: Sun, 10 Sep 2017 11:45:46 -0700 Subject: [PATCH 11/13] Add images required for write up. --- images/coherentGrid.gif | Bin 0 -> 1651574 bytes images/swarm.PNG | Bin 0 -> 57441 bytes src/kernel.cu | 39 ++++++--------------------------------- 3 files changed, 6 insertions(+), 33 deletions(-) create mode 100644 images/coherentGrid.gif create mode 100644 images/swarm.PNG diff --git a/images/coherentGrid.gif b/images/coherentGrid.gif new file mode 100644 index 0000000000000000000000000000000000000000..9486349a0a91466f99ac58ea3757045fd6608361 GIT binary patch literal 1651574 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