void free_buffer (void * buffer, enum accel_type type) { switch (type) { case none: free(buffer); break; case managed: case cuda: #ifdef _ENABLE_CUDA_ cudaFree(buffer); #endif break; case openacc: #ifdef _ENABLE_OPENACC_ acc_free(buffer); #endif break; } /* Free dummy compute related resources */ if (is_alloc) { if (options.target == cpu) { free_host_arrays(); } #ifdef _ENABLE_CUDA_KERNEL_ else if (options.target == gpu || options.target == both) { free_host_arrays(); free_device_arrays(); } #endif } is_alloc = 0; }
void free_buffer (void * buffer, enum accel_type type) { switch (type) { case none: free(buffer); break; case managed: case cuda: #ifdef _ENABLE_CUDA_ cudaFree(buffer); #endif break; case openacc: #ifdef _ENABLE_OPENACC_ acc_free(buffer); #endif break; } /* Free dummy compute related resources */ if (cpu == options.target || both == options.target) { free_host_arrays(); } if (gpu == options.target || both == options.target) { #ifdef _ENABLE_CUDA_KERNEL_ free_device_arrays(); #endif /* #ifdef _ENABLE_CUDA_KERNEL_ */ } }