diff --git a/include/fmpi_data.h b/include/fmpi_data.h index 7ca407cc25d82a3066985648b78377b4b8327d45..562a73dc407c6ecd56f4404d0b332157131bf4e4 100644 --- a/include/fmpi_data.h +++ b/include/fmpi_data.h @@ -47,7 +47,7 @@ typedef struct fmpi_data { size_t size; //!< Total size `(cnt * type.size)`. size_t dim_len[FMPI_DIM_MAX]; //!< Length of each dimension. size_t dim_cnt; //!< Number of dimensions. - void * start; //!< Pointer to the start of the data. + void * raw; //!< Pointer to the start of the data. } fmpi_data; /*============================================================================== PUBLIC FUNCTION diff --git a/include/internal/generic/fmpi_task_generic.h b/include/internal/generic/fmpi_task_generic.h index 83cd4822f195e78d8b710133191690132b6b6bd3..cfcac37b3f62a5a9dcf005e8cf6e48440e3de99c 100644 --- a/include/internal/generic/fmpi_task_generic.h +++ b/include/internal/generic/fmpi_task_generic.h @@ -62,7 +62,7 @@ _Pragma("GCC diagnostic ignored \"-Wcast-qual\"")\ (FUNC, N, 3, ctx->fut->ctx, args->out_raw, args->in), FMPI_TYPE_REAL) \ } \ } \ - return futhark_entry_##FUNC(ctx->fut->ctx, args->out.start, FMPI_PRIV_TASK_ARGS_##N(args->in)); \ + return futhark_entry_##FUNC(ctx->fut->ctx, args->out.raw, FMPI_PRIV_TASK_ARGS_##N(args->in)); \ _Pragma("GCC diagnostic warning \"-Wcast-qual\"")\ _Pragma("GCC diagnostic warning \"-Wincompatible-pointer-types\"")\ } @@ -92,38 +92,38 @@ _Pragma("GCC diagnostic warning \"-Wincompatible-pointer-types\"")\ .cnt = N \ }) -#define FMPI_PRIV_TASK_ARGS_1(args_in) (args_in)[0].start -#define FMPI_PRIV_TASK_ARGS_2(args_in) FMPI_PRIV_TASK_ARGS_1(args_in), (args_in)[1].start -#define FMPI_PRIV_TASK_ARGS_3(args_in) FMPI_PRIV_TASK_ARGS_2(args_in), (args_in)[2].start -#define FMPI_PRIV_TASK_ARGS_4(args_in) FMPI_PRIV_TASK_ARGS_3(args_in), (args_in)[3].start -#define FMPI_PRIV_TASK_ARGS_5(args_in) FMPI_PRIV_TASK_ARGS_4(args_in), (args_in)[4].start -#define FMPI_PRIV_TASK_ARGS_6(args_in) FMPI_PRIV_TASK_ARGS_5(args_in), (args_in)[5].start -#define FMPI_PRIV_TASK_ARGS_7(args_in) FMPI_PRIV_TASK_ARGS_6(args_in), (args_in)[6].start -#define FMPI_PRIV_TASK_ARGS_8(args_in) FMPI_PRIV_TASK_ARGS_7(args_in), (args_in)[7].start -#define FMPI_PRIV_TASK_ARGS_9(args_in) FMPI_PRIV_TASK_ARGS_8(args_in), (args_in)[8].start -#define FMPI_PRIV_TASK_ARGS_10(args_in) FMPI_PRIV_TASK_ARGS_9(args_in), (args_in)[9].start -#define FMPI_PRIV_TASK_ARGS_11(args_in) FMPI_PRIV_TASK_ARGS_10(args_in), (args_in)[10].start -#define FMPI_PRIV_TASK_ARGS_12(args_in) FMPI_PRIV_TASK_ARGS_11(args_in), (args_in)[11].start -#define FMPI_PRIV_TASK_ARGS_13(args_in) FMPI_PRIV_TASK_ARGS_12(args_in), (args_in)[12].start -#define FMPI_PRIV_TASK_ARGS_14(args_in) FMPI_PRIV_TASK_ARGS_13(args_in), (args_in)[13].start -#define FMPI_PRIV_TASK_ARGS_15(args_in) FMPI_PRIV_TASK_ARGS_14(args_in), (args_in)[14].start -#define FMPI_PRIV_TASK_ARGS_16(args_in) FMPI_PRIV_TASK_ARGS_15(args_in), (args_in)[15].start -#define FMPI_PRIV_TASK_ARGS_17(args_in) FMPI_PRIV_TASK_ARGS_16(args_in), (args_in)[16].start -#define FMPI_PRIV_TASK_ARGS_18(args_in) FMPI_PRIV_TASK_ARGS_17(args_in), (args_in)[17].start -#define FMPI_PRIV_TASK_ARGS_19(args_in) FMPI_PRIV_TASK_ARGS_18(args_in), (args_in)[18].start -#define FMPI_PRIV_TASK_ARGS_20(args_in) FMPI_PRIV_TASK_ARGS_19(args_in), (args_in)[19].start -#define FMPI_PRIV_TASK_ARGS_21(args_in) FMPI_PRIV_TASK_ARGS_20(args_in), (args_in)[20].start -#define FMPI_PRIV_TASK_ARGS_22(args_in) FMPI_PRIV_TASK_ARGS_21(args_in), (args_in)[21].start -#define FMPI_PRIV_TASK_ARGS_23(args_in) FMPI_PRIV_TASK_ARGS_22(args_in), (args_in)[22].start -#define FMPI_PRIV_TASK_ARGS_24(args_in) FMPI_PRIV_TASK_ARGS_23(args_in), (args_in)[23].start -#define FMPI_PRIV_TASK_ARGS_25(args_in) FMPI_PRIV_TASK_ARGS_24(args_in), (args_in)[24].start -#define FMPI_PRIV_TASK_ARGS_26(args_in) FMPI_PRIV_TASK_ARGS_25(args_in), (args_in)[25].start -#define FMPI_PRIV_TASK_ARGS_27(args_in) FMPI_PRIV_TASK_ARGS_26(args_in), (args_in)[26].start -#define FMPI_PRIV_TASK_ARGS_28(args_in) FMPI_PRIV_TASK_ARGS_27(args_in), (args_in)[27].start -#define FMPI_PRIV_TASK_ARGS_29(args_in) FMPI_PRIV_TASK_ARGS_28(args_in), (args_in)[28].start -#define FMPI_PRIV_TASK_ARGS_30(args_in) FMPI_PRIV_TASK_ARGS_29(args_in), (args_in)[29].start -#define FMPI_PRIV_TASK_ARGS_31(args_in) FMPI_PRIV_TASK_ARGS_30(args_in), (args_in)[30].start -#define FMPI_PRIV_TASK_ARGS_32(args_in) FMPI_PRIV_TASK_ARGS_31(args_in), (args_in)[31].start +#define FMPI_PRIV_TASK_ARGS_1(args_in) (args_in)[0].raw +#define FMPI_PRIV_TASK_ARGS_2(args_in) FMPI_PRIV_TASK_ARGS_1(args_in), (args_in)[1].raw +#define FMPI_PRIV_TASK_ARGS_3(args_in) FMPI_PRIV_TASK_ARGS_2(args_in), (args_in)[2].raw +#define FMPI_PRIV_TASK_ARGS_4(args_in) FMPI_PRIV_TASK_ARGS_3(args_in), (args_in)[3].raw +#define FMPI_PRIV_TASK_ARGS_5(args_in) FMPI_PRIV_TASK_ARGS_4(args_in), (args_in)[4].raw +#define FMPI_PRIV_TASK_ARGS_6(args_in) FMPI_PRIV_TASK_ARGS_5(args_in), (args_in)[5].raw +#define FMPI_PRIV_TASK_ARGS_7(args_in) FMPI_PRIV_TASK_ARGS_6(args_in), (args_in)[6].raw +#define FMPI_PRIV_TASK_ARGS_8(args_in) FMPI_PRIV_TASK_ARGS_7(args_in), (args_in)[7].raw +#define FMPI_PRIV_TASK_ARGS_9(args_in) FMPI_PRIV_TASK_ARGS_8(args_in), (args_in)[8].raw +#define FMPI_PRIV_TASK_ARGS_10(args_in) FMPI_PRIV_TASK_ARGS_9(args_in), (args_in)[9].raw +#define FMPI_PRIV_TASK_ARGS_11(args_in) FMPI_PRIV_TASK_ARGS_10(args_in), (args_in)[10].raw +#define FMPI_PRIV_TASK_ARGS_12(args_in) FMPI_PRIV_TASK_ARGS_11(args_in), (args_in)[11].raw +#define FMPI_PRIV_TASK_ARGS_13(args_in) FMPI_PRIV_TASK_ARGS_12(args_in), (args_in)[12].raw +#define FMPI_PRIV_TASK_ARGS_14(args_in) FMPI_PRIV_TASK_ARGS_13(args_in), (args_in)[13].raw +#define FMPI_PRIV_TASK_ARGS_15(args_in) FMPI_PRIV_TASK_ARGS_14(args_in), (args_in)[14].raw +#define FMPI_PRIV_TASK_ARGS_16(args_in) FMPI_PRIV_TASK_ARGS_15(args_in), (args_in)[15].raw +#define FMPI_PRIV_TASK_ARGS_17(args_in) FMPI_PRIV_TASK_ARGS_16(args_in), (args_in)[16].raw +#define FMPI_PRIV_TASK_ARGS_18(args_in) FMPI_PRIV_TASK_ARGS_17(args_in), (args_in)[17].raw +#define FMPI_PRIV_TASK_ARGS_19(args_in) FMPI_PRIV_TASK_ARGS_18(args_in), (args_in)[18].raw +#define FMPI_PRIV_TASK_ARGS_20(args_in) FMPI_PRIV_TASK_ARGS_19(args_in), (args_in)[19].raw +#define FMPI_PRIV_TASK_ARGS_21(args_in) FMPI_PRIV_TASK_ARGS_20(args_in), (args_in)[20].raw +#define FMPI_PRIV_TASK_ARGS_22(args_in) FMPI_PRIV_TASK_ARGS_21(args_in), (args_in)[21].raw +#define FMPI_PRIV_TASK_ARGS_23(args_in) FMPI_PRIV_TASK_ARGS_22(args_in), (args_in)[22].raw +#define FMPI_PRIV_TASK_ARGS_24(args_in) FMPI_PRIV_TASK_ARGS_23(args_in), (args_in)[23].raw +#define FMPI_PRIV_TASK_ARGS_25(args_in) FMPI_PRIV_TASK_ARGS_24(args_in), (args_in)[24].raw +#define FMPI_PRIV_TASK_ARGS_26(args_in) FMPI_PRIV_TASK_ARGS_25(args_in), (args_in)[25].raw +#define FMPI_PRIV_TASK_ARGS_27(args_in) FMPI_PRIV_TASK_ARGS_26(args_in), (args_in)[26].raw +#define FMPI_PRIV_TASK_ARGS_28(args_in) FMPI_PRIV_TASK_ARGS_27(args_in), (args_in)[27].raw +#define FMPI_PRIV_TASK_ARGS_29(args_in) FMPI_PRIV_TASK_ARGS_28(args_in), (args_in)[28].raw +#define FMPI_PRIV_TASK_ARGS_30(args_in) FMPI_PRIV_TASK_ARGS_29(args_in), (args_in)[29].raw +#define FMPI_PRIV_TASK_ARGS_31(args_in) FMPI_PRIV_TASK_ARGS_30(args_in), (args_in)[30].raw +#define FMPI_PRIV_TASK_ARGS_32(args_in) FMPI_PRIV_TASK_ARGS_31(args_in), (args_in)[31].raw #define FMPI_PRIV_TASK_REGISTER_2(...) FMPI_PRIV_TASK_REGISTER_N(1, __VA_ARGS__) #define FMPI_PRIV_TASK_REGISTER_3(...) FMPI_PRIV_TASK_REGISTER_N(2, __VA_ARGS__) diff --git a/src/fmpi_data.c b/src/fmpi_data.c index 7132c2eb735c9759ebc66c3279a8d63872016990..a3909835efbc9174fe64a5ed88204fd2636b4c9d 100644 --- a/src/fmpi_data.c +++ b/src/fmpi_data.c @@ -49,7 +49,7 @@ struct fmpi_data fmpi_data_out_##T( \ .size = sizeof(T), \ .dim_len = {0, 0, 0}, \ .dim_cnt = 0, \ - .start = data \ + .raw = data \ }; \ } @@ -74,7 +74,7 @@ struct fmpi_data fmpi_data_##D##d_in_##T( \ .size = cnt * sizeof(T), \ .dim_len = {x, y, z}, \ .dim_cnt = (D), \ - .start = data \ + .raw = data \ }; \ } \ struct fmpi_data fmpi_data_##D##d_out_##T( \ @@ -95,7 +95,7 @@ struct fmpi_data fmpi_data_##D##d_out_##T( \ .size = cnt * sizeof(T), \ .dim_len = {x, y, z}, \ .dim_cnt = (D), \ - .start = data \ + .raw = data \ }; \ } diff --git a/src/fmpi_domain.c b/src/fmpi_domain.c index 4c8aaa4c5bf2920ea149f7b07b101f515a378568..23cab5185fc77c9b0734f709165f43d6b19551b5 100644 --- a/src/fmpi_domain.c +++ b/src/fmpi_domain.c @@ -96,7 +96,7 @@ static struct fmpi_data * fmpi_partition_block_1d( .size = size, .dim_len = {cnt, 1, 1}, .dim_cnt = 1, - .start = (char *)data->start + offset + .raw = (char *)data->raw + offset }; offset += size; } diff --git a/src/fmpi_task.c b/src/fmpi_task.c index 6ad919fd696529268d5e5b88b36964fd3b7c6444..a0147c107c1903f67ab39d56d74aa61ccfde8fa0 100644 --- a/src/fmpi_task.c +++ b/src/fmpi_task.c @@ -67,7 +67,7 @@ struct fmpi_task fmpi_task_register_sync( } //! @todo Could fmpi_futhark_new_data_async() could be called here? void * data = fmpi_futhark_new_data_sync( - ctx->fut, task.domains[i].parts[rank].start, task.domains[i].data.type.base, + ctx->fut, task.domains[i].parts[rank].raw, task.domains[i].data.type.base, task.domains[i].data.dim_cnt, task.domains[i].parts[rank].dim_len[0], task.domains[i].parts[rank].dim_len[1], @@ -78,7 +78,7 @@ struct fmpi_task fmpi_task_register_sync( "fmpi_futhark_new_data_sync() failed!" ); } - task.args.in[i].start = data; + task.args.in[i].raw = data; } ctx->tasks[ctx->task_cnt++] = task; fmpi_futhark_sync(ctx->fut); @@ -111,7 +111,7 @@ struct fmpi_task fmpi_task_register_async( continue; } void * data = fmpi_futhark_new_data_async( - ctx->fut, task.domains[i].parts[rank].start, task.domains[i].data.type.base, + ctx->fut, task.domains[i].parts[rank].raw, task.domains[i].data.type.base, task.domains[i].data.dim_cnt, task.domains[i].parts[rank].dim_len[0], task.domains[i].parts[rank].dim_len[1], @@ -122,7 +122,7 @@ struct fmpi_task fmpi_task_register_async( "fmpi_futhark_new_data_async() failed!" ); } - task.args.in[i].start = data; + task.args.in[i].raw = data; } ctx->tasks[ctx->task_cnt++] = task; return task; @@ -140,7 +140,7 @@ int fmpi_task_run_sync( fmpi_futhark_check_error(ctx->fut, "task->func"); if(task->args.out.type.derived == FMPI_TYPE_ARRAY) { void * out = fmpi_futhark_get_data_sync( - ctx->fut, task->args.out_raw, task->args.out.start, + ctx->fut, task->args.out_raw, task->args.out.raw, task->args.out.type.base, task->args.out.dim_cnt ); if(out == NULL) {