diff --git a/src/distancekernel.cl b/src/distancekernel.cl index bb3b9db..67bb12b 100644 --- a/src/distancekernel.cl +++ b/src/distancekernel.cl @@ -14,7 +14,7 @@ __kernel void EuclideanDistance(__global unsigned const char *imgs, __local unsigned int partial[256]; - for (int i = gid; i < imsize; i += groupSize) { + for (int i = lid; i < imsize; i += groupSize) { int d = (int)imgs[img1Offset + i] - (int)imgs[img2Offset + i]; sum += (unsigned int)(d * d); } diff --git a/src/main.c b/src/main.c index 41d7832..0c1a7c7 100644 --- a/src/main.c +++ b/src/main.c @@ -158,6 +158,7 @@ void computeDistanceOpenCL(unsigned char* imgs,AudioData *audioData, float **dis clEnqueueNDRangeKernel(commandQueue,kernel,1,NULL,&globalWorkSize,&localWorkSize,0, NULL, NULL); // reads distance back clEnqueueReadBuffer(commandQueue, distance_gpumem, CL_TRUE, 0, sizeof(float), &distance, 0, NULL, NULL); + distanceArrays[i][j]=distance; computeCounter++; } printf("\rWay through matrix compute: %.2f%%",(computeCounter/(float)matrixSize)*100); @@ -245,8 +246,8 @@ int main(){ } time_t now = time(NULL); - // computeDistanceMatrixOMP(imgData,audioData, distanceArrays,nfiles, counter); // computeDistanceMatrix(imgData,audioData, distanceArrays,nfiles, counter); + // computeDistanceMatrixOMP(imgData,audioData, distanceArrays,nfiles, counter); computeDistanceOpenCL(imgData,audioData, distanceArrays,nfiles, counter); printf("Time it took to compute matrix: %lld seconds\n",time(NULL)-now);