diff --git a/cmake/external/lite.cmake b/cmake/external/lite.cmake index 09be60ab4784408d0c2b9b73e6f2477089e9dcac..9e26cd4fa2dfe17e407ee05892d535c8c3d6d7ef 100644 --- a/cmake/external/lite.cmake +++ b/cmake/external/lite.cmake @@ -36,7 +36,7 @@ if (NOT LITE_SOURCE_DIR OR NOT LITE_BINARY_DIR) set(LITE_INSTALL_DIR ${THIRD_PARTY_PATH}/install/lite) if(NOT LITE_GIT_TAG) - set(LITE_GIT_TAG 68e64e0eb74cdd13383ae78caf889973499ebd14) + set(LITE_GIT_TAG d3a3a6931b6d22d504d21ba32b3ae972770e9204) endif() if(NOT CUDA_ARCH_NAME) diff --git a/paddle/fluid/inference/analysis/ir_passes/lite_subgraph_pass.cc b/paddle/fluid/inference/analysis/ir_passes/lite_subgraph_pass.cc index 2c454893a620360d33a790dc78bd4f33995c4632..4402d5c595a2370d7d6c451c8f051d18d239d207 100644 --- a/paddle/fluid/inference/analysis/ir_passes/lite_subgraph_pass.cc +++ b/paddle/fluid/inference/analysis/ir_passes/lite_subgraph_pass.cc @@ -272,6 +272,8 @@ void LiteSubgraphPass::SetUpEngine( paddle::lite_api::Place({target_type, PRECISION(kInt64)}), paddle::lite_api::Place({target_type, PRECISION(kFloat)}), paddle::lite_api::Place({TARGET(kHost), PRECISION(kFloat)}), + paddle::lite_api::Place({TARGET(kX86), precision_type}), + paddle::lite_api::Place({TARGET(kX86), PRECISION(kFloat)}), }; config.cpu_math_library_num_threads = cpu_math_library_num_threads; config.xpu_l3_workspace_size = xpu_l3_workspace_size; diff --git a/paddle/fluid/inference/lite/tensor_utils.cc b/paddle/fluid/inference/lite/tensor_utils.cc index f108e7d3651ca42fc673523e8a9d5f7d2032ded2..bad4b7e50a71df8638f81be9f286ff051486bcbb 100644 --- a/paddle/fluid/inference/lite/tensor_utils.cc +++ b/paddle/fluid/inference/lite/tensor_utils.cc @@ -185,10 +185,8 @@ void InitDstTensor(paddle::lite_api::Tensor* dst, void InitDstTensor(framework::LoDTensor* dst, const paddle::lite_api::Tensor& src) { - constexpr framework::proto::VarType::Type dtype = - framework::proto::VarType_Type_FP32; dst->mutable_data(inference::lite::utils::GetNativePlace(src.target()), - dtype); + GetNativePrecisionType(src.precision())); SetLoD(dst->mutable_lod(), src.lod()); } @@ -244,17 +242,17 @@ void TensorDataShare(paddle::lite_api::Tensor* dst, framework::LoDTensor* src) { template <> void TensorDataShare(framework::LoDTensor* dst, paddle::lite_api::Tensor* src) { - constexpr framework::proto::VarType::Type dtype = - framework::proto::VarType_Type_FP32; void* src_raw_data = - GetLiteTensorDataPtr(src, GetLitePrecisionType(dtype), src->target()); - size_t memory_size = GetLiteTensorNumel(*src) * sizeof(float); + GetLiteTensorDataPtr(src, src->precision(), src->target()); + size_t memory_size = + GetLiteTensorNumel(*src) * + framework::SizeOfType(GetNativePrecisionType(src->precision())); std::shared_ptr holder( new memory::allocation::Allocation(src_raw_data, memory_size, GetNativePlace(src->target()))); dst->Resize(paddle::framework::make_ddim(src->shape())); SetLoD(dst->mutable_lod(), src->lod()); - dst->ResetHolderWithType(holder, dtype); + dst->ResetHolderWithType(holder, GetNativePrecisionType(src->precision())); } } // namespace utils