#include #include #include #include "cl_simple.h" int main (int argc, char ** argv) { size_t global_work_size[3]; size_t local_work_size[3]; struct cl_simple_context context; unsigned i; int out[2]; int out_size = 2 * sizeof(int); for (i = 0; i < 3; i++) { global_work_size[i] = atoi(argv[i + 1]); local_work_size[i] = atoi(argv[i + 4]); } if (!clSimpleSimpleInit(&context, "global_id_3d")) { return EXIT_FAILURE; } if (!clSimpleSetOutputBuffer(&context, out_size)) { return EXIT_FAILURE; } if (!clSimpleEnqueueNDRangeKernel(context.command_queue, context.kernel, 3, &global_work_size, &local_work_size)) { return EXIT_FAILURE; } if (!clSimpleReadOutput(&context, out, out_size)) { return EXIT_FAILURE; } fprintf(stderr, "out[0] = %u out[1] = %u\n", out[0], out[1]); return EXIT_SUCCESS; }