Przeglądaj źródła

SOCL: do not make StarPU crash when a kernel cannot be executed

Sylvain Henry 12 lat temu
rodzic
commit
d679f897c2

+ 5 - 5
socl/src/cl_enqueuendrangekernel.c

@@ -72,12 +72,12 @@ void soclEnqueueNDRangeKernel_task(void *descr[], void *args) {
 	   if (cmd->local_work_size != NULL)
 		   DEBUG_MSG("Local work size: %ld %ld %ld\n", cmd->local_work_size[0],
 				   (cmd->work_dim > 1 ? cmd->local_work_size[1] : 1), (cmd->work_dim > 2 ? cmd->local_work_size[2] : 1)); 
-	   ERROR_MSG("Aborting.\n");
-	   exit(1);
    }
-
-   /* Waiting for kernel to terminate */
-   clWaitForEvents(1, &event);
+   else {
+      /* Waiting for kernel to terminate */
+      clWaitForEvents(1, &event);
+      clReleaseEvent(event);
+   }
 }
 
 static void cleaning_task_callback(void *args) {

+ 1 - 1
socl/src/cl_geteventprofilinginfo.c

@@ -29,7 +29,7 @@ soclGetEventProfilingInfo(cl_event          event,
    if (prof == NULL)
       return CL_PROFILING_INFO_NOT_AVAILABLE;
 
-   #define TONANO(t) (t.tv_nsec + t.tv_sec*1e9)
+   #define TONANO(t) ((cl_ulong)t.tv_nsec + (cl_ulong)(t.tv_sec)*1e9)
 
    switch (param_name) {
       case CL_PROFILING_COMMAND_QUEUED: