GMX_ASSERT(dataSize >= 0, "Trying to copy to device buffer before it was allocated.");
GMX_ASSERT(deviceStream.isValid(), "No stream is valid for copying with given atom locality.");
- wallcycle_start_nocount(wcycle_, ewcLAUNCH_GPU);
- wallcycle_sub_start(wcycle_, ewcsLAUNCH_STATE_PROPAGATOR_DATA);
int atomsStartAt, numAtomsToCopy;
std::tie(atomsStartAt, numAtomsToCopy) = getAtomRangesFromAtomLocality(atomLocality);
copyToDeviceBuffer(&d_data, reinterpret_cast<const RVec*>(&h_data.data()[atomsStartAt]),
atomsStartAt, numAtomsToCopy, deviceStream, transferKind_, nullptr);
}
-
- wallcycle_sub_stop(wcycle_, ewcsLAUNCH_STATE_PROPAGATOR_DATA);
- wallcycle_stop(wcycle_, ewcLAUNCH_GPU);
}
void StatePropagatorDataGpu::Impl::copyFromDevice(gmx::ArrayRef<gmx::RVec> h_data,
GMX_ASSERT(dataSize >= 0, "Trying to copy from device buffer before it was allocated.");
GMX_ASSERT(deviceStream.isValid(), "No stream is valid for copying with given atom locality.");
- wallcycle_start_nocount(wcycle_, ewcLAUNCH_GPU);
- wallcycle_sub_start(wcycle_, ewcsLAUNCH_STATE_PROPAGATOR_DATA);
int atomsStartAt, numAtomsToCopy;
std::tie(atomsStartAt, numAtomsToCopy) = getAtomRangesFromAtomLocality(atomLocality);
copyFromDeviceBuffer(reinterpret_cast<RVec*>(&h_data.data()[atomsStartAt]), &d_data,
atomsStartAt, numAtomsToCopy, deviceStream, transferKind_, nullptr);
}
-
- wallcycle_sub_stop(wcycle_, ewcsLAUNCH_STATE_PROPAGATOR_DATA);
- wallcycle_stop(wcycle_, ewcLAUNCH_GPU);
}
DeviceBuffer<RVec> StatePropagatorDataGpu::Impl::getCoordinates()