acc_memcpy_device (GNU libgomp)

### 6.33 `acc_memcpy_device` – Copy memory within a device. ¶

Description

  This function copies device memory from one memory location to another on the current device. It copies bytes bytes of data from the device address, specified by data_dev_src, to the device address data_dev_dest. The `_async` version performs the transfer asynchronously using the queue associated with async_arg.

C/C++:

  Prototype: | `void acc_memcpy_device(d_void* data_dev_dest,`
  | `d_void* data_dev_src, size_t bytes);`
  Prototype: | `void acc_memcpy_device_async(d_void* data_dev_dest,`
  | `d_void* data_dev_src, size_t bytes, int async_arg);`

Fortran:

  Interface: | `subroutine acc_memcpy_device(data_dev_dest, &`
  | `data_dev_src, bytes)`
  Interface: | `subroutine acc_memcpy_device_async(data_dev_dest, &`
  | `data_dev_src, bytes, async_arg)`
  | `type(c_ptr), value :: data_dev_dest`
  | `type(c_ptr), value :: data_dev_src`
  | `integer(c_size_t), value :: bytes`
  | `integer(acc_handle_kind), value :: async_arg`

Reference:

  OpenACC specification v2.6, section 3.2.33. OpenACC specification v3.3, section 3.2.28.