Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- clGetPlatformIDs(1, &platformID, &numPlatforms);
- clGetDeviceIDs(platformID, CL_DEVICE_TYPE_DEFAULT, 1, &deviceID, &numDevices);
- context = clCreateContext(NULL, 1, &deviceID, NULL, NULL, NULL);
- commandQueue = clCreateCommandQueue(context, deviceID, 0, NULL);
- memOP = clCreateBuffer(context, CL_MEM_READ_ONLY, MAX_OP * sizeof(Coord), NULL, NULL);
- memSegment = clCreateBuffer(context, CL_MEM_READ_ONLY, MAX_SEGMENTEN * sizeof(Coord), NULL, NULL);
- memAfstanden = clCreateBuffer(context, CL_MEM_WRITE_ONLY, MAX_AFSTANDEN * sizeof(double), NULL, NULL);
- clEnqueueWriteBuffer(commandQueue, memOP, CL_TRUE, 0, MAX_OP * sizeof(Coord), OP, 0, NULL, NULL);
- clEnqueueWriteBuffer(commandQueue, memSegment, CL_TRUE, 0, MAX_SEGMENTEN * sizeof(Coord), segmentArray, 0, NULL, NULL);
- clCreateProgramWithSource(context, 1, (const char **)&kernelSource, (const size_t *)&kernelLength, NULL);
- clBuildProgram(program, 1, &deviceID, NULL, NULL, NULL);
- kernel = clCreateKernel(program, "afstand", NULL);
- clSetKernelArg(kernel, 0, sizeof(cl_mem), (void *)&memOP);
- clSetKernelArg(kernel, 1, sizeof(cl_mem), (void *)&memSegment);
- clSetKernelArg(kernel, 2, sizeof(cl_mem), (void *)&memAfstanden);
- clSetKernelArg(kernel, 3, sizeof(int), FLIGHTALTITUDE);
- clEnqueueNDRangeKernel(commandQueue, kernel, 1, NULL, MAX_AFSTANDEN, 1, 0, NULL, NULL);
- clEnqueueReadBuffer(commandQueue, memAfstanden, CL_TRUE, 0, MAX_AFSTANDEN * sizeof(double), afstanden, 0, NULL, NULL);
- fopen_s(&optr, "C:\\Cio\\IO.txt", "wt");
- for(i = 0; i < MAX_OP; i++)
- {
- for(z = 0; z < MAX_SEGMENTEN; z++)
- {
- fprintf(optr, "OP %d ligt %3.2lfkm van segment %d af\n", i, afstanden[MAX_SEGMENTEN*i + z], z);
- }
- }
- fclose(optr);
- clFlush(commandQueue);
- clFinish(commandQueue);
- clReleaseKernel(kernel);
- clReleaseProgram(program);
- clReleaseMemObject(memOP);
- clReleaseMemObject(memSegment);
- clReleaseMemObject(memAfstanden);
- clReleaseCommandQueue(commandQueue);
- clReleaseContext(context);
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement