| 192 | |
| 193 | #ifdef KERNEL_WORK_GROUP_INFO_DISPLAY |
| 194 | int getKernelWorkGroupInfo( |
| 195 | cl_kernel kernel, |
| 196 | cl_device_id device |
| 197 | ) |
| 198 | { |
| 199 | cl_int err; |
| 200 | size_t* ker_wg_size; |
| 201 | size_t* ker_pref_wg_size_multiple; |
| 202 | cl_ulong* ker_loc_mem_size; |
| 203 | cl_ulong* ker_pri_mem_size; |
| 204 | size_t* ker_comp_wg_size; |
| 205 | |
| 206 | size_t sizeParam; |
| 207 | |
| 208 | // ---------------------------------------------------------------------------- |
| 209 | // Query Kernel work group size |
| 210 | printf("\n-----------------------------------------------------------------------\n"); |
| 211 | err = clGetKernelWorkGroupInfo(kernel,device,CL_KERNEL_WORK_GROUP_SIZE,0,NULL,&sizeParam); |
| 212 | if (err != CL_SUCCESS){ |
| 213 | printf("Error: clGetKernelWorkGroupInfo() %d\n",err); |
| 214 | fflush(stdout); |
| 215 | return EXIT_FAILURE; |
| 216 | } |
| 217 | |
| 218 | ker_wg_size = (size_t*) malloc(sizeof(size_t) * sizeParam); |
| 219 | err = clGetKernelWorkGroupInfo(kernel,device,CL_KERNEL_WORK_GROUP_SIZE,sizeParam,ker_wg_size,NULL); |
| 220 | if (err != CL_SUCCESS){ |
| 221 | printf("Error: clGetKernelWorkGroupInfo() %d\n",err); |
| 222 | fflush(stdout); |
| 223 | return EXIT_FAILURE; |
| 224 | } |
| 225 | |
| 226 | printf(" %-45s: %lu \n", "CL_KERNEL_WORK_GROUP_SIZE", *ker_wg_size); |
| 227 | free(ker_wg_size); |
| 228 | |
| 229 | /* |
| 230 | // CL_KERNEL_PREFERRED_WORK_GROUP_SIZE_MULTIPLE is supported from OpenCL 2.0 |
| 231 | // ---------------------------------------------------------------------------- |
| 232 | // Query Kernel preferred work group size multiple |
| 233 | err = clGetKernelWorkGroupInfo(kernel,device,CL_KERNEL_PREFERRED_WORK_GROUP_SIZE_MULTIPLE,0,NULL,&sizeParam); |
| 234 | if (err != CL_SUCCESS){printf("Error: clGetKernelWorkGroupInfo() %d\n",err); return EXIT_FAILURE;} |
| 235 | |
| 236 | ker_pref_wg_size_multiple = (size_t*) malloc(sizeof(size_t) * sizeParam); |
| 237 | err = clGetKernelWorkGroupInfo(kernel,device,CL_KERNEL_PREFERRED_WORK_GROUP_SIZE_MULTIPLE,sizeParam,ker_pref_wg_size_multiple,NULL); |
| 238 | if (err != CL_SUCCESS){printf("Error: clGetKernelWorkGroupInfo() %d\n",err); return EXIT_FAILURE;} |
| 239 | |
| 240 | printf(" %-45s: %lu \n", "CL_KERNEL_PREFERRED_WORK_GROUP_SIZE_MULTIPLE", ker_pref_wg_size_multiple); |
| 241 | free(ker_pref_wg_size_multiple); |
| 242 | */ |
| 243 | |
| 244 | // ---------------------------------------------------------------------------- |
| 245 | // Query Kernel local mem size |
| 246 | err = clGetKernelWorkGroupInfo(kernel,device,CL_KERNEL_LOCAL_MEM_SIZE,0,NULL,&sizeParam); |
| 247 | if (err != CL_SUCCESS){ |
| 248 | printf("Error: clGetKernelWorkGroupInfo() %d\n",err); |
| 249 | fflush(stdout); |
| 250 | return EXIT_FAILURE; |
| 251 | } |
no outgoing calls
no test coverage detected