11 #include <boost/cast.hpp> 21 template <
typename SrcTensorHandleType,
typename DstTensorHandleType>
23 std::vector<std::pair<SrcTensorHandleType*, DstTensorHandleType*>>& tensorHandlePairs)
25 const unsigned int numInputs =
static_cast<unsigned int>(descriptor.m_Inputs.size());
26 tensorHandlePairs.reserve(numInputs);
28 for (
unsigned int i = 0; i < numInputs; ++i)
30 SrcTensorHandleType*
const srcTensorHandle = boost::polymorphic_downcast<SrcTensorHandleType*>(
31 descriptor.m_Inputs[i]);
32 DstTensorHandleType*
const dstTensorHandle = boost::polymorphic_downcast<DstTensorHandleType*>(
33 descriptor.m_Outputs[i]);
35 tensorHandlePairs.emplace_back(srcTensorHandle, dstTensorHandle);
53 auto copyFunc = [](
void* dst,
const void* src,
size_t size)
55 memcpy(dst, src, size);
58 for (
const auto& pair : m_TensorHandlePairs)
#define ARMNN_SCOPED_PROFILING_EVENT(backendId, name)
void CopyTensorContentsGeneric(const ITensorHandle *srcTensor, ITensorHandle *dstTensor, CopyFunc copy)
void Execute() const override
void GatherTensorHandlePairs(const DescriptorType &descriptor, std::vector< std::pair< SrcTensorHandleType *, DstTensorHandleType *>> &tensorHandlePairs)
CopyMemGenericWorkload(const MemCopyQueueDescriptor &descriptor, const WorkloadInfo &info)