changeset 8:1b8da19bb31c

change time measure point
author Yuhi TOMARI <yuhi@cr.ie.u-ryukyu.ac.jp>
date Tue, 05 Feb 2013 16:40:13 +0900
parents ea2e7ce9d5bb
children ed3d4a769bf3
files fft_fixstart/main.cc
diffstat 1 files changed, 13 insertions(+), 13 deletions(-) [+]
line wrap: on
line diff
--- a/fft_fixstart/main.cc	Tue Feb 05 15:19:02 2013 +0900
+++ b/fft_fixstart/main.cc	Tue Feb 05 16:40:13 2013 +0900
@@ -129,7 +129,7 @@
 
 char *
 init(int argc, char**argv){
-    
+
     char *filename = 0;
 
     for (int i = 1; argv[i]; ++i) {
@@ -170,7 +170,7 @@
 
     pgm_t ipgm;
     pgm_t opgm;
-    
+
     const char fileName[] = "./fft.cl";
     size_t source_size;
     char *source_str;
@@ -183,7 +183,7 @@
 
     /* Load kernel source code */
     int fd = open(fileName, O_RDONLY);
-    
+
     if (fd<0) {
         fprintf(stderr, "Failed to load kernel %s.\n",fileName);
         exit(1);
@@ -200,12 +200,12 @@
     close( fd );
 
     char * pgm_file = init(argc,argv);
-    
+
     /* Read image */
     int err = readPGM(&ipgm, pgm_file);
     if (err<0) {
         fprintf(stderr, "Failed to read image file.\n");
-        exit(1);
+       exit(1);
     }
 
     n = ipgm.width;
@@ -233,14 +233,12 @@
     /* Create Command queue */
     queue = clCreateCommandQueue(context, device_id, 0, &ret);
 
+    st_time = getTime();
     /* Create Buffer Objects */
     xmobj = clCreateBuffer(context, CL_MEM_READ_WRITE, n*n*sizeof(cl_float2), NULL, &ret);
     rmobj = clCreateBuffer(context, CL_MEM_READ_WRITE, n*n*sizeof(cl_float2), NULL, &ret);
     wmobj = clCreateBuffer(context, CL_MEM_READ_WRITE, (n/2)*sizeof(cl_float2), NULL, &ret);
 
-
-    st_time = getTime();
-    
     /* Transfer data to memory buffer */
     ret = clEnqueueWriteBuffer(queue, xmobj, CL_TRUE, 0, n*n*sizeof(cl_float2), xm, 0, NULL, NULL);
 
@@ -253,7 +251,7 @@
     if (ret<0) {
         size_t size;
         clGetProgramBuildInfo(program, device_id, CL_PROGRAM_BUILD_LOG, 0, NULL, &size);
-        
+
         char *log = new char[size];
         clGetProgramBuildInfo(program, device_id, CL_PROGRAM_BUILD_LOG, size, log, NULL);
         printf("%s ",log);
@@ -304,10 +302,10 @@
     ret = clEnqueueTask(queue, trns, 0, NULL, NULL);
 
     /* Butterfly Operation */
-    
+
     fftCore(xmobj, rmobj, wmobj, m, inverse);
-    
-    /* Read data from memory buffer */ 
+
+    /* Read data from memory buffer */
     ret = clEnqueueReadBuffer(queue, xmobj, CL_TRUE, 0, n*n*sizeof(cl_float2), xm, 0, NULL, NULL);
 
     /*  */
@@ -322,6 +320,9 @@
     opgm.height = n;
     normalizeF2PGM(&opgm, ampd);
     free(ampd);
+    ret = clFlush(queue);
+    ret = clFinish(queue);
+    ed_time = getTime();
 
     /* Write out image */
     writePGM(&opgm, "output.pgm");
@@ -329,7 +330,6 @@
     /* Finalizations*/
     ret = clFlush(queue);
     ret = clFinish(queue);
-    ed_time = getTime();
     ret = clReleaseKernel(hpfl);
     ret = clReleaseKernel(trns);
     ret = clReleaseKernel(sfac);