diff options
Diffstat (limited to 'src/ufo-forwardproject-task.c')
-rw-r--r-- | src/ufo-forwardproject-task.c | 9 |
1 files changed, 9 insertions, 0 deletions
diff --git a/src/ufo-forwardproject-task.c b/src/ufo-forwardproject-task.c index 2058614..ac89879 100644 --- a/src/ufo-forwardproject-task.c +++ b/src/ufo-forwardproject-task.c @@ -24,6 +24,7 @@ #include <CL/cl.h> #endif +#include <stdio.h> #include "ufo-forwardproject-task.h" @@ -33,6 +34,7 @@ struct _UfoForwardprojectTaskPrivate { gfloat axis_pos; gfloat angle_step; guint num_projections; + size_t out_mem_size; }; static void ufo_task_interface_init (UfoTaskIface *iface); @@ -137,6 +139,7 @@ ufo_forwardproject_task_process (UfoTask *task, in_mem = ufo_buffer_get_device_image (inputs[0], cmd_queue); out_mem = ufo_buffer_get_device_array (output, cmd_queue); profiler = ufo_task_node_get_profiler (UFO_TASK_NODE (task)); + ufo_profiler_enable_tracing(profiler, TRUE); UFO_RESOURCES_CHECK_CLERR (clSetKernelArg (priv->kernel, 0, sizeof (cl_mem), &in_mem)); UFO_RESOURCES_CHECK_CLERR (clSetKernelArg (priv->kernel, 1, sizeof (cl_mem), &out_mem)); @@ -145,6 +148,11 @@ ufo_forwardproject_task_process (UfoTask *task, ufo_profiler_call (profiler, cmd_queue, priv->kernel, 2, requisition->dims, NULL); + size_t temp_size; + clGetMemObjectInfo(out_mem,CL_MEM_SIZE,sizeof(temp_size),&temp_size,NULL); + priv->out_mem_size += temp_size; + //fprintf(stdout, "Time taken GPU: %f Size: %zu \n", ufo_profiler_elapsed(profiler, UFO_PROFILER_TIMER_GPU), priv->out_mem_size); + return TRUE; } @@ -268,4 +276,5 @@ ufo_forwardproject_task_init(UfoForwardprojectTask *self) self->priv->axis_pos = -G_MAXFLOAT; self->priv->num_projections = 256; self->priv->angle_step = 0; + self->priv->out_mem_size = 0; } |