Objet : Developers list for StarPU
Archives de la liste
- From: Julian Holzmüller <h-julian@gmx.at>
- To: starpu-devel@lists.gforge.inria.fr
- Subject: [Starpu-devel] Execute on 2 OpenCL devices
- Date: Thu, 10 Oct 2013 14:51:18 +0200
- List-archive: <http://lists.gforge.inria.fr/pipermail/starpu-devel>
- List-id: "Developers list. For discussion of new features, code changes, etc." <starpu-devel.lists.gforge.inria.fr>
Hi, i have a problem with my implementation of jacobi equation.
I want to execute my program parallel on a CPU and GPU wich are 2 OpenCL devices.
Unfortunately it is only executed on one OpenCL device. The other Device is only waiting...
It looks like this (in this case only on CPU-Device): http://imageshack.us/a/img21/5926/fjrz.png
Here is my function where i submit:
int execute_on(uint32_t where, float *matrix, float *matrixTemp)
{
struct starpu_codelet cl;
starpu_data_handle_t matrixHandle, matrixTempHandle;
starpu_matrix_data_register(&matrixHandle, 0, (uintptr_t)matrix, N, N, N, sizeof(float));
starpu_matrix_data_register(&matrixTempHandle, 0, (uintptr_t)matrixTemp, N, N, N, sizeof(float));
starpu_codelet_init(&cl);
cl.where = where;
cl.cpu_funcs[0] = cpu_codelet;
cl.opencl_funcs[0] = opencl_codelet;
cl.nbuffers = 2;
cl.modes[0] = STARPU_RW,
cl.modes[1] = STARPU_RW,
cl.model = NULL;
struct starpu_task *task = starpu_task_create();
task->cl = &cl;
task->callback_func = NULL;
task->handles[0] = matrixHandle;
task->handles[1] = matrixTempHandle;
int ret = starpu_task_submit(task);
starpu_task_wait_for_all();
starpu_data_unregister(matrixHandle);
starpu_data_unregister(matrixTempHandle);
return 0;
}
my funktion call:
ret = starpu_opencl_load_opencl_from_file("jacobi.cl", &opencl_code, NULL);
STARPU_CHECK_RETURN_VALUE(ret, "starpu_opencl_load_opencl_from_file");
ret = execute_on(STARPU_OPENCL, matrix, matrixTemp);
i execute it with:
STARPU_OPENCL_ON_CPUS=1 STARPU_DISABLE_ASYNCHRONOUS_COPY=1 STARPU_DISABLE_ASYNCHRONOUS_OPENCL_COPY=1 STARPU_SCHED=dmda STARPU_GENERATE_TRACE=1 ./jacobi
What doing i wrong? How can i manage that the program will run parallel on both devices? The performance is not important at this point.
- [Starpu-devel] Execute on 2 OpenCL devices, Julian Holzmüller, 10/10/2013
- Re: [Starpu-devel] Execute on 2 OpenCL devices, Samuel Thibault, 10/10/2013
- Re: [Starpu-devel] Execute on 2 OpenCL devices, Julian Holzmüller, 10/10/2013
- Re: [Starpu-devel] Execute on 2 OpenCL devices, Samuel Thibault, 21/10/2013
- Re: [Starpu-devel] Execute on 2 OpenCL devices, Julian Holzmüller, 10/10/2013
- Re: [Starpu-devel] Execute on 2 OpenCL devices, Samuel Thibault, 10/10/2013
Archives gérées par MHonArc 2.6.19+.