@@ -1,3 +1,14 @@ | |||||
/** | |||||
* \file imperative/src/impl/event_pool.cpp | |||||
* MegEngine is Licensed under the Apache License, Version 2.0 (the "License") | |||||
* | |||||
* Copyright (c) 2014-2021 Megvii Inc. All rights reserved. | |||||
* | |||||
* Unless required by applicable law or agreed to in writing, | |||||
* software distributed under the License is distributed on an | |||||
* "AS IS" BASIS, WITHOUT ARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. | |||||
*/ | |||||
#include "./event_pool.h" | #include "./event_pool.h" | ||||
namespace mgb { | namespace mgb { | ||||
@@ -1,3 +1,14 @@ | |||||
/** | |||||
* \file imperative/src/impl/event_pool.h | |||||
* MegEngine is Licensed under the Apache License, Version 2.0 (the "License") | |||||
* | |||||
* Copyright (c) 2014-2021 Megvii Inc. All rights reserved. | |||||
* | |||||
* Unless required by applicable law or agreed to in writing, | |||||
* software distributed under the License is distributed on an | |||||
* "AS IS" BASIS, WITHOUT ARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. | |||||
*/ | |||||
#pragma once | #pragma once | ||||
#include "megbrain/comp_node.h" | #include "megbrain/comp_node.h" | ||||
@@ -1,3 +1,14 @@ | |||||
/** | |||||
* \file imperative/src/impl/proxy_graph/common.h | |||||
* MegEngine is Licensed under the Apache License, Version 2.0 (the "License") | |||||
* | |||||
* Copyright (c) 2014-2021 Megvii Inc. All rights reserved. | |||||
* | |||||
* Unless required by applicable law or agreed to in writing, | |||||
* software distributed under the License is distributed on an | |||||
* "AS IS" BASIS, WITHOUT ARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. | |||||
*/ | |||||
namespace mgb::imperative::proxy_graph { | namespace mgb::imperative::proxy_graph { | ||||
// a "namespace" struct to simplify friend declaration, | // a "namespace" struct to simplify friend declaration, | ||||
@@ -1,3 +1,14 @@ | |||||
/** | |||||
* \file imperative/src/impl/proxy_graph/mini_graph.h | |||||
* MegEngine is Licensed under the Apache License, Version 2.0 (the "License") | |||||
* | |||||
* Copyright (c) 2014-2021 Megvii Inc. All rights reserved. | |||||
* | |||||
* Unless required by applicable law or agreed to in writing, | |||||
* software distributed under the License is distributed on an | |||||
* "AS IS" BASIS, WITHOUT ARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. | |||||
*/ | |||||
#include "megbrain/graph/operator_node.h" | #include "megbrain/graph/operator_node.h" | ||||
#include "megbrain/imperative/physical_tensor.h" | #include "megbrain/imperative/physical_tensor.h" | ||||
#include "megbrain/imperative/op_def.h" | #include "megbrain/imperative/op_def.h" | ||||
@@ -1,5 +1,20 @@ | |||||
/** | |||||
* \file imperative/src/impl/proxy_graph/proxy_graph.cpp | |||||
* MegEngine is Licensed under the Apache License, Version 2.0 (the "License") | |||||
* | |||||
* Copyright (c) 2014-2021 Megvii Inc. All rights reserved. | |||||
* | |||||
* Unless required by applicable law or agreed to in writing, | |||||
* software distributed under the License is distributed on an | |||||
* "AS IS" BASIS, WITHOUT ARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. | |||||
*/ | |||||
#include "./mini_graph.h" | #include "./mini_graph.h" | ||||
// #include "../proxy_graph.h" | |||||
#if 0 | |||||
// ../proxy_graph.h is deprecated, leave here for debug purpose | |||||
// uncomment #if 0 macro to debug | |||||
#include "../proxy_graph.h" | |||||
#endif | |||||
namespace mgb::imperative::proxy_graph { | namespace mgb::imperative::proxy_graph { | ||||
MGB_DYN_TYPE_OBJ_FINAL_IMPL(ProxyGraph::InputPlaceholder); | MGB_DYN_TYPE_OBJ_FINAL_IMPL(ProxyGraph::InputPlaceholder); | ||||
@@ -8,19 +23,21 @@ namespace mgb::imperative::proxy_graph { | |||||
} // namespace mgb::imperative::proxy_graph | } // namespace mgb::imperative::proxy_graph | ||||
namespace mgb::imperative::proxy_graph_detail { | namespace mgb::imperative::proxy_graph_detail { | ||||
std::tuple<SmallVector<LogicalTensorDesc>, bool> infer_output_attrs_fallible(const OpDef& def, | std::tuple<SmallVector<LogicalTensorDesc>, bool> infer_output_attrs_fallible(const OpDef& def, | ||||
const SmallVector<LogicalTensorDesc>& inputs) { | const SmallVector<LogicalTensorDesc>& inputs) { | ||||
auto ret = proxy_graph::ProxyGraphTypeI::inst().infer_output_attrs_fallible(def, inputs); | auto ret = proxy_graph::ProxyGraphTypeI::inst().infer_output_attrs_fallible(def, inputs); | ||||
// auto ref = ProxyGraph::get_default_graph()->infer_output_attrs_fallible(def, inputs); | |||||
// auto& [a, _1] = ret; | |||||
// auto& [b, _2] = ref; | |||||
// if (a.size() != b.size()) mgb_trap(); | |||||
// for (size_t i = 0; i < a.size(); ++i) { | |||||
// if (a[i].layout.dtype != b[i].layout.dtype) mgb_trap(); | |||||
// if (a[i].comp_node != b[i].comp_node) mgb_trap(); | |||||
// if (!a[i].layout.eq_shape(b[i].layout)) mgb_trap(); | |||||
// } | |||||
#if 0 | |||||
// delete me after the new implementation is stable | |||||
auto ref = ProxyGraph::get_default_graph()->infer_output_attrs_fallible(def, inputs); | |||||
auto& [a, _1] = ret; | |||||
auto& [b, _2] = ref; | |||||
if (a.size() != b.size()) mgb_trap(); | |||||
for (size_t i = 0; i < a.size(); ++i) { | |||||
if (a[i].layout.dtype != b[i].layout.dtype) mgb_trap(); | |||||
if (a[i].comp_node != b[i].comp_node) mgb_trap(); | |||||
if (!a[i].layout.eq_shape(b[i].layout)) mgb_trap(); | |||||
} | |||||
#endif | |||||
return ret; | return ret; | ||||
} | } | ||||
@@ -1,3 +1,14 @@ | |||||
/** | |||||
* \file imperative/src/impl/proxy_graph/proxy_graph_base.h | |||||
* MegEngine is Licensed under the Apache License, Version 2.0 (the "License") | |||||
* | |||||
* Copyright (c) 2014-2021 Megvii Inc. All rights reserved. | |||||
* | |||||
* Unless required by applicable law or agreed to in writing, | |||||
* software distributed under the License is distributed on an | |||||
* "AS IS" BASIS, WITHOUT ARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. | |||||
*/ | |||||
#include "megbrain/graph/cg.h" | #include "megbrain/graph/cg.h" | ||||
namespace mgb::imperative::proxy_graph { | namespace mgb::imperative::proxy_graph { | ||||
@@ -1,10 +1,12 @@ | |||||
/** | /** | ||||
* \file src/core/impl/imperative/tensor_sanity_check.cpp | * \file src/core/impl/imperative/tensor_sanity_check.cpp | ||||
* MegEngine is Licensed under the Apache License, Version 2.0 (the "License") | |||||
* | * | ||||
* This file is part of MegBrain, a deep learning framework developed by Megvii. | |||||
* | |||||
* \copyright Copyright (c) 2014-2021 Megvii Inc. All rights reserved. | |||||
* Copyright (c) 2014-2021 Megvii Inc. All rights reserved. | |||||
* | * | ||||
* Unless required by applicable law or agreed to in writing, | |||||
* software distributed under the License is distributed on an | |||||
* "AS IS" BASIS, WITHOUT ARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. | |||||
*/ | */ | ||||
#include "megbrain/imperative/tensor_sanity_check.h" | #include "megbrain/imperative/tensor_sanity_check.h" | ||||
@@ -127,4 +129,4 @@ std::string TensorSanityCheck::print_op(const OpDef& def){ | |||||
} | } | ||||
} // namespace imperative | } // namespace imperative | ||||
} // namespace mgb | |||||
} // namespace mgb |
@@ -1,10 +1,12 @@ | |||||
/** | /** | ||||
* \file src/core/include/megbrain/tensor_sanity_check.h | * \file src/core/include/megbrain/tensor_sanity_check.h | ||||
* MegEngine is Licensed under the Apache License, Version 2.0 (the "License") | |||||
* | * | ||||
* This file is part of MegBrain, a deep learning framework developed by Megvii. | |||||
* | |||||
* \copyright Copyright (c) 2014-2021 Megvii Inc. All rights reserved. | |||||
* Copyright (c) 2014-2021 Megvii Inc. All rights reserved. | |||||
* | * | ||||
* Unless required by applicable law or agreed to in writing, | |||||
* software distributed under the License is distributed on an | |||||
* "AS IS" BASIS, WITHOUT ARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. | |||||
*/ | */ | ||||
#include "megbrain/comp_node_env.h" | #include "megbrain/comp_node_env.h" | ||||
@@ -47,4 +49,4 @@ private: | |||||
} // namespace imperative | } // namespace imperative | ||||
} // namespace mgb | |||||
} // namespace mgb |