|
@@ -228,7 +228,30 @@ int main(int argc, char **argv)
|
|
|
|
|
|
/* Destroy all per-worker handles */
|
|
|
for (worker = 0; worker < nworkers; worker++)
|
|
|
+ {
|
|
|
starpu_data_unregister_no_coherency(per_worker_handle[worker]);
|
|
|
+ switch(starpu_worker_get_type(worker))
|
|
|
+ {
|
|
|
+ case STARPU_CPU_WORKER:
|
|
|
+ free(per_worker[worker]);
|
|
|
+ break;
|
|
|
+#ifdef STARPU_USE_CUDA
|
|
|
+ case STARPU_CUDA_WORKER:
|
|
|
+ cudaFree(per_worker[worker]);
|
|
|
+ break;
|
|
|
+#endif /* !STARPU_USE_CUDA */
|
|
|
+#ifdef STARPU_USE_OPENCL
|
|
|
+ case STARPU_OPENCL_WORKER:
|
|
|
+ clReleaseMemObject(per_worker[worker]);
|
|
|
+ break;
|
|
|
+#endif /* !STARPU_USE_OPENCL */
|
|
|
+#ifdef STARPU_USE_GORDON
|
|
|
+ case STARPU_GORDON_WORKER: /* Not supported */
|
|
|
+#endif /* ! STARPU_USE_GORDON */
|
|
|
+ default:
|
|
|
+ STARPU_ABORT();
|
|
|
+ }
|
|
|
+ }
|
|
|
|
|
|
starpu_shutdown();
|
|
|
|