diff --git a/onnxruntime/core/providers/dml/DmlExecutionProvider/src/ExecutionProvider.cpp b/onnxruntime/core/providers/dml/DmlExecutionProvider/src/ExecutionProvider.cpp index 1034b04987..7f1617855b 100644 --- a/onnxruntime/core/providers/dml/DmlExecutionProvider/src/ExecutionProvider.cpp +++ b/onnxruntime/core/providers/dml/DmlExecutionProvider/src/ExecutionProvider.cpp @@ -571,6 +571,14 @@ namespace Dml provider, true); + const size_t dataSizeInBytes = ComputeByteSizeFromTensor(dstWrapper); + THROW_HR_IF(E_INVALIDARG, dataSizeInBytes != ComputeByteSizeFromTensor(srcWrapper)); // Tensors must be the same size + + if (dataSizeInBytes == 0) + { + return onnxruntime::common::Status::OK(); + } + dataSizesInBytes.push_back(static_cast(ComputeByteSizeFromTensor(dstWrapper))); THROW_HR_IF(E_INVALIDARG, dataSizesInBytes[i] != ComputeByteSizeFromTensor(srcWrapper)); // Tensors must be the same size