From 9445a2dc03dbbfcd6de5f1f95ecfd21b1dafdfc6 Mon Sep 17 00:00:00 2001 From: Serge Panev Date: Wed, 19 Aug 2020 18:44:50 -0700 Subject: [PATCH] Backport: Change Partition API's options_map to std::unordered_map #18929 (#18964) Signed-off-by: Serge Panev --- src/c_api/c_api.cc | 5 +++-- src/c_api/c_api_symbolic.cc | 4 ++-- src/operator/subgraph/partitioner/custom_subgraph_property.h | 2 +- src/operator/subgraph/subgraph_property.h | 2 +- src/operator/subgraph/tensorrt/tensorrt-inl.h | 2 +- 5 files changed, 8 insertions(+), 7 deletions(-) diff --git a/src/c_api/c_api.cc b/src/c_api/c_api.cc index 83849408cec4..5854a686f583 100644 --- a/src/c_api/c_api.cc +++ b/src/c_api/c_api.cc @@ -28,6 +28,7 @@ #include #include #include +#include #include #include "dmlc/base.h" #include "dmlc/logging.h" @@ -1262,8 +1263,8 @@ void registerPasses(void *lib, int verbose, mxnet::ext::msgSize_t msgSize, // get pass name const char* pass_name = g.GetAttr("pass_name"); // get options - const std::vector>& options_map = - g.GetAttr>>("options_map"); + const std::unordered_map& options_map = + g.GetAttr>("options_map"); // convert options_map_ to char* to pass to backend library std::vector opt_keys, opt_vals; for (auto& kv : options_map) { diff --git a/src/c_api/c_api_symbolic.cc b/src/c_api/c_api_symbolic.cc index 29a773da0ad7..32c5b1c0de6f 100644 --- a/src/c_api/c_api_symbolic.cc +++ b/src/c_api/c_api_symbolic.cc @@ -1480,9 +1480,9 @@ int MXOptimizeForBackend(SymbolHandle sym_handle, g.attrs["in_aux_names"] = std::make_shared(aux_names); } // create a data structure from pointer array - std::vector> options_map; + std::unordered_map options_map; for (mx_uint i = 0; i < num_options; ++i) - options_map.emplace_back(keys[i], vals[i]); + options_map.emplace(keys[i], vals[i]); if (mxnet::op::SubgraphBackendRegistry::Get()->backend_map_.count(backend_name) > 0) { // use subgraph backend diff --git a/src/operator/subgraph/partitioner/custom_subgraph_property.h b/src/operator/subgraph/partitioner/custom_subgraph_property.h index b936b050cdba..f2d715b52432 100644 --- a/src/operator/subgraph/partitioner/custom_subgraph_property.h +++ b/src/operator/subgraph/partitioner/custom_subgraph_property.h @@ -189,7 +189,7 @@ class CustomSubgraphProperty: public SubgraphProperty { } void PrePartition(const nnvm::Graph& g, - const std::vector>& options_map) { + const std::unordered_map& options_map) { // clear supported_nodes to remove state from previous calls supported_nodes.clear(); // get input args and arg names diff --git a/src/operator/subgraph/subgraph_property.h b/src/operator/subgraph/subgraph_property.h index a710c5e4e668..06a7fa5f67a2 100644 --- a/src/operator/subgraph/subgraph_property.h +++ b/src/operator/subgraph/subgraph_property.h @@ -268,7 +268,7 @@ class SubgraphProperty { } virtual void PrePartition(const nnvm::Graph& g, - const std::vector>& options_map) {} + const std::unordered_map& options_map) {} virtual void PostPartition(const nnvm::Graph& g) {} diff --git a/src/operator/subgraph/tensorrt/tensorrt-inl.h b/src/operator/subgraph/tensorrt/tensorrt-inl.h index 369d7c3d397b..c5022cb2b74c 100644 --- a/src/operator/subgraph/tensorrt/tensorrt-inl.h +++ b/src/operator/subgraph/tensorrt/tensorrt-inl.h @@ -269,7 +269,7 @@ class TensorrtProperty : public SubgraphProperty { } void PrePartition(const nnvm::Graph& g, - const std::vector>& options_map) override { + const std::unordered_map& options_map) override { auto& in_arg_names = g.GetAttr>("in_arg_names"); auto& in_aux_names = g.GetAttr>("in_aux_names"); NDArray **in_args_ptr = g.GetAttr("in_args");