Mercurial > hg > Members > yuuhi > OpenCL
comparison fft_fixstart/main.cc @ 6:db074091ed0b
minor change
author | Yuhi TOMARI <yuhi@cr.ie.u-ryukyu.ac.jp> |
---|---|
date | Tue, 05 Feb 2013 15:12:19 +0900 |
parents | 3602b23914ad |
children | 1b8da19bb31c |
comparison
equal
deleted
inserted
replaced
5:3602b23914ad | 6:db074091ed0b |
---|---|
135 for (int i = 1; argv[i]; ++i) { | 135 for (int i = 1; argv[i]; ++i) { |
136 if (strcmp(argv[i], "-file") == 0) { | 136 if (strcmp(argv[i], "-file") == 0) { |
137 filename = argv[i+1]; | 137 filename = argv[i+1]; |
138 } else if (strcmp(argv[i], "-cpu") == 0) { | 138 } else if (strcmp(argv[i], "-cpu") == 0) { |
139 device_type = CL_DEVICE_TYPE_CPU; | 139 device_type = CL_DEVICE_TYPE_CPU; |
140 printf("cpu!\n"); | |
141 } else if (strcmp(argv[i], "-gpu") == 0) { | 140 } else if (strcmp(argv[i], "-gpu") == 0) { |
142 device_type = CL_DEVICE_TYPE_GPU; | 141 device_type = CL_DEVICE_TYPE_GPU; |
143 printf("gpu!\n"); | |
144 } | 142 } |
145 } | 143 } |
146 if ( (argc == 1)||(filename==0)) { | 144 if ( (argc == 1)||(filename==0)) { |
147 printf("Usage: ./fft [image filename]\n"); | 145 printf("Usage: ./fft -file [image filename] -cpu or -gpu \n"); |
148 exit(-1); | 146 exit(-1); |
149 } | 147 } |
150 | 148 |
151 return filename; | 149 return filename; |
152 } | 150 } |
222 ((float*)xm)[(2*n*j)+2*i+0] = (float)ipgm.buf[n*j+i]; | 220 ((float*)xm)[(2*n*j)+2*i+0] = (float)ipgm.buf[n*j+i]; |
223 ((float*)xm)[(2*n*j)+2*i+1] = (float)0; | 221 ((float*)xm)[(2*n*j)+2*i+1] = (float)0; |
224 } | 222 } |
225 } | 223 } |
226 | 224 |
227 st_time = getTime(); | |
228 /* Get platform/device */ | 225 /* Get platform/device */ |
229 ret = clGetPlatformIDs(1, &platform_id, &ret_num_platforms); | 226 ret = clGetPlatformIDs(1, &platform_id, &ret_num_platforms); |
230 | 227 |
231 ret = clGetDeviceIDs( platform_id, device_type, 1, &device_id, &ret_num_devices); | 228 ret = clGetDeviceIDs( platform_id, device_type, 1, &device_id, &ret_num_devices); |
232 | 229 |
239 /* Create Buffer Objects */ | 236 /* Create Buffer Objects */ |
240 xmobj = clCreateBuffer(context, CL_MEM_READ_WRITE, n*n*sizeof(cl_float2), NULL, &ret); | 237 xmobj = clCreateBuffer(context, CL_MEM_READ_WRITE, n*n*sizeof(cl_float2), NULL, &ret); |
241 rmobj = clCreateBuffer(context, CL_MEM_READ_WRITE, n*n*sizeof(cl_float2), NULL, &ret); | 238 rmobj = clCreateBuffer(context, CL_MEM_READ_WRITE, n*n*sizeof(cl_float2), NULL, &ret); |
242 wmobj = clCreateBuffer(context, CL_MEM_READ_WRITE, (n/2)*sizeof(cl_float2), NULL, &ret); | 239 wmobj = clCreateBuffer(context, CL_MEM_READ_WRITE, (n/2)*sizeof(cl_float2), NULL, &ret); |
243 | 240 |
241 | |
242 st_time = getTime(); | |
243 | |
244 /* Transfer data to memory buffer */ | 244 /* Transfer data to memory buffer */ |
245 ret = clEnqueueWriteBuffer(queue, xmobj, CL_TRUE, 0, n*n*sizeof(cl_float2), xm, 0, NULL, NULL); | 245 ret = clEnqueueWriteBuffer(queue, xmobj, CL_TRUE, 0, n*n*sizeof(cl_float2), xm, 0, NULL, NULL); |
246 | 246 |
247 /* Create kernel program from source */ | 247 /* Create kernel program from source */ |
248 program = clCreateProgramWithSource(context, 1, (const char **)&source_str, (const size_t *)&source_size, &ret); | 248 program = clCreateProgramWithSource(context, 1, (const char **)&source_str, (const size_t *)&source_size, &ret); |