Browse Source

SOCl: add perfmodels to copy/write/read buffer tasks

Sylvain Henry 13 years ago
parent
commit
51837da2c9

+ 6 - 1
socl/src/cl_enqueuecopybuffer.c

@@ -58,9 +58,14 @@ static void soclEnqueueCopyBuffer_cpu_task(void *descr[], void *args) {
    free(arg);
 }
 
+static struct starpu_perfmodel copy_buffer_perfmodel = {
+  .type = STARPU_HISTORY_BASED,
+  .symbol = "SOCL_COPY_BUFFER"
+};
+
 static struct starpu_codelet codelet_copybuffer = {
    .where = STARPU_CPU | STARPU_OPENCL,
-   .model = NULL,
+   .model = &copy_buffer_perfmodel,
    .cpu_funcs = { &soclEnqueueCopyBuffer_cpu_task, NULL },
    .opencl_funcs = { &soclEnqueueCopyBuffer_opencl_task, NULL },
    .modes = {STARPU_R, STARPU_RW},

+ 6 - 1
socl/src/cl_enqueuereadbuffer.c

@@ -58,9 +58,14 @@ static void soclEnqueueReadBuffer_opencl_task(void *descr[], void *args) {
    free(args);
 }
 
+static struct starpu_perfmodel read_buffer_perfmodel = {
+  .type = STARPU_HISTORY_BASED,
+  .symbol = "SOCL_READ_BUFFER"
+};
+
 static struct starpu_codelet codelet_readbuffer = {
    .where = STARPU_OPENCL,
-   .model = NULL,
+   .model = &read_buffer_perfmodel,
    .cpu_funcs = { &soclEnqueueReadBuffer_cpu_task, NULL },
    .opencl_funcs = { &soclEnqueueReadBuffer_opencl_task, NULL },
    .modes = {STARPU_R},

+ 7 - 2
socl/src/cl_enqueuewritebuffer.c

@@ -60,9 +60,14 @@ static void soclEnqueueWriteBuffer_opencl_task(void *descr[], void *args) {
    free(args);
 }
 
+static struct starpu_perfmodel write_buffer_perfmodel = {
+  .type = STARPU_HISTORY_BASED,
+  .symbol = "SOCL_WRITE_BUFFER"
+};
+
 static struct starpu_codelet codelet_writebuffer = {
    .where = STARPU_OPENCL,
-   .model = NULL,
+   .model = &write_buffer_perfmodel,
    .cpu_funcs = { &soclEnqueueWriteBuffer_cpu_task, NULL },
    .opencl_funcs = { &soclEnqueueWriteBuffer_opencl_task, NULL },
    .modes = {STARPU_W},
@@ -71,7 +76,7 @@ static struct starpu_codelet codelet_writebuffer = {
 
 static struct starpu_codelet codelet_writebuffer_partial = {
    .where = STARPU_OPENCL,
-   .model = NULL,
+   .model = &write_buffer_perfmodel,
    .cpu_funcs = { &soclEnqueueWriteBuffer_cpu_task, NULL },
    .opencl_funcs = { &soclEnqueueWriteBuffer_opencl_task, NULL },
    .modes = {STARPU_RW},