Skip to content
  • Kenneth Moreland's avatar
    Add a Transfer object for ArrayHandleVirtual · db0f5c31
    Kenneth Moreland authored
    Previously, ArrayHandleVirtual was using the default Transfer object.
    This was problematic because it would copy/allocate things in the
    execution environment independently from the array that it was wrapped
    around. This caused several negative effects, particularly for CUDA
    devices. First, if the data were already on the device (or the array is
    implicit), a second copy of the data would be made. Second, the copy to
    the device is likely less efficient. Third (and worst of all), the data
    did not always get pulled back to the original array correctly.
    
    This commit also contains instantiations of ArrayHandleVirtual and its
    components for the most common types.
    db0f5c31