This is the mail archive of the gcc-patches@gcc.gnu.org mailing list for the GCC project.


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]
Other format: [Raw text]

Re: [gomp4.1 WIP] omp_target_* libgomp APIs


On Mon, Jul 13, 2015 at 10:06:24PM +0300, Ilya Verbin wrote:

> libgomp/
> 	* libgomp.h (struct gomp_device_descr): Add dev2dev_func.
> 	* target.c (omp_target_memcpy): Support device-to-device.
> 	(omp_target_memcpy_rect_worker): Likewise.
> 	(omp_target_memcpy_rect): Likewise.
> 	(gomp_load_plugin_for_device): Check for GOMP_OFFLOAD_dev2dev.
> 	* testsuite/libgomp.c/target-12.c (main): Extend for testing
> 	device-to-device memcpy.
> liboffloadmic/
> 	* plugin/libgomp-plugin-intelmic.cpp (GOMP_OFFLOAD_dev2dev): New
> 	function.
> 	* plugin/offload_target_main.cpp (__offload_target_tgt2tgt): New static
> 	function, register it in liboffloadmic.

Ok, with a small change:

> @@ -1437,10 +1449,6 @@ omp_target_memcpy_rect (void *dst, void *src, size_t element_size,
>  	src_devicep = NULL;
>      }
>  
> -  /* FIXME: Support device-to-device somehow?  */
> -  if (src_devicep != NULL && dst_devicep != NULL)
> -    return EINVAL;
> -

Please do here
  if (src_devicep != NULL && dst_devicep != NULL && src_devicep != dst_devicep)
    return EINVAL;
anyway.
No need to do all the locking and computations just to find out it will fail
anyway.

	Jakub


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]