diff --git a/core/compiler.cpp b/core/compiler.cpp index be0dc895d8..b85b026623 100644 --- a/core/compiler.cpp +++ b/core/compiler.cpp @@ -150,13 +150,16 @@ torch::jit::script::Module CompileGraph(const torch::jit::script::Module& mod, torch::jit::script::Module new_mod(mod._ivalue()->name() + "_trt"); std::vector> graphs; for (const torch::jit::script::Method& method : mod.get_methods()) { - auto engine = ConvertGraphToTRTEngine(mod, method.name(), cfg); - auto new_g = std::make_shared(); - AddEngineToGraph(new_mod, new_g, engine); - auto new_method = new_mod._ivalue()->compilation_unit()->create_function(method.name(), new_g); - auto schema = GenerateGraphSchema(new_mod, new_method->name(), new_g); - new_mod.type()->addMethod(new_method); - new_method->setSchema(schema); + // Don't convert hidden methods + if (method.name().rfind("_", 0)) { + auto engine = ConvertGraphToTRTEngine(mod, method.name(), cfg); + auto new_g = std::make_shared(); + AddEngineToGraph(new_mod, new_g, engine); + auto new_method = new_mod._ivalue()->compilation_unit()->create_function(method.name(), new_g); + auto schema = GenerateGraphSchema(new_mod, new_method->name(), new_g); + new_mod.type()->addMethod(new_method); + new_method->setSchema(schema); + } } return new_mod; diff --git a/core/conversion/conversion.cpp b/core/conversion/conversion.cpp index fc4e75ca88..c524e44245 100644 --- a/core/conversion/conversion.cpp +++ b/core/conversion/conversion.cpp @@ -190,6 +190,57 @@ void AddParamsToCtxValueMap(ConversionCtx* ctx, GraphParams& params) { } } +void MapIValues(ConversionCtx* ctx, c10::ArrayRef in_list, c10::ArrayRef out_list, int64_t in_offset, int64_t out_offset) { + std::vector> input_output_pairs; + std::transform(in_list.begin() + in_offset, in_list.end(), out_list.begin() + out_offset, + std::back_inserter(input_output_pairs), + [](auto in, auto out){ + return std::make_pair(in, out); + }); + + for (auto p : input_output_pairs) { + auto input = ctx->evaluated_value_map[p.first]; + ctx->evaluated_value_map[p.second] = torch::jit::IValue(input); + } +} + +// TODO: With functionalization pass we may be able to make this into a regular evaluator later +void EvaluateLoopBlock(ConversionCtx* ctx, const torch::jit::Node* n) { + auto max_trip_count = ctx->evaluated_value_map[n->input(0)]; + auto start_cond = ctx->evaluated_value_map[n->input(1)]; + ctx->evaluated_value_map[n->blocks()[0]->inputs()[0]] = torch::jit::IValue(0); + auto trip_count = ctx->evaluated_value_map[n->blocks()[0]->inputs()[0]]; + + MapIValues(ctx, n->inputs(), n->outputs(), 2, 0); + + LOG_DEBUG("(Loop Evaluation) Evaluating loop " << *n); + LOG_DEBUG("(Loop Evaluation) Max Trip Count: " << max_trip_count.toInt()); + LOG_DEBUG("(Loop Evaluation) Start Condition: " << start_cond.toBool()); + LOG_DEBUG("(Loop Evaluation) Current Trip Count: " << trip_count.toInt()); + + while (start_cond.toBool() && trip_count.toInt() < max_trip_count.toInt()) { + MapIValues(ctx, n->outputs(), n->blocks()[0]->inputs(), 0, 1); + for (auto bn : n->blocks()[0]->nodes()) { + auto eval = EvaluateNode(ctx, bn); + if (eval) { + if (!eval.value().isTensor()) { + LOG_DEBUG(ctx->logger, "(Loop Evaluation) Found the value to be: " << eval.value()); + } else { + LOG_DEBUG(ctx->logger, "(Loop Evaluation) Found the value to be a tensor (shape " << eval.value().toTensor().sizes() << ')'); + } + ctx->AssociateValueAndIValue(bn->output(0), eval.value()); + } + } + + MapIValues(ctx, n->blocks()[0]->outputs(), n->outputs(), 1, 0); + start_cond = ctx->evaluated_value_map[n->blocks()[0]->outputs()[0]]; + auto new_trip_count = torch::jit::IValue(trip_count.toInt() + 1); + trip_count.swap(new_trip_count); + LOG_DEBUG("(Loop Evaluation) Condition: " << start_cond.toBool()); + LOG_DEBUG("(Loop Evaluation) Current Trip Count: " << trip_count.toInt()); + } +} + void ConvertBlockToNetDef(ConversionCtx* ctx, const torch::jit::Block* b, ConversionInfo build_info, GraphParams& static_params) { LOG_INFO(ctx->logger, "Converting Block"); @@ -202,7 +253,19 @@ void ConvertBlockToNetDef(ConversionCtx* ctx, const torch::jit::Block* b, Conver for (const auto n : nodes) { bool to_eval = evaluators::shouldEvalAtConversionTime(n); bool blacklisted = isNodeConversionBlacklisted(n); - if (!to_eval && !blacklisted) { + if (n->kind() == torch::jit::prim::Loop) { + EvaluateLoopBlock(ctx, n); + } else if (to_eval) { + auto eval = EvaluateNode(ctx, n); + if (eval) { + if (!eval.value().isTensor()) { + LOG_DEBUG(ctx->logger, "Found the value to be: " << eval.value()); + } else { + LOG_DEBUG(ctx->logger, "Found the value to be a tensor (shape " << eval.value().toTensor().sizes() << ')'); + } + ctx->AssociateValueAndIValue(n->output(0), eval.value()); + } + } else if (!blacklisted) { // Should error out if something fails AddLayer(ctx, n); } else { @@ -237,22 +300,29 @@ std::string ConvertBlockToEngine(const torch::jit::Block* b, ConversionInfo buil return engine; } -bool VerifyConverterSupportForBlock(const torch::jit::Block* b) { - bool supported = true; +std::set GetUnsupportedOpsInBlock(const torch::jit::Block* b ) { std::set unsupported_ops; for (const auto n : b->nodes()) { - if (!OpSupported(n)) { + if (!OpSupported(n) && n->kind() != torch::jit::prim::Loop) { auto schema = n->maybeSchema(); TRTORCH_CHECK(schema, "Unable to get schema for Node " << util::node_info(n) \ << " (conversion.VerifyCoverterSupportForBlock"); std::stringstream ss; ss << *schema; unsupported_ops.insert(ss.str()); - supported = false; + } + for (const auto sub_b : n->blocks()) { + auto sub_b_unsupported_ops = GetUnsupportedOpsInBlock(sub_b); + unsupported_ops.insert(sub_b_unsupported_ops.begin(), sub_b_unsupported_ops.end()); } } + return unsupported_ops; +} + +bool VerifyConverterSupportForBlock(const torch::jit::Block* b) { + auto unsupported_ops = GetUnsupportedOpsInBlock(b); - if (!supported) { + if (unsupported_ops.size() != 0) { std::stringstream unsupported_msg; unsupported_msg << "Method requested cannot be compiled by TRTorch.\nUnsupported operators listed below:" << std::endl; for (auto s : unsupported_ops) { @@ -261,8 +331,10 @@ bool VerifyConverterSupportForBlock(const torch::jit::Block* b) { unsupported_msg << "You can either implement converters for these ops in your application or request implementation" << std::endl; unsupported_msg << "https://www.github.com/nvidia/TRTorch/issues" << std::endl; LOG_ERROR(unsupported_msg.str()); + return false; + } else { + return true; } - return supported; } } // namespace conversion diff --git a/core/conversion/conversion_blacklist.cpp b/core/conversion/conversion_blacklist.cpp index b954d95b0f..01b49c469b 100644 --- a/core/conversion/conversion_blacklist.cpp +++ b/core/conversion/conversion_blacklist.cpp @@ -15,6 +15,7 @@ const std::unordered_set& get_non_convertable_nodes() { "aten::backward", "aten::save", "aten::contiguous", + "aten::to", "prim::RaiseException", "prim::Print", "prim::device", diff --git a/core/conversion/converters/BUILD b/core/conversion/converters/BUILD index d238e52831..7ac888c8f9 100644 --- a/core/conversion/converters/BUILD +++ b/core/conversion/converters/BUILD @@ -25,7 +25,6 @@ cc_library( "impl/matrix_multiply.cpp", "impl/pooling.cpp", "impl/reduce.cpp", - "impl/shape.cpp", "impl/shuffle.cpp", "impl/softmax.cpp", "impl/unary.cpp", diff --git a/core/conversion/converters/impl/shape.cpp b/core/conversion/converters/impl/shape.cpp deleted file mode 100644 index 613ce43fe9..0000000000 --- a/core/conversion/converters/impl/shape.cpp +++ /dev/null @@ -1,32 +0,0 @@ -#include "core/conversion/converters/converters.h" - -#include "torch/torch.h" - -namespace trtorch { -namespace core { -namespace conversion { -namespace converters { -namespace impl { -namespace { - -static auto shape_registrations TRTORCH_UNUSED = RegisterNodeConversionPatterns() - .pattern({ - // To use in static input size cases (explicit batch) - "aten::size.int(Tensor self, int dim) -> (Tensor)", - [](ConversionCtx* ctx, const torch::jit::Node* n, args& args) -> bool { - auto in = args[0].ITensor(); - auto in_shape = util::toVec(in->getDimensions()); - - auto size = in_shape[args[1].unwrapToInt()]; - - ctx->AssociateValueAndIValue(n->outputs()[0], size); - LOG_DEBUG("Output Value: " << size); - return true; - } - }); -} // namespace -} // namespace impl -} // namespace converters -} // namespace conversion -} // namespace core -} // namespace trtorch diff --git a/core/conversion/evaluators/BUILD b/core/conversion/evaluators/BUILD index e4ada604d1..38bb7bb0d3 100644 --- a/core/conversion/evaluators/BUILD +++ b/core/conversion/evaluators/BUILD @@ -15,6 +15,7 @@ cc_library( srcs = [ "NodeEvaluatorRegistry.cpp", "prim.cpp", + "aten.cpp" ], deps = [ "//core/util:prelude", diff --git a/core/conversion/evaluators/NodeEvaluatorRegistry.cpp b/core/conversion/evaluators/NodeEvaluatorRegistry.cpp index 55b5b66bfc..b264bf647b 100644 --- a/core/conversion/evaluators/NodeEvaluatorRegistry.cpp +++ b/core/conversion/evaluators/NodeEvaluatorRegistry.cpp @@ -15,27 +15,59 @@ namespace core { namespace conversion { namespace evaluators { namespace { -using EvaluatorLUT = std::unordered_map; +using EvaluatorLUT = std::unordered_map; + +bool FindInVec(std::vector& names, c10::OperatorName target) { + for (auto n : names) { + if (n == target) { + return true; + } + } + return false; +} class NodeEvaluatorRegistry { public: - void RegisterEvaluator(torch::jit::NodeKind node_kind, NodeEvaluator& evaluator) { + void RegisterEvaluator(torch::jit::NodeKind node_kind, EvalRegistration eval_reg) { LOG_DEBUG("Registering evaluator for " << node_kind.toQualString()); - evaluator_lut_[node_kind] = std::move(evaluator); + evaluator_lut_[node_kind] = std::move(eval_reg); } - NodeEvaluator GetEvaluator(const torch::jit::NodeKind node_kind) { + NodeEvaluator FindEvaluator(const torch::jit::Node* n) { + auto node_kind = n->kind(); auto iter = evaluator_lut_.find(node_kind); if (iter == evaluator_lut_.end()) { - LOG_ERROR("Requested evaluator for " << node_kind.toQualString() << ", but no such evaluator was found"); return nullptr; } - return iter->second; + auto eval_reg = iter->second; + if (eval_reg.options.use()) { + for (auto o : n->outputs()) { + if (eval_reg.options.blacklisted_output_types.find(o->type()) != eval_reg.options.blacklisted_output_types.end()) { + return nullptr; + } + } + + if (eval_reg.options.valid_schemas.size() != 0) { + auto schema = n->maybeSchema(); + TRTORCH_CHECK(schema, "Evaluator for " << node_kind.toQualString() << "only runs on certain schemas, but schema for node is not retrievable"); + if (!FindInVec(eval_reg.options.valid_schemas, schema->operator_name())) { + return nullptr; + } + } + } + + return eval_reg.evaluator; + } + + NodeEvaluator GetEvaluator(const torch::jit::Node* n) { + auto evaluator = FindEvaluator(n); + TRTORCH_CHECK(evaluator, "Requested evaluator for " << n->kind().toQualString() << ", but no such evaluator was found"); + return evaluator; } bool EvalAtConversionTime(const torch::jit::Node* n) { - auto eval_at_conversion = evaluator_lut_.find(n->kind()); - if (eval_at_conversion == evaluator_lut_.end()) { + auto evaluator = FindEvaluator(n); + if (evaluator == nullptr) { return false; } else { return true; @@ -58,16 +90,16 @@ bool shouldEvalAtConversionTime(const torch::jit::Node* n) { } c10::optional EvalNode(const torch::jit::Node* n, kwargs& args) { - auto evaluator = get_evaluator_registry().GetEvaluator(n->kind()); + auto evaluator = get_evaluator_registry().GetEvaluator(n); return evaluator(n, args); } -void register_node_evaluator(torch::jit::NodeKind node_kind, NodeEvaluator evaluator) { - get_evaluator_registry().RegisterEvaluator(node_kind, evaluator); +void register_node_evaluator(torch::jit::NodeKind node_kind, EvalRegistration eval_reg) { + get_evaluator_registry().RegisterEvaluator(node_kind, std::move(eval_reg)); } void register_node_evaluator(EvalRegistration r) { - register_node_evaluator(r.kind, r.evaluator); + register_node_evaluator(r.kind, std::move(r)); } RegisterNodeEvaluators&& RegisterNodeEvaluators::evaluator(EvalRegistration r) && { diff --git a/core/conversion/evaluators/aten.cpp b/core/conversion/evaluators/aten.cpp new file mode 100644 index 0000000000..860b564ac4 --- /dev/null +++ b/core/conversion/evaluators/aten.cpp @@ -0,0 +1,180 @@ +#include "torch/csrc/jit/ir/ir.h" +#include "torch/csrc/jit/ir/constants.h" +#include "ATen/core/functional.h" +#include "ATen/core/ivalue.h" +#include "ATen/core/List.h" +#include "ATen/core/stack.h" +#include "c10/util/intrusive_ptr.h" +#include "torch/torch.h" + +#include "core/conversion/evaluators/evaluators.h" + +namespace trtorch { +namespace core { +namespace conversion { +namespace evaluators { +namespace { + + +int64_t normalizeIndex(int64_t idx, int64_t list_size) { + if (idx < 0) { + // Handle negative indexing + idx = list_size + idx; + } + return idx; +} + +auto aten_registrations = RegisterNodeEvaluators() + .evaluator({ + c10::Symbol::fromQualString("aten::zeros"), + // aten::zeros(int[] size, *, int? dtype=None, int? layout=None, Device? device=None, bool? pin_memory=None) -> (Tensor) + [](const torch::jit::Node* n, kwargs& args) -> c10::optional { + auto options = torch::TensorOptions() + .dtype(c10::ScalarType(args.at(n->output(1)).unwrapToInt())) + .layout(torch::kStrided) + .device(torch::kCUDA); + + auto out_tensor = torch::zeros(args.at(n->input(0)).unwrapToIntList().vec(), options); + return out_tensor; + } + }).evaluator({ + c10::Symbol::fromQualString("aten::add"), + [](const torch::jit::Node* n, kwargs& args) -> c10::optional { + auto a = args.at(n->input(0)).unwrapToInt(); + auto b = args.at(n->input(1)).unwrapToInt(); + return a + b; + }, + EvalOptions().validSchemas({"aten::add.int(int a, int b) -> (int)"}) + }).evaluator({ + c10::Symbol::fromQualString("aten::mul"), + [](const torch::jit::Node* n, kwargs& args) -> c10::optional { + auto a = args.at(n->input(0)).unwrapToInt(); + auto b = args.at(n->input(1)).unwrapToInt(); + return a * b; + }, + EvalOptions().validSchemas({"aten::mul.int(int a, int b) -> (int)"}) + }).evaluator({ + c10::Symbol::fromQualString("aten::sub"), + [](const torch::jit::Node* n, kwargs& args) -> c10::optional { + auto a = args.at(n->input(0)).unwrapToInt(); + auto b = args.at(n->input(1)).unwrapToInt(); + return a - b; + }, + EvalOptions().validSchemas({"aten::sub.int(int a, int b) -> (int)"}) + }).evaluator({ + c10::Symbol::fromQualString("aten::__round_to_zero_floordiv"), + [](const torch::jit::Node* n, kwargs& args) -> c10::optional { + auto a = args.at(n->input(0)).unwrapToInt(); + auto b = args.at(n->input(1)).unwrapToInt(); + return a / b; + }, + EvalOptions().validSchemas({"aten::__round_to_zero_floordiv(int a, int b) -> (int)"}) + }).evaluator({ + c10::Symbol::fromQualString("aten::slice"), + [](const torch::jit::Node* n, kwargs& args) -> c10::optional { + c10::List list = args.at(n->input(0)).IValue()->to>(); + int64_t start = args.at(n->input(1)).unwrapToInt(); + int64_t end = args.at(n->input(2)).unwrapToInt(); + int64_t step = args.at(n->input(3)).unwrapToInt(); + + const int64_t list_size = list.size(); + + // clamp start and end to the bounds of the list + const auto normalized_start = + std::max((int64_t)0, normalizeIndex(start, list_size)); + const auto normalized_end = + std::min(list_size, normalizeIndex(end, list_size)); + + auto sliced_list = c10::impl::GenericList(list.elementType()); + if (normalized_end <= normalized_start) { + // early exit if the slice is trivially empty + return sliced_list; + } + + sliced_list.reserve(normalized_end - normalized_start); + + for (auto i = normalized_start; i < normalized_end;) { + sliced_list.push_back(list.get(i)); + i += step; + } + + return sliced_list; + }, + EvalOptions().validSchemas({"aten::slice.t(t[] l, int start, int end=9223372036854775807, int step=1) -> (t[])"}) + }).evaluator({ + c10::Symbol::fromQualString("aten::len"), + [](const torch::jit::Node* n, kwargs& args) -> c10::optional { + c10::List list = args.at(n->input(0)).IValue()->to>(); + return static_cast(list.size()); + }, + EvalOptions().validSchemas({"aten::len.t(t[] a) -> (int)"}) + }).evaluator({ + c10::Symbol::fromQualString("aten::size"), + [](const torch::jit::Node* n, kwargs& args) -> c10::optional { + LOG_WARNING("There may be undefined behavior using dynamic shape and aten::size"); + auto tensor_var = args.at(n->input(0)); + if (n->inputs().size() == 1) { + if (tensor_var.isITensor()) { + auto tensor = tensor_var.ITensor(); + return util::toVec(tensor->getDimensions()); + } else { + auto tensor = tensor_var.unwrapToTensor(); + return tensor.sizes(); + } + } else { + auto dim = args.at(n->input(1)).unwrapToInt(); + if (tensor_var.isITensor()) { + auto tensor = tensor_var.ITensor(); + return util::toVec(tensor->getDimensions())[dim]; + } else { + auto tensor = tensor_var.unwrapToTensor(); + return tensor.sizes()[dim]; + } + } + }, + EvalOptions().validSchemas({ + "aten::size(Tensor self) -> (int[])", + "aten::size.int(Tensor self, int dim) -> (int)" + }) + }).evaluator({ + c10::Symbol::fromQualString("aten::__getitem__"), + [](const torch::jit::Node* n, kwargs& args) -> c10::optional { + auto list = args.at(n->input(0)).unwrapToIntList(); + auto idx = args.at(n->input(1)).unwrapToInt(); + + const int64_t list_size = list.size(); + const int64_t normalized_idx = normalizeIndex(idx, list_size); + TRTORCH_CHECK(normalized_idx >= 0 || normalized_idx < list_size, "List index out of range (aten::__getitem__)"); + return list.get(normalized_idx); + }, + EvalOptions().validSchemas({ + "aten::__getitem__.t(t[](a) list, int idx) -> (t(*))", + }) + }).evaluator({ + c10::Symbol::fromQualString("aten::append"), + [](const torch::jit::Node* n, kwargs& args) -> c10::optional { + auto list = args.at(n->input(0)).unwrapToIntList(); + auto el = args.at(n->input(1)).unwrapToInt(); + + list.push_back(std::move(el)); + return list; + }, + EvalOptions().validSchemas({ + "aten::append.t(t[](a!) self, t(c -> *) el) -> (t[](a!))", + }) + }).evaluator({ + c10::Symbol::fromQualString("aten::neg"), + [](const torch::jit::Node* n, kwargs& args) -> c10::optional { + auto el = args.at(n->input(1)).unwrapToInt(); + + return el * -1; + }, + EvalOptions().validSchemas({ + "aten::neg.int(int a) -> (int)", + }) + }); +} +} // namespace evaluators +} // namespace conversion +} // namespace core +} // namespace trtorch diff --git a/core/conversion/evaluators/evaluators.h b/core/conversion/evaluators/evaluators.h index a80746c13a..5f9942129d 100644 --- a/core/conversion/evaluators/evaluators.h +++ b/core/conversion/evaluators/evaluators.h @@ -35,9 +35,36 @@ inline bool constTypesOnly(kwargs& args) { // when writing evaluators typedef std::function(const torch::jit::Node*, kwargs&)> NodeEvaluator; +struct EvalOptions { + std::set blacklisted_output_types; + std::vector valid_schemas; + EvalOptions() = default; + EvalOptions& blacklistOutputTypes(std::set types) { + use_options = true; + blacklisted_output_types = types; + return *this; + } + EvalOptions& validSchemas(std::set schemas) { + use_options = true; + for (auto s : schemas) { + valid_schemas.push_back(torch::jit::parseSchema(s).operator_name()); + } + return *this; + } + bool use() { return use_options; } + private: + bool use_options = false; +}; + struct EvalRegistration { torch::jit::NodeKind kind; NodeEvaluator evaluator; + EvalOptions options; + EvalRegistration() = default; + EvalRegistration(torch::jit::NodeKind _kind, NodeEvaluator _evaluator) + : kind(_kind), evaluator(_evaluator), options(EvalOptions()) {}; + EvalRegistration(torch::jit::NodeKind _kind, NodeEvaluator _evaluator, EvalOptions _options) + : kind(_kind), evaluator(_evaluator), options(_options) {}; }; c10::optional EvalNode(const torch::jit::Node* n, kwargs& args); diff --git a/core/conversion/evaluators/prim.cpp b/core/conversion/evaluators/prim.cpp index fad717fed2..dddd4c304a 100644 --- a/core/conversion/evaluators/prim.cpp +++ b/core/conversion/evaluators/prim.cpp @@ -1,3 +1,5 @@ +#include + #include "torch/csrc/jit/ir/ir.h" #include "torch/csrc/jit/ir/constants.h" #include "ATen/core/functional.h" @@ -5,6 +7,7 @@ #include "ATen/core/List.h" #include "ATen/core/stack.h" #include "c10/util/intrusive_ptr.h" +#include "torch/torch.h" #include "core/conversion/evaluators/evaluators.h" @@ -23,6 +26,11 @@ auto prim_registrations = RegisterNodeEvaluators() } return torch::jit::toIValue(n->output()); } + }).evaluator({ + torch::jit::prim::NumToTensor, + [](const torch::jit::Node* n, kwargs& args) -> c10::optional { + return at::scalar_to_tensor(args.at(n->output(0)).IValue()->toScalar()); + } }).evaluator({ torch::jit::prim::ListConstruct, [](const torch::jit::Node* n, kwargs& args) -> c10::optional { @@ -86,6 +94,37 @@ auto prim_registrations = RegisterNodeEvaluators() return c10::optional(std::move(torch::jit::IValue(list))); } } + }).evaluator({ + c10::Symbol::fromQualString("prim::min"), + [](const torch::jit::Node* n, kwargs& args) -> c10::optional { + auto a = args.at(n->input(0)).unwrapToIntList(); + int64_t min = std::numeric_limits::max(); + + for (size_t i = 0; i < a.size(); i++) { + if (a[i] < min) { + min = a[i]; + } + } + + return min; + }, + EvalOptions().validSchemas({"prim::min.self_int(int[] self) -> (int)"}) + }).evaluator({ + c10::Symbol::fromQualString("prim::shape"), + [](const torch::jit::Node* n, kwargs& args) -> c10::optional { + LOG_WARNING("There may be undefined behavior using dynamic shape and prim::shape"); + auto tensor_var = args.at(n->input(0)); + if (tensor_var.isITensor()) { + auto tensor = tensor_var.ITensor(); + return util::toVec(tensor->getDimensions()); + } else { + auto tensor = tensor_var.unwrapToTensor(); + return tensor.sizes(); + } + }, + EvalOptions().validSchemas({ + "prim::shape(Tensor a) -> (int[])" + }) }); } } // namespace evaluators diff --git a/core/lowering/lowering.cpp b/core/lowering/lowering.cpp index 445122041a..3424a2ea97 100644 --- a/core/lowering/lowering.cpp +++ b/core/lowering/lowering.cpp @@ -1,10 +1,13 @@ +#include "torch/csrc/jit/passes/common_subexpression_elimination.h" #include "torch/csrc/jit/passes/dead_code_elimination.h" #include "torch/csrc/jit/passes/fuse_linear.h" #include "torch/csrc/jit/passes/freeze_module.h" +#include "torch/csrc/jit/passes/guard_elimination.h" +#include "torch/csrc/jit/passes/loop_unrolling.h" #include "torch/csrc/jit/passes/lower_graph.h" #include "torch/csrc/jit/passes/lower_tuples.h" +#include "torch/csrc/jit/passes/peephole.h" #include "torch/csrc/jit/passes/quantization.h" -#include "torch/csrc/jit/passes/guard_elimination.h" #include "core/util/prelude.h" #include "core/lowering/lowering.h" @@ -22,6 +25,7 @@ void LowerBlock(torch::jit::Block* b) { void LowerGraph(std::shared_ptr& g) { torch::jit::EliminateRedundantGuards(g); + torch::jit::PeepholeOptimize(g, false); passes::EliminateExceptionOrPassPattern(g); torch::jit::FuseLinear(g); torch::jit::LowerAllTuples(g); @@ -29,11 +33,14 @@ void LowerGraph(std::shared_ptr& g) { passes::RemoveDropout(g); passes::FuseFlattenLinear(g); passes::Conv2DToConvolution(g); + passes::FuseAddMMBranches(g); + torch::jit::EliminateCommonSubexpression(g); + torch::jit::UnrollLoops(g); + torch::jit::EliminateCommonSubexpression(g); passes::UnpackAddMM(g); //passes::UnpackBatchNorm(g); passes::UnpackLogSoftmax(g); - //passes::RemoveDimExeception(g); - //irfusers::UnpackBatchNorm(g); + passes::RemoveTo(g); torch::jit::EliminateDeadCode(g); LOG_GRAPH(*g); } diff --git a/core/lowering/passes/BUILD b/core/lowering/passes/BUILD index 9955b08da2..67cebf2502 100644 --- a/core/lowering/passes/BUILD +++ b/core/lowering/passes/BUILD @@ -15,9 +15,11 @@ cc_library( srcs = [ "conv2d_to_convolution.cpp", "exception_elimination.cpp", + "fuse_addmm_branches.cpp", "fuse_flatten_linear.cpp", "remove_contiguous.cpp", "remove_dropout.cpp", + "remove_to.cpp", "unpack_addmm.cpp", "unpack_batch_norm.cpp", "unpack_log_softmax.cpp", diff --git a/core/lowering/passes/conv2d_to_convolution.cpp b/core/lowering/passes/conv2d_to_convolution.cpp index a6f34171aa..b2ae76dd7f 100644 --- a/core/lowering/passes/conv2d_to_convolution.cpp +++ b/core/lowering/passes/conv2d_to_convolution.cpp @@ -14,10 +14,9 @@ void Conv2DToConvolution(std::shared_ptr& graph) { return (%4))IR"; std::string convolution_pattern = R"IR( graph(%x, %w, %b, %s, %p, %d, %g): - %1 : bool = prim::Constant[value=1]() + %1 : bool = prim::Constant[value=0]() %2 : int[] = prim::Constant[value=[0, 0]]() - %3 : bool = prim::Constant[value=0]() - %4 : Tensor = aten::_convolution(%x, %w, %b, %s, %p, %d, %1, %2, %g, %1, %1, %3) + %4 : Tensor = aten::_convolution(%x, %w, %b, %s, %p, %d, %1, %2, %g, %1, %1, %1) return (%4))IR";; // replace matmul + add pattern to linear diff --git a/core/lowering/passes/exception_elimination.cpp b/core/lowering/passes/exception_elimination.cpp index 1f9fb35a65..a02cfc7ac9 100644 --- a/core/lowering/passes/exception_elimination.cpp +++ b/core/lowering/passes/exception_elimination.cpp @@ -64,7 +64,7 @@ struct ExceptionOrPassPatternElimination { for (auto it = b->nodes().begin(); it != b->nodes().end(); it++) { auto n = *it; if (n->kind() == prim::If && isExceptionOrPassNode(n)) { - LOG_GRAPH("Found that node " << *n << " is an exception or pass node (EliminateChecks)"); + LOG_GRAPH("Found that node " << *n << " is an exception or pass node (EliminateChecks)" << std::endl); it.destroyCurrent(); } } diff --git a/core/lowering/passes/fuse_addmm_branches.cpp b/core/lowering/passes/fuse_addmm_branches.cpp new file mode 100644 index 0000000000..849e119197 --- /dev/null +++ b/core/lowering/passes/fuse_addmm_branches.cpp @@ -0,0 +1,100 @@ +#include "torch/csrc/jit/passes/guard_elimination.h" +#include "torch/csrc/jit/ir/alias_analysis.h" +#include "torch/csrc/jit/jit_log.h" +#include "torch/csrc/jit/passes/constant_propagation.h" +#include "torch/csrc/jit/passes/peephole.h" +#include "torch/csrc/jit/runtime/graph_executor.h" +#include "torch/csrc/jit/passes/dead_code_elimination.h" + +#include "core/util/prelude.h" + +#include + +namespace trtorch { +namespace core { +namespace lowering { +namespace passes { +namespace { +using namespace torch::jit; +struct AddMMBranchFusion { + AddMMBranchFusion(std::shared_ptr graph) + : graph_(std::move(graph)) {} + + void run() { + findAddMMVariantsNodes(graph_->block()); + torch::jit::EliminateDeadCode(graph_); + LOG_GRAPH("Post aten::addmm branch fusion: " << *graph_); + } + +private: + bool isAddMMVariantsNode(Node* n) { + /// Check if this Node hosts a pattern like so: + /// %ret : Tensor = prim::If(%622) + /// block0(): + /// %ret.1 : Tensor = aten::addmm(%self.fc.bias, %x9.1, %3677, %3, %3) + /// -> (%ret.1) + /// block1(): + /// %output.1 : Tensor = aten::matmul(%x9.1, %3677) + /// %output0.1 : Tensor = aten::add_(%output.1, %self.fc.bias, %3) + /// -> (%output0.1) + + if (n->blocks().size() != 2) { + return false; + } + auto arm1 = n->blocks()[0]; + auto arm2 = n->blocks()[1]; + + auto arm1_start = arm1->nodes().begin(); + if ((*arm1_start)->kind().toQualString() != std::string("aten::addmm") + && (*(++arm1_start))->kind() != prim::Return) { + // Make sure that block0 is solely just the aten::addmm op and the return + return false; + } + + auto arm2_start = arm2->nodes().begin(); + if ((*arm2_start)->kind().toQualString() != std::string("aten::matmul") + && (*(++arm2_start))->kind().toQualString() != std::string("aten::add_") + && (*(++arm2_start))->kind() != prim::Return) { + // Make sure that block1 is solely the return + return false; + } + + return true; + } + + void findAddMMVariantsNodes(Block* b) { + for (auto it = b->nodes().begin(); it != b->nodes().end(); it++) { + auto n = *it; + if (n->kind() == prim::If && isAddMMVariantsNode(n)) { + LOG_GRAPH("Found that node " << *n << " is an AddMM variants node (FuseAddMMBranches)" << std::endl); + auto arm1 = n->blocks()[0]; + auto arm1_start = arm1->nodes().begin(); + + auto input_values = (*arm1_start)->inputs(); + + auto new_addmm_node = b->owningGraph()->create(c10::Symbol::fromQualString("aten::addmm"), input_values, 1); + n->replaceAllUsesWith(new_addmm_node); + + auto old_insert_point = b->owningGraph()->insertPoint(); + b->owningGraph()->setInsertPoint(n); + b->owningGraph()->insertNode(new_addmm_node); + b->owningGraph()->setInsertPoint(old_insert_point); + + it.destroyCurrent(); + } + } + } + + std::shared_ptr graph_; +}; +} // namespace + +void FuseAddMMBranches(std::shared_ptr graph) { + AddMMBranchFusion ammbf(std::move(graph)); + ammbf.run(); +} + +} // namespace passes +} // namespace lowering +} // namespace core +} // namespace trtorch diff --git a/core/lowering/passes/passes.h b/core/lowering/passes/passes.h index 4aad057191..9fe21b918b 100644 --- a/core/lowering/passes/passes.h +++ b/core/lowering/passes/passes.h @@ -8,13 +8,15 @@ namespace lowering { namespace passes { void Conv2DToConvolution(std::shared_ptr& graph); +void FuseAddMMBranches(std::shared_ptr graph); void FuseFlattenLinear(std::shared_ptr& graph); +void EliminateExceptionOrPassPattern(std::shared_ptr graph); void RemoveContiguous(std::shared_ptr& graph); void RemoveDropout(std::shared_ptr& graph); +void RemoveTo(std::shared_ptr graph); void UnpackAddMM(std::shared_ptr& graph); void UnpackBatchNorm(std::shared_ptr& graph); void UnpackLogSoftmax(std::shared_ptr& graph); -void EliminateExceptionOrPassPattern(std::shared_ptr graph); } // namespace irfusers } // namespace lowering diff --git a/core/lowering/passes/remove_dropout.cpp b/core/lowering/passes/remove_dropout.cpp index 3918c99bcf..b5776f2bfa 100644 --- a/core/lowering/passes/remove_dropout.cpp +++ b/core/lowering/passes/remove_dropout.cpp @@ -16,7 +16,6 @@ void RemoveDropout(std::shared_ptr& graph) { graph(%input, %4, %5): return (%input))IR"; - // replace matmul + add pattern to linear torch::jit::SubgraphRewriter remove_dropout; remove_dropout.RegisterRewritePattern( dropout_pattern, no_dropout_pattern); diff --git a/core/lowering/passes/remove_to.cpp b/core/lowering/passes/remove_to.cpp new file mode 100644 index 0000000000..b70f871001 --- /dev/null +++ b/core/lowering/passes/remove_to.cpp @@ -0,0 +1,54 @@ +#include "torch/csrc/jit/passes/guard_elimination.h" +#include "torch/csrc/jit/ir/alias_analysis.h" +#include "torch/csrc/jit/jit_log.h" +#include "torch/csrc/jit/passes/constant_propagation.h" +#include "torch/csrc/jit/passes/peephole.h" +#include "torch/csrc/jit/runtime/graph_executor.h" +#include "torch/csrc/jit/passes/dead_code_elimination.h" + +#include "core/util/prelude.h" + +#include + +namespace trtorch { +namespace core { +namespace lowering { +namespace passes { +namespace { +using namespace torch::jit; +struct ToRemoval { + ToRemoval(std::shared_ptr graph) + : graph_(std::move(graph)) {} + + void run() { + findTo(graph_->block()); + torch::jit::EliminateDeadCode(graph_); + LOG_DEBUG("RemoveTo - Note: Removing remaining aten::to operators, if type casts need to be preserved, add a pass before this pass is run"); + LOG_GRAPH("Post aten::to removal: " << *graph_); + } + +private: + void findTo(Block* b) { + for (auto it = b->nodes().begin(); it != b->nodes().end(); it++) { + auto n = *it; + if (n->kind() == c10::Symbol::fromQualString("aten::to")) { + LOG_GRAPH("Found that node " << *n << " is an to node (RemoveTo)" << std::endl); + n->outputs()[0]->replaceAllUsesWith(n->inputs()[1]); + it.destroyCurrent(); + } + } + } + + std::shared_ptr graph_; +}; +} // namespace + +void RemoveTo(std::shared_ptr graph) { + ToRemoval tr(std::move(graph)); + tr.run(); +} + +} // namespace passes +} // namespace lowering +} // namespace core +} // namespace trtorch \ No newline at end of file diff --git a/docs/_cpp_api/class_view_hierarchy.html b/docs/_cpp_api/class_view_hierarchy.html index f85121680e..52c24e7971 100644 --- a/docs/_cpp_api/class_view_hierarchy.html +++ b/docs/_cpp_api/class_view_hierarchy.html @@ -367,32 +367,32 @@ diff --git a/docs/_cpp_api/classtrtorch_1_1ExtraInfo_1_1DataType.html b/docs/_cpp_api/classtrtorch_1_1ExtraInfo_1_1DataType.html index c87d34fbc9..cb93013f32 100644 --- a/docs/_cpp_api/classtrtorch_1_1ExtraInfo_1_1DataType.html +++ b/docs/_cpp_api/classtrtorch_1_1ExtraInfo_1_1DataType.html @@ -374,32 +374,32 @@ diff --git a/docs/_cpp_api/classtrtorch_1_1ExtraInfo_1_1DeviceType.html b/docs/_cpp_api/classtrtorch_1_1ExtraInfo_1_1DeviceType.html index 9307df8de1..f0e44d481a 100644 --- a/docs/_cpp_api/classtrtorch_1_1ExtraInfo_1_1DeviceType.html +++ b/docs/_cpp_api/classtrtorch_1_1ExtraInfo_1_1DeviceType.html @@ -374,32 +374,32 @@ diff --git a/docs/_cpp_api/classtrtorch_1_1ptq_1_1Int8CacheCalibrator.html b/docs/_cpp_api/classtrtorch_1_1ptq_1_1Int8CacheCalibrator.html index 034a7ad417..f51e24e2d9 100644 --- a/docs/_cpp_api/classtrtorch_1_1ptq_1_1Int8CacheCalibrator.html +++ b/docs/_cpp_api/classtrtorch_1_1ptq_1_1Int8CacheCalibrator.html @@ -374,32 +374,32 @@ diff --git a/docs/_cpp_api/classtrtorch_1_1ptq_1_1Int8Calibrator.html b/docs/_cpp_api/classtrtorch_1_1ptq_1_1Int8Calibrator.html index b116598b13..2d36c9faa2 100644 --- a/docs/_cpp_api/classtrtorch_1_1ptq_1_1Int8Calibrator.html +++ b/docs/_cpp_api/classtrtorch_1_1ptq_1_1Int8Calibrator.html @@ -374,32 +374,32 @@ diff --git a/docs/_cpp_api/define_macros_8h_1a18d295a837ac71add5578860b55e5502.html b/docs/_cpp_api/define_macros_8h_1a18d295a837ac71add5578860b55e5502.html index baab8f4257..4d35d913e9 100644 --- a/docs/_cpp_api/define_macros_8h_1a18d295a837ac71add5578860b55e5502.html +++ b/docs/_cpp_api/define_macros_8h_1a18d295a837ac71add5578860b55e5502.html @@ -374,32 +374,32 @@ diff --git a/docs/_cpp_api/define_macros_8h_1a20c1fbeb21757871c52299dc52351b5f.html b/docs/_cpp_api/define_macros_8h_1a20c1fbeb21757871c52299dc52351b5f.html index 4343e11651..f584684af8 100644 --- a/docs/_cpp_api/define_macros_8h_1a20c1fbeb21757871c52299dc52351b5f.html +++ b/docs/_cpp_api/define_macros_8h_1a20c1fbeb21757871c52299dc52351b5f.html @@ -374,32 +374,32 @@ diff --git a/docs/_cpp_api/define_macros_8h_1a25ee153c325dfc7466a33cbd5c1ff055.html b/docs/_cpp_api/define_macros_8h_1a25ee153c325dfc7466a33cbd5c1ff055.html index 3d633d42c2..3cb5b92d75 100644 --- a/docs/_cpp_api/define_macros_8h_1a25ee153c325dfc7466a33cbd5c1ff055.html +++ b/docs/_cpp_api/define_macros_8h_1a25ee153c325dfc7466a33cbd5c1ff055.html @@ -374,32 +374,32 @@ diff --git a/docs/_cpp_api/define_macros_8h_1a48d6029a45583a06848891cb0e86f7ba.html b/docs/_cpp_api/define_macros_8h_1a48d6029a45583a06848891cb0e86f7ba.html index e66b846828..25a16897d7 100644 --- a/docs/_cpp_api/define_macros_8h_1a48d6029a45583a06848891cb0e86f7ba.html +++ b/docs/_cpp_api/define_macros_8h_1a48d6029a45583a06848891cb0e86f7ba.html @@ -374,32 +374,32 @@ diff --git a/docs/_cpp_api/define_macros_8h_1a71b02dddfabe869498ad5a88e11c440f.html b/docs/_cpp_api/define_macros_8h_1a71b02dddfabe869498ad5a88e11c440f.html index 70bab59633..c949670e09 100644 --- a/docs/_cpp_api/define_macros_8h_1a71b02dddfabe869498ad5a88e11c440f.html +++ b/docs/_cpp_api/define_macros_8h_1a71b02dddfabe869498ad5a88e11c440f.html @@ -374,32 +374,32 @@ diff --git a/docs/_cpp_api/define_macros_8h_1a9d31d0569348d109b1b069b972dd143e.html b/docs/_cpp_api/define_macros_8h_1a9d31d0569348d109b1b069b972dd143e.html index cface47f06..f1b3947d3f 100644 --- a/docs/_cpp_api/define_macros_8h_1a9d31d0569348d109b1b069b972dd143e.html +++ b/docs/_cpp_api/define_macros_8h_1a9d31d0569348d109b1b069b972dd143e.html @@ -374,32 +374,32 @@ diff --git a/docs/_cpp_api/define_macros_8h_1abe87b341f562fd1cf40b7672e4d759da.html b/docs/_cpp_api/define_macros_8h_1abe87b341f562fd1cf40b7672e4d759da.html index c235e0d9f1..0721d291d9 100644 --- a/docs/_cpp_api/define_macros_8h_1abe87b341f562fd1cf40b7672e4d759da.html +++ b/docs/_cpp_api/define_macros_8h_1abe87b341f562fd1cf40b7672e4d759da.html @@ -373,32 +373,32 @@ diff --git a/docs/_cpp_api/define_macros_8h_1ae1c56ab8a40af292a9a4964651524d84.html b/docs/_cpp_api/define_macros_8h_1ae1c56ab8a40af292a9a4964651524d84.html index 71be6933d1..a1f35b27c4 100644 --- a/docs/_cpp_api/define_macros_8h_1ae1c56ab8a40af292a9a4964651524d84.html +++ b/docs/_cpp_api/define_macros_8h_1ae1c56ab8a40af292a9a4964651524d84.html @@ -374,32 +374,32 @@ diff --git a/docs/_cpp_api/dir_cpp.html b/docs/_cpp_api/dir_cpp.html index aa3f7ff7a7..d048bceb25 100644 --- a/docs/_cpp_api/dir_cpp.html +++ b/docs/_cpp_api/dir_cpp.html @@ -367,32 +367,32 @@ diff --git a/docs/_cpp_api/dir_cpp_api.html b/docs/_cpp_api/dir_cpp_api.html index 347bd9aec6..a9ecffc3ef 100644 --- a/docs/_cpp_api/dir_cpp_api.html +++ b/docs/_cpp_api/dir_cpp_api.html @@ -367,32 +367,32 @@ diff --git a/docs/_cpp_api/dir_cpp_api_include.html b/docs/_cpp_api/dir_cpp_api_include.html index d0dfe41b75..408cf034fa 100644 --- a/docs/_cpp_api/dir_cpp_api_include.html +++ b/docs/_cpp_api/dir_cpp_api_include.html @@ -367,32 +367,32 @@ diff --git a/docs/_cpp_api/dir_cpp_api_include_trtorch.html b/docs/_cpp_api/dir_cpp_api_include_trtorch.html index f62d859e63..5c641c3dd5 100644 --- a/docs/_cpp_api/dir_cpp_api_include_trtorch.html +++ b/docs/_cpp_api/dir_cpp_api_include_trtorch.html @@ -367,32 +367,32 @@ diff --git a/docs/_cpp_api/enum_logging_8h_1a5f612ff2f783ff4fbe89d168f0d817d4.html b/docs/_cpp_api/enum_logging_8h_1a5f612ff2f783ff4fbe89d168f0d817d4.html index 129e059169..b7c7c8d13e 100644 --- a/docs/_cpp_api/enum_logging_8h_1a5f612ff2f783ff4fbe89d168f0d817d4.html +++ b/docs/_cpp_api/enum_logging_8h_1a5f612ff2f783ff4fbe89d168f0d817d4.html @@ -374,32 +374,32 @@ diff --git a/docs/_cpp_api/file_cpp_api_include_trtorch_logging.h.html b/docs/_cpp_api/file_cpp_api_include_trtorch_logging.h.html index 04ade4a022..50a5312909 100644 --- a/docs/_cpp_api/file_cpp_api_include_trtorch_logging.h.html +++ b/docs/_cpp_api/file_cpp_api_include_trtorch_logging.h.html @@ -367,32 +367,32 @@ diff --git a/docs/_cpp_api/file_cpp_api_include_trtorch_macros.h.html b/docs/_cpp_api/file_cpp_api_include_trtorch_macros.h.html index 08496d4df3..23dba6c709 100644 --- a/docs/_cpp_api/file_cpp_api_include_trtorch_macros.h.html +++ b/docs/_cpp_api/file_cpp_api_include_trtorch_macros.h.html @@ -367,32 +367,32 @@ diff --git a/docs/_cpp_api/file_cpp_api_include_trtorch_ptq.h.html b/docs/_cpp_api/file_cpp_api_include_trtorch_ptq.h.html index 2523a931e6..74b9bcb5c2 100644 --- a/docs/_cpp_api/file_cpp_api_include_trtorch_ptq.h.html +++ b/docs/_cpp_api/file_cpp_api_include_trtorch_ptq.h.html @@ -367,32 +367,32 @@ diff --git a/docs/_cpp_api/file_cpp_api_include_trtorch_trtorch.h.html b/docs/_cpp_api/file_cpp_api_include_trtorch_trtorch.h.html index aebe61a64f..8073857573 100644 --- a/docs/_cpp_api/file_cpp_api_include_trtorch_trtorch.h.html +++ b/docs/_cpp_api/file_cpp_api_include_trtorch_trtorch.h.html @@ -367,32 +367,32 @@ diff --git a/docs/_cpp_api/file_view_hierarchy.html b/docs/_cpp_api/file_view_hierarchy.html index c78cea8757..3bd0a6725b 100644 --- a/docs/_cpp_api/file_view_hierarchy.html +++ b/docs/_cpp_api/file_view_hierarchy.html @@ -367,32 +367,32 @@ diff --git a/docs/_cpp_api/function_logging_8h_1a118d65b179defff7fff279eb9cd126cb.html b/docs/_cpp_api/function_logging_8h_1a118d65b179defff7fff279eb9cd126cb.html index 05e7dc9113..5bdc9499a5 100644 --- a/docs/_cpp_api/function_logging_8h_1a118d65b179defff7fff279eb9cd126cb.html +++ b/docs/_cpp_api/function_logging_8h_1a118d65b179defff7fff279eb9cd126cb.html @@ -374,32 +374,32 @@ diff --git a/docs/_cpp_api/function_logging_8h_1a396a688110397538f8b3fb7dfdaf38bb.html b/docs/_cpp_api/function_logging_8h_1a396a688110397538f8b3fb7dfdaf38bb.html index 64a730c483..c513a4ae6a 100644 --- a/docs/_cpp_api/function_logging_8h_1a396a688110397538f8b3fb7dfdaf38bb.html +++ b/docs/_cpp_api/function_logging_8h_1a396a688110397538f8b3fb7dfdaf38bb.html @@ -374,32 +374,32 @@ diff --git a/docs/_cpp_api/function_logging_8h_1a9b420280bfacc016d7e36a5704021949.html b/docs/_cpp_api/function_logging_8h_1a9b420280bfacc016d7e36a5704021949.html index 24130faded..2c55435c1e 100644 --- a/docs/_cpp_api/function_logging_8h_1a9b420280bfacc016d7e36a5704021949.html +++ b/docs/_cpp_api/function_logging_8h_1a9b420280bfacc016d7e36a5704021949.html @@ -374,32 +374,32 @@ diff --git a/docs/_cpp_api/function_logging_8h_1aa533955a2b908db9e5df5acdfa24715f.html b/docs/_cpp_api/function_logging_8h_1aa533955a2b908db9e5df5acdfa24715f.html index 1691a73dcf..e136bab26a 100644 --- a/docs/_cpp_api/function_logging_8h_1aa533955a2b908db9e5df5acdfa24715f.html +++ b/docs/_cpp_api/function_logging_8h_1aa533955a2b908db9e5df5acdfa24715f.html @@ -374,32 +374,32 @@ diff --git a/docs/_cpp_api/function_logging_8h_1abc57d473f3af292551dee8b9c78373ad.html b/docs/_cpp_api/function_logging_8h_1abc57d473f3af292551dee8b9c78373ad.html index f2768d2b4c..6e673e834a 100644 --- a/docs/_cpp_api/function_logging_8h_1abc57d473f3af292551dee8b9c78373ad.html +++ b/docs/_cpp_api/function_logging_8h_1abc57d473f3af292551dee8b9c78373ad.html @@ -374,32 +374,32 @@ diff --git a/docs/_cpp_api/function_logging_8h_1adf5435f0dbb09c0d931a1b851847236b.html b/docs/_cpp_api/function_logging_8h_1adf5435f0dbb09c0d931a1b851847236b.html index f939b71ee0..5e69e8ae6c 100644 --- a/docs/_cpp_api/function_logging_8h_1adf5435f0dbb09c0d931a1b851847236b.html +++ b/docs/_cpp_api/function_logging_8h_1adf5435f0dbb09c0d931a1b851847236b.html @@ -374,32 +374,32 @@ diff --git a/docs/_cpp_api/function_logging_8h_1aef44b69c62af7cf2edc8875a9506641a.html b/docs/_cpp_api/function_logging_8h_1aef44b69c62af7cf2edc8875a9506641a.html index 0f0febae9b..f95d6d8172 100644 --- a/docs/_cpp_api/function_logging_8h_1aef44b69c62af7cf2edc8875a9506641a.html +++ b/docs/_cpp_api/function_logging_8h_1aef44b69c62af7cf2edc8875a9506641a.html @@ -374,32 +374,32 @@ diff --git a/docs/_cpp_api/function_trtorch_8h_1a2cf17d43ba9117b3b4d652744b4f0447.html b/docs/_cpp_api/function_trtorch_8h_1a2cf17d43ba9117b3b4d652744b4f0447.html index a732856cd5..925ee58a71 100644 --- a/docs/_cpp_api/function_trtorch_8h_1a2cf17d43ba9117b3b4d652744b4f0447.html +++ b/docs/_cpp_api/function_trtorch_8h_1a2cf17d43ba9117b3b4d652744b4f0447.html @@ -374,32 +374,32 @@ diff --git a/docs/_cpp_api/function_trtorch_8h_1a4422781719d7befedb364cacd91c6247.html b/docs/_cpp_api/function_trtorch_8h_1a4422781719d7befedb364cacd91c6247.html index 7a4cd7291b..775876f2ba 100644 --- a/docs/_cpp_api/function_trtorch_8h_1a4422781719d7befedb364cacd91c6247.html +++ b/docs/_cpp_api/function_trtorch_8h_1a4422781719d7befedb364cacd91c6247.html @@ -374,32 +374,32 @@ diff --git a/docs/_cpp_api/function_trtorch_8h_1a536bba54b70e44554099d23fa3d7e804.html b/docs/_cpp_api/function_trtorch_8h_1a536bba54b70e44554099d23fa3d7e804.html index 4a3777ac7e..c81c82b39a 100644 --- a/docs/_cpp_api/function_trtorch_8h_1a536bba54b70e44554099d23fa3d7e804.html +++ b/docs/_cpp_api/function_trtorch_8h_1a536bba54b70e44554099d23fa3d7e804.html @@ -374,32 +374,32 @@ diff --git a/docs/_cpp_api/function_trtorch_8h_1a5f33b142bc2f3f2aaf462270b3ad7e31.html b/docs/_cpp_api/function_trtorch_8h_1a5f33b142bc2f3f2aaf462270b3ad7e31.html index b64edced5a..54d146c720 100644 --- a/docs/_cpp_api/function_trtorch_8h_1a5f33b142bc2f3f2aaf462270b3ad7e31.html +++ b/docs/_cpp_api/function_trtorch_8h_1a5f33b142bc2f3f2aaf462270b3ad7e31.html @@ -374,32 +374,32 @@ diff --git a/docs/_cpp_api/function_trtorch_8h_1a726f6e7091b6b7be45b5a4275b2ffb10.html b/docs/_cpp_api/function_trtorch_8h_1a726f6e7091b6b7be45b5a4275b2ffb10.html index 445ad9224a..3ba1915e32 100644 --- a/docs/_cpp_api/function_trtorch_8h_1a726f6e7091b6b7be45b5a4275b2ffb10.html +++ b/docs/_cpp_api/function_trtorch_8h_1a726f6e7091b6b7be45b5a4275b2ffb10.html @@ -374,32 +374,32 @@ diff --git a/docs/_cpp_api/function_trtorch_8h_1ab01696cfe08b6a5293c55935a9713c25.html b/docs/_cpp_api/function_trtorch_8h_1ab01696cfe08b6a5293c55935a9713c25.html index a75b7ee703..0fa71077d5 100644 --- a/docs/_cpp_api/function_trtorch_8h_1ab01696cfe08b6a5293c55935a9713c25.html +++ b/docs/_cpp_api/function_trtorch_8h_1ab01696cfe08b6a5293c55935a9713c25.html @@ -374,32 +374,32 @@ diff --git a/docs/_cpp_api/function_trtorch_8h_1ae38897d1ca4438227c970029d0f76fb5.html b/docs/_cpp_api/function_trtorch_8h_1ae38897d1ca4438227c970029d0f76fb5.html index 59793d3c32..545fb62460 100644 --- a/docs/_cpp_api/function_trtorch_8h_1ae38897d1ca4438227c970029d0f76fb5.html +++ b/docs/_cpp_api/function_trtorch_8h_1ae38897d1ca4438227c970029d0f76fb5.html @@ -374,32 +374,32 @@ diff --git a/docs/_cpp_api/namespace_trtorch.html b/docs/_cpp_api/namespace_trtorch.html index 2a12108e0e..5339019415 100644 --- a/docs/_cpp_api/namespace_trtorch.html +++ b/docs/_cpp_api/namespace_trtorch.html @@ -374,32 +374,32 @@ diff --git a/docs/_cpp_api/namespace_trtorch__logging.html b/docs/_cpp_api/namespace_trtorch__logging.html index 4582223721..a5479fcff3 100644 --- a/docs/_cpp_api/namespace_trtorch__logging.html +++ b/docs/_cpp_api/namespace_trtorch__logging.html @@ -374,32 +374,32 @@ diff --git a/docs/_cpp_api/namespace_trtorch__ptq.html b/docs/_cpp_api/namespace_trtorch__ptq.html index 05e742a6c4..d8e6fdefa1 100644 --- a/docs/_cpp_api/namespace_trtorch__ptq.html +++ b/docs/_cpp_api/namespace_trtorch__ptq.html @@ -374,32 +374,32 @@ diff --git a/docs/_cpp_api/program_listing_file_cpp_api_include_trtorch_logging.h.html b/docs/_cpp_api/program_listing_file_cpp_api_include_trtorch_logging.h.html index 51289e027e..72aeb2e3f5 100644 --- a/docs/_cpp_api/program_listing_file_cpp_api_include_trtorch_logging.h.html +++ b/docs/_cpp_api/program_listing_file_cpp_api_include_trtorch_logging.h.html @@ -367,32 +367,32 @@ diff --git a/docs/_cpp_api/program_listing_file_cpp_api_include_trtorch_macros.h.html b/docs/_cpp_api/program_listing_file_cpp_api_include_trtorch_macros.h.html index 1a259290fd..f60be3aa3c 100644 --- a/docs/_cpp_api/program_listing_file_cpp_api_include_trtorch_macros.h.html +++ b/docs/_cpp_api/program_listing_file_cpp_api_include_trtorch_macros.h.html @@ -367,32 +367,32 @@ diff --git a/docs/_cpp_api/program_listing_file_cpp_api_include_trtorch_ptq.h.html b/docs/_cpp_api/program_listing_file_cpp_api_include_trtorch_ptq.h.html index a6f6a84e77..5905e8503e 100644 --- a/docs/_cpp_api/program_listing_file_cpp_api_include_trtorch_ptq.h.html +++ b/docs/_cpp_api/program_listing_file_cpp_api_include_trtorch_ptq.h.html @@ -367,32 +367,32 @@ diff --git a/docs/_cpp_api/program_listing_file_cpp_api_include_trtorch_trtorch.h.html b/docs/_cpp_api/program_listing_file_cpp_api_include_trtorch_trtorch.h.html index c85c92f209..5942ca887b 100644 --- a/docs/_cpp_api/program_listing_file_cpp_api_include_trtorch_trtorch.h.html +++ b/docs/_cpp_api/program_listing_file_cpp_api_include_trtorch_trtorch.h.html @@ -367,32 +367,32 @@ diff --git a/docs/_cpp_api/structtrtorch_1_1ExtraInfo.html b/docs/_cpp_api/structtrtorch_1_1ExtraInfo.html index e98a7cedbd..92bc6aa8a1 100644 --- a/docs/_cpp_api/structtrtorch_1_1ExtraInfo.html +++ b/docs/_cpp_api/structtrtorch_1_1ExtraInfo.html @@ -374,32 +374,32 @@ @@ -960,10 +960,7 @@

DataType - :: - - kFloat - + ::kFloat ¶ @@ -1099,10 +1096,7 @@

DeviceType - :: - - kGPU - + ::kGPU ¶ diff --git a/docs/_cpp_api/structtrtorch_1_1ExtraInfo_1_1InputRange.html b/docs/_cpp_api/structtrtorch_1_1ExtraInfo_1_1InputRange.html index 569b00db96..f87251af70 100644 --- a/docs/_cpp_api/structtrtorch_1_1ExtraInfo_1_1InputRange.html +++ b/docs/_cpp_api/structtrtorch_1_1ExtraInfo_1_1InputRange.html @@ -374,32 +374,32 @@ diff --git a/docs/_cpp_api/trtorch_cpp.html b/docs/_cpp_api/trtorch_cpp.html index 44e285ede8..e6c3c6be07 100644 --- a/docs/_cpp_api/trtorch_cpp.html +++ b/docs/_cpp_api/trtorch_cpp.html @@ -369,32 +369,32 @@ diff --git a/docs/_cpp_api/unabridged_api.html b/docs/_cpp_api/unabridged_api.html index 96a93493a0..e67c4100a0 100644 --- a/docs/_cpp_api/unabridged_api.html +++ b/docs/_cpp_api/unabridged_api.html @@ -367,32 +367,32 @@ diff --git a/docs/_cpp_api/unabridged_orphan.html b/docs/_cpp_api/unabridged_orphan.html index 554cd70624..6c6b11f46d 100644 --- a/docs/_cpp_api/unabridged_orphan.html +++ b/docs/_cpp_api/unabridged_orphan.html @@ -367,32 +367,32 @@ diff --git a/docs/_sources/contributors/lowering.rst.txt b/docs/_sources/contributors/lowering.rst.txt index 1a88b6fddb..3b23911ec6 100644 --- a/docs/_sources/contributors/lowering.rst.txt +++ b/docs/_sources/contributors/lowering.rst.txt @@ -14,6 +14,15 @@ You can see the effects of each pass by setting the log level to ``Level::kGraph Passes Used ------------- +EliminateCommonSubexpression +*********************************** + + `torch/csrc/jit/passes/common_subexpression_elimination.h `_ + +Removes common subexpressions in the graph + + + Eliminate Dead Code ************************** @@ -56,6 +65,31 @@ Freeze Module Freeze attributes and inline constants and modules. Propogates constants in the graph. +Fuse AddMM Branches +*************************************** + + `trtorch/core/lowering/passes/fuse_addmm_branches.cpp `_ + +A common pattern in scripted modules is tensors of different dimensions use different constructions for implementing linear layers. We fuse these +different varients into a single one that will get caught by the Unpack AddMM pass. + +.. code-block:: none + + %ret : Tensor = prim::If(%622) + block0(): + %ret.1 : Tensor = aten::addmm(%self.fc.bias, %x9.1, %3677, %3, %3) + -> (%ret.1) + block1(): + %output.1 : Tensor = aten::matmul(%x9.1, %3677) + %output0.1 : Tensor = aten::add_(%output.1, %self.fc.bias, %3) + -> (%output0.1) + +We fuse this set of blocks into a graph like this: + +.. code-block:: none + + %ret : Tensor = aten::addmm(%self.fc.bias, %x9.1, %3677, %3, %3) + Fuse Linear *************************************** @@ -97,6 +131,18 @@ Removes tuples where TupleConstruct and TupleUnpack are matched but leaves tuple Removes _all_ tuples and raises an error if some cannot be removed, this is used by ONNX to ensure there are not tuples before conversion, but will not work on graphs whose inputs contain tuples. +Peephole Optimze +*************************************** + + `torch/csrc/jit/passes/peephole_optimze.h `_ + +The intent for this optimization pass is to catch all of the small, easy to catch peephole optimizations you might be interested in doing. + +Right now, it does: + - Eliminate no-op 'expand' nodes + - Simply x.t().t() to x + + Remove Contiguous *************************************** @@ -112,6 +158,14 @@ Remove Dropout Removes dropout operators since we are doing inference. +Remove To +*************************************** + + `trtorch/core/lowering/passes/remove_to.cpp `_ + +Removes ``aten::to`` operators that do casting, since TensorRT mangages it itself. It is important that this is one of the last passes run so that +other passes have a change to move required cast operators out of the main namespace. + Unpack AddMM *************************************** @@ -127,4 +181,11 @@ Unpack LogSoftmax `trtorch/core/lowering/passes/unpack_log_softmax.cpp `_ Unpacks ``aten::logsoftmax`` into ``aten::softmax`` and ``aten::log``. This lets us reuse the -``aten::softmax`` and ``aten::log`` converters instead of needing a dedicated converter. \ No newline at end of file +``aten::softmax`` and ``aten::log`` converters instead of needing a dedicated converter. + +Unroll Loops +*************************************** + + `torch/csrc/jit/passes/loop_unrolling.h `_ + + Unrolls the operations of compatable loops (e.g. sufficently short) so that you only have to go through the loop once. \ No newline at end of file diff --git a/docs/_sources/contributors/useful_links.rst.txt b/docs/_sources/contributors/useful_links.rst.txt index 4677690864..b31d20a55e 100644 --- a/docs/_sources/contributors/useful_links.rst.txt +++ b/docs/_sources/contributors/useful_links.rst.txt @@ -3,31 +3,31 @@ Useful Links for TRTorch Development ===================================== -TensorRT Available Layers and Expected Dimensions: +TensorRT Available Layers and Expected Dimensions ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ * https://docs.nvidia.com/deeplearning/sdk/tensorrt-support-matrix/index.html#layers-matrix -TensorRT C++ Documentation: +TensorRT C++ Documentation ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ * https://docs.nvidia.com/deeplearning/tensorrt/api/c_api/index.html -TensorRT Python Documentation (Sometimes easier to read): +TensorRT Python Documentation (Sometimes easier to read) ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ * https://docs.nvidia.com/deeplearning/sdk/tensorrt-api/python_api/index.html -PyTorch Functional API: +PyTorch Functional API ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ * https://pytorch.org/docs/stable/nn.functional.html -PyTorch native_ops: +PyTorch native_ops ^^^^^^^^^^^^^^^^^^^^^ * https://github.com/pytorch/pytorch/blob/master/aten/src/ATen/native/native_functions.yaml -PyTorch IR Documentation: +PyTorch IR Documentation ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ * https://github.com/pytorch/pytorch/blob/master/torch/csrc/jit/OVERVIEW.md diff --git a/docs/contributors/lowering.html b/docs/contributors/lowering.html index ee974b61a2..ad4bc66fd9 100644 --- a/docs/contributors/lowering.html +++ b/docs/contributors/lowering.html @@ -374,32 +374,32 @@ @@ -492,6 +492,11 @@ @@ -601,6 +626,24 @@

¶

+

+ EliminateCommonSubexpression + + ¶ + +

+
+ +
+

+ Removes common subexpressions in the graph +

Eliminate Dead Code @@ -690,6 +733,47 @@

Freeze attributes and inline constants and modules. Propogates constants in the graph.

+

+ Fuse AddMM Branches + + ¶ + +

+
+ +
+

+ A common pattern in scripted modules is tensors of different dimensions use different constructions for implementing linear layers. We fuse these +different varients into a single one that will get caught by the Unpack AddMM pass. +

+
+
+
%ret : Tensor = prim::If(%622)
+block0():
+  %ret.1 : Tensor = aten::addmm(%self.fc.bias, %x9.1, %3677, %3, %3)
+  -> (%ret.1)
+block1():
+  %output.1 : Tensor = aten::matmul(%x9.1, %3677)
+  %output0.1 : Tensor = aten::add_(%output.1, %self.fc.bias, %3)
+  -> (%output0.1)
+
+
+
+

+ We fuse this set of blocks into a graph like this: +

+
+
+
%ret : Tensor = aten::addmm(%self.fc.bias, %x9.1, %3677, %3, %3)
+
+
+

Fuse Linear @@ -824,6 +908,43 @@

Removes _all_ tuples and raises an error if some cannot be removed, this is used by ONNX to ensure there are not tuples before conversion, but will not work on graphs whose inputs contain tuples.

+

+ Peephole Optimze + + ¶ + +

+
+ +
+

+ The intent for this optimization pass is to catch all of the small, easy to catch peephole optimizations you might be interested in doing. +

+
+
+ Right now, it does: +
+
+
    +
  • +

    + Eliminate no-op ‘expand’ nodes +

    +
  • +
  • +

    + Simply x.t().t() to x +

    +
  • +
+
+

Remove Contiguous @@ -860,6 +981,31 @@

Removes dropout operators since we are doing inference.

+

+ Remove To + + ¶ + +

+
+ +
+

+ Removes + + + aten::to + + + operators that do casting, since TensorRT mangages it itself. It is important that this is one of the last passes run so that +other passes have a change to move required cast operators out of the main namespace. +

Unpack AddMM @@ -962,6 +1108,24 @@

converters instead of needing a dedicated converter.

+

+ Unroll Loops + + ¶ + +

+
+
+

+ + torch/csrc/jit/passes/loop_unrolling.h + +

+

+ Unrolls the operations of compatable loops (e.g. sufficently short) so that you only have to go through the loop once. +

+
+
diff --git a/docs/contributors/phases.html b/docs/contributors/phases.html index 1583f5200b..72db547c4f 100644 --- a/docs/contributors/phases.html +++ b/docs/contributors/phases.html @@ -367,32 +367,32 @@ diff --git a/docs/contributors/system_overview.html b/docs/contributors/system_overview.html index 05f7f760fc..86d7e92bfa 100644 --- a/docs/contributors/system_overview.html +++ b/docs/contributors/system_overview.html @@ -418,32 +418,32 @@ diff --git a/docs/contributors/useful_links.html b/docs/contributors/useful_links.html index 8352444c8a..fa3c366c90 100644 --- a/docs/contributors/useful_links.html +++ b/docs/contributors/useful_links.html @@ -383,32 +383,32 @@ @@ -424,32 +424,32 @@ @@ -538,32 +538,32 @@ @@ -592,7 +592,7 @@

- TensorRT Available Layers and Expected Dimensions: + TensorRT Available Layers and Expected Dimensions ¶ @@ -611,7 +611,7 @@

- TensorRT C++ Documentation: + TensorRT C++ Documentation ¶ @@ -630,7 +630,7 @@

- TensorRT Python Documentation (Sometimes easier to read): + TensorRT Python Documentation (Sometimes easier to read) ¶ @@ -649,7 +649,7 @@

- PyTorch Functional API: + PyTorch Functional API ¶ @@ -668,7 +668,7 @@

- PyTorch native_ops: + PyTorch native_ops ¶ @@ -687,7 +687,7 @@

- PyTorch IR Documentation: + PyTorch IR Documentation ¶ diff --git a/docs/genindex.html b/docs/genindex.html index 088b5a35ce..3de5d838e1 100644 --- a/docs/genindex.html +++ b/docs/genindex.html @@ -367,32 +367,32 @@ diff --git a/docs/index.html b/docs/index.html index 2cb263f129..462096bb44 100644 --- a/docs/index.html +++ b/docs/index.html @@ -368,32 +368,32 @@ diff --git a/docs/objects.inv b/docs/objects.inv index 895a3e0b2e..e9c955f751 100644 Binary files a/docs/objects.inv and b/docs/objects.inv differ diff --git a/docs/py-modindex.html b/docs/py-modindex.html index f67e5422e0..3dc9223cea 100644 --- a/docs/py-modindex.html +++ b/docs/py-modindex.html @@ -367,32 +367,32 @@ diff --git a/docs/py_api/trtorch.html b/docs/py_api/trtorch.html index 1d1bb164cb..ae2e7aac49 100644 --- a/docs/py_api/trtorch.html +++ b/docs/py_api/trtorch.html @@ -369,32 +369,32 @@ diff --git a/docs/search.html b/docs/search.html index a058f1d279..7c3ba9f4f9 100644 --- a/docs/search.html +++ b/docs/search.html @@ -371,32 +371,32 @@ diff --git a/docs/searchindex.js b/docs/searchindex.js index 34d173a0d1..9396d9a57b 100644 --- a/docs/searchindex.js +++ b/docs/searchindex.js @@ -1 +1 @@ -Search.setIndex({docnames:["_cpp_api/class_view_hierarchy","_cpp_api/classtrtorch_1_1ExtraInfo_1_1DataType","_cpp_api/classtrtorch_1_1ExtraInfo_1_1DeviceType","_cpp_api/classtrtorch_1_1ptq_1_1Int8CacheCalibrator","_cpp_api/classtrtorch_1_1ptq_1_1Int8Calibrator","_cpp_api/define_macros_8h_1a18d295a837ac71add5578860b55e5502","_cpp_api/define_macros_8h_1a20c1fbeb21757871c52299dc52351b5f","_cpp_api/define_macros_8h_1a25ee153c325dfc7466a33cbd5c1ff055","_cpp_api/define_macros_8h_1a48d6029a45583a06848891cb0e86f7ba","_cpp_api/define_macros_8h_1a71b02dddfabe869498ad5a88e11c440f","_cpp_api/define_macros_8h_1a9d31d0569348d109b1b069b972dd143e","_cpp_api/define_macros_8h_1abe87b341f562fd1cf40b7672e4d759da","_cpp_api/define_macros_8h_1ae1c56ab8a40af292a9a4964651524d84","_cpp_api/dir_cpp","_cpp_api/dir_cpp_api","_cpp_api/dir_cpp_api_include","_cpp_api/dir_cpp_api_include_trtorch","_cpp_api/enum_logging_8h_1a5f612ff2f783ff4fbe89d168f0d817d4","_cpp_api/file_cpp_api_include_trtorch_logging.h","_cpp_api/file_cpp_api_include_trtorch_macros.h","_cpp_api/file_cpp_api_include_trtorch_ptq.h","_cpp_api/file_cpp_api_include_trtorch_trtorch.h","_cpp_api/file_view_hierarchy","_cpp_api/function_logging_8h_1a118d65b179defff7fff279eb9cd126cb","_cpp_api/function_logging_8h_1a396a688110397538f8b3fb7dfdaf38bb","_cpp_api/function_logging_8h_1a9b420280bfacc016d7e36a5704021949","_cpp_api/function_logging_8h_1aa533955a2b908db9e5df5acdfa24715f","_cpp_api/function_logging_8h_1abc57d473f3af292551dee8b9c78373ad","_cpp_api/function_logging_8h_1adf5435f0dbb09c0d931a1b851847236b","_cpp_api/function_logging_8h_1aef44b69c62af7cf2edc8875a9506641a","_cpp_api/function_trtorch_8h_1a2cf17d43ba9117b3b4d652744b4f0447","_cpp_api/function_trtorch_8h_1a4422781719d7befedb364cacd91c6247","_cpp_api/function_trtorch_8h_1a536bba54b70e44554099d23fa3d7e804","_cpp_api/function_trtorch_8h_1a5f33b142bc2f3f2aaf462270b3ad7e31","_cpp_api/function_trtorch_8h_1a726f6e7091b6b7be45b5a4275b2ffb10","_cpp_api/function_trtorch_8h_1ab01696cfe08b6a5293c55935a9713c25","_cpp_api/function_trtorch_8h_1ae38897d1ca4438227c970029d0f76fb5","_cpp_api/namespace_trtorch","_cpp_api/namespace_trtorch__logging","_cpp_api/namespace_trtorch__ptq","_cpp_api/program_listing_file_cpp_api_include_trtorch_logging.h","_cpp_api/program_listing_file_cpp_api_include_trtorch_macros.h","_cpp_api/program_listing_file_cpp_api_include_trtorch_ptq.h","_cpp_api/program_listing_file_cpp_api_include_trtorch_trtorch.h","_cpp_api/structtrtorch_1_1ExtraInfo","_cpp_api/structtrtorch_1_1ExtraInfo_1_1InputRange","_cpp_api/trtorch_cpp","_cpp_api/unabridged_api","_cpp_api/unabridged_orphan","contributors/conversion","contributors/execution","contributors/lowering","contributors/phases","contributors/system_overview","contributors/useful_links","contributors/writing_converters","index","py_api/logging","py_api/trtorch","tutorials/getting_started","tutorials/installation","tutorials/ptq","tutorials/trtorchc"],envversion:{"sphinx.domains.c":2,"sphinx.domains.changeset":1,"sphinx.domains.citation":1,"sphinx.domains.cpp":2,"sphinx.domains.index":1,"sphinx.domains.javascript":2,"sphinx.domains.math":2,"sphinx.domains.python":2,"sphinx.domains.rst":2,"sphinx.domains.std":1,"sphinx.ext.intersphinx":1,sphinx:56},filenames:["_cpp_api/class_view_hierarchy.rst","_cpp_api/classtrtorch_1_1ExtraInfo_1_1DataType.rst","_cpp_api/classtrtorch_1_1ExtraInfo_1_1DeviceType.rst","_cpp_api/classtrtorch_1_1ptq_1_1Int8CacheCalibrator.rst","_cpp_api/classtrtorch_1_1ptq_1_1Int8Calibrator.rst","_cpp_api/define_macros_8h_1a18d295a837ac71add5578860b55e5502.rst","_cpp_api/define_macros_8h_1a20c1fbeb21757871c52299dc52351b5f.rst","_cpp_api/define_macros_8h_1a25ee153c325dfc7466a33cbd5c1ff055.rst","_cpp_api/define_macros_8h_1a48d6029a45583a06848891cb0e86f7ba.rst","_cpp_api/define_macros_8h_1a71b02dddfabe869498ad5a88e11c440f.rst","_cpp_api/define_macros_8h_1a9d31d0569348d109b1b069b972dd143e.rst","_cpp_api/define_macros_8h_1abe87b341f562fd1cf40b7672e4d759da.rst","_cpp_api/define_macros_8h_1ae1c56ab8a40af292a9a4964651524d84.rst","_cpp_api/dir_cpp.rst","_cpp_api/dir_cpp_api.rst","_cpp_api/dir_cpp_api_include.rst","_cpp_api/dir_cpp_api_include_trtorch.rst","_cpp_api/enum_logging_8h_1a5f612ff2f783ff4fbe89d168f0d817d4.rst","_cpp_api/file_cpp_api_include_trtorch_logging.h.rst","_cpp_api/file_cpp_api_include_trtorch_macros.h.rst","_cpp_api/file_cpp_api_include_trtorch_ptq.h.rst","_cpp_api/file_cpp_api_include_trtorch_trtorch.h.rst","_cpp_api/file_view_hierarchy.rst","_cpp_api/function_logging_8h_1a118d65b179defff7fff279eb9cd126cb.rst","_cpp_api/function_logging_8h_1a396a688110397538f8b3fb7dfdaf38bb.rst","_cpp_api/function_logging_8h_1a9b420280bfacc016d7e36a5704021949.rst","_cpp_api/function_logging_8h_1aa533955a2b908db9e5df5acdfa24715f.rst","_cpp_api/function_logging_8h_1abc57d473f3af292551dee8b9c78373ad.rst","_cpp_api/function_logging_8h_1adf5435f0dbb09c0d931a1b851847236b.rst","_cpp_api/function_logging_8h_1aef44b69c62af7cf2edc8875a9506641a.rst","_cpp_api/function_trtorch_8h_1a2cf17d43ba9117b3b4d652744b4f0447.rst","_cpp_api/function_trtorch_8h_1a4422781719d7befedb364cacd91c6247.rst","_cpp_api/function_trtorch_8h_1a536bba54b70e44554099d23fa3d7e804.rst","_cpp_api/function_trtorch_8h_1a5f33b142bc2f3f2aaf462270b3ad7e31.rst","_cpp_api/function_trtorch_8h_1a726f6e7091b6b7be45b5a4275b2ffb10.rst","_cpp_api/function_trtorch_8h_1ab01696cfe08b6a5293c55935a9713c25.rst","_cpp_api/function_trtorch_8h_1ae38897d1ca4438227c970029d0f76fb5.rst","_cpp_api/namespace_trtorch.rst","_cpp_api/namespace_trtorch__logging.rst","_cpp_api/namespace_trtorch__ptq.rst","_cpp_api/program_listing_file_cpp_api_include_trtorch_logging.h.rst","_cpp_api/program_listing_file_cpp_api_include_trtorch_macros.h.rst","_cpp_api/program_listing_file_cpp_api_include_trtorch_ptq.h.rst","_cpp_api/program_listing_file_cpp_api_include_trtorch_trtorch.h.rst","_cpp_api/structtrtorch_1_1ExtraInfo.rst","_cpp_api/structtrtorch_1_1ExtraInfo_1_1InputRange.rst","_cpp_api/trtorch_cpp.rst","_cpp_api/unabridged_api.rst","_cpp_api/unabridged_orphan.rst","contributors/conversion.rst","contributors/execution.rst","contributors/lowering.rst","contributors/phases.rst","contributors/system_overview.rst","contributors/useful_links.rst","contributors/writing_converters.rst","index.rst","py_api/logging.rst","py_api/trtorch.rst","tutorials/getting_started.rst","tutorials/installation.rst","tutorials/ptq.rst","tutorials/trtorchc.rst"],objects:{"":{"logging::trtorch::Level":[17,1,1,"_CPPv4N7logging7trtorch5LevelE"],"logging::trtorch::Level::kDEBUG":[17,2,1,"_CPPv4N7logging7trtorch5Level6kDEBUGE"],"logging::trtorch::Level::kERROR":[17,2,1,"_CPPv4N7logging7trtorch5Level6kERRORE"],"logging::trtorch::Level::kGRAPH":[17,2,1,"_CPPv4N7logging7trtorch5Level6kGRAPHE"],"logging::trtorch::Level::kINFO":[17,2,1,"_CPPv4N7logging7trtorch5Level5kINFOE"],"logging::trtorch::Level::kINTERNAL_ERROR":[17,2,1,"_CPPv4N7logging7trtorch5Level15kINTERNAL_ERRORE"],"logging::trtorch::Level::kWARNING":[17,2,1,"_CPPv4N7logging7trtorch5Level8kWARNINGE"],"logging::trtorch::get_is_colored_output_on":[25,3,1,"_CPPv4N7logging7trtorch24get_is_colored_output_onEv"],"logging::trtorch::get_logging_prefix":[29,3,1,"_CPPv4N7logging7trtorch18get_logging_prefixEv"],"logging::trtorch::get_reportable_log_level":[23,3,1,"_CPPv4N7logging7trtorch24get_reportable_log_levelEv"],"logging::trtorch::kDEBUG":[17,2,1,"_CPPv4N7logging7trtorch5Level6kDEBUGE"],"logging::trtorch::kERROR":[17,2,1,"_CPPv4N7logging7trtorch5Level6kERRORE"],"logging::trtorch::kGRAPH":[17,2,1,"_CPPv4N7logging7trtorch5Level6kGRAPHE"],"logging::trtorch::kINFO":[17,2,1,"_CPPv4N7logging7trtorch5Level5kINFOE"],"logging::trtorch::kINTERNAL_ERROR":[17,2,1,"_CPPv4N7logging7trtorch5Level15kINTERNAL_ERRORE"],"logging::trtorch::kWARNING":[17,2,1,"_CPPv4N7logging7trtorch5Level8kWARNINGE"],"logging::trtorch::log":[27,3,1,"_CPPv4N7logging7trtorch3logE5LevelNSt6stringE"],"logging::trtorch::log::lvl":[27,4,1,"_CPPv4N7logging7trtorch3logE5LevelNSt6stringE"],"logging::trtorch::log::msg":[27,4,1,"_CPPv4N7logging7trtorch3logE5LevelNSt6stringE"],"logging::trtorch::set_is_colored_output_on":[26,3,1,"_CPPv4N7logging7trtorch24set_is_colored_output_onEb"],"logging::trtorch::set_is_colored_output_on::colored_output_on":[26,4,1,"_CPPv4N7logging7trtorch24set_is_colored_output_onEb"],"logging::trtorch::set_logging_prefix":[24,3,1,"_CPPv4N7logging7trtorch18set_logging_prefixENSt6stringE"],"logging::trtorch::set_logging_prefix::prefix":[24,4,1,"_CPPv4N7logging7trtorch18set_logging_prefixENSt6stringE"],"logging::trtorch::set_reportable_log_level":[28,3,1,"_CPPv4N7logging7trtorch24set_reportable_log_levelE5Level"],"logging::trtorch::set_reportable_log_level::lvl":[28,4,1,"_CPPv4N7logging7trtorch24set_reportable_log_levelE5Level"],"ptq::trtorch::make_int8_cache_calibrator":[33,3,1,"_CPPv4I0EN3ptq7trtorch26make_int8_cache_calibratorE19Int8CacheCalibratorI9AlgorithmERKNSt6stringE"],"ptq::trtorch::make_int8_cache_calibrator::Algorithm":[33,5,1,"_CPPv4I0EN3ptq7trtorch26make_int8_cache_calibratorE19Int8CacheCalibratorI9AlgorithmERKNSt6stringE"],"ptq::trtorch::make_int8_cache_calibrator::cache_file_path":[33,4,1,"_CPPv4I0EN3ptq7trtorch26make_int8_cache_calibratorE19Int8CacheCalibratorI9AlgorithmERKNSt6stringE"],"ptq::trtorch::make_int8_calibrator":[31,3,1,"_CPPv4I00EN3ptq7trtorch20make_int8_calibratorE14Int8CalibratorI9Algorithm10DataLoaderE10DataLoaderRKNSt6stringEb"],"ptq::trtorch::make_int8_calibrator::Algorithm":[31,5,1,"_CPPv4I00EN3ptq7trtorch20make_int8_calibratorE14Int8CalibratorI9Algorithm10DataLoaderE10DataLoaderRKNSt6stringEb"],"ptq::trtorch::make_int8_calibrator::DataLoader":[31,5,1,"_CPPv4I00EN3ptq7trtorch20make_int8_calibratorE14Int8CalibratorI9Algorithm10DataLoaderE10DataLoaderRKNSt6stringEb"],"ptq::trtorch::make_int8_calibrator::cache_file_path":[31,4,1,"_CPPv4I00EN3ptq7trtorch20make_int8_calibratorE14Int8CalibratorI9Algorithm10DataLoaderE10DataLoaderRKNSt6stringEb"],"ptq::trtorch::make_int8_calibrator::dataloader":[31,4,1,"_CPPv4I00EN3ptq7trtorch20make_int8_calibratorE14Int8CalibratorI9Algorithm10DataLoaderE10DataLoaderRKNSt6stringEb"],"ptq::trtorch::make_int8_calibrator::use_cache":[31,4,1,"_CPPv4I00EN3ptq7trtorch20make_int8_calibratorE14Int8CalibratorI9Algorithm10DataLoaderE10DataLoaderRKNSt6stringEb"],"trtorch::CheckMethodOperatorSupport":[35,3,1,"_CPPv4N7trtorch26CheckMethodOperatorSupportERKN5torch3jit6ModuleENSt6stringE"],"trtorch::CheckMethodOperatorSupport::method_name":[35,4,1,"_CPPv4N7trtorch26CheckMethodOperatorSupportERKN5torch3jit6ModuleENSt6stringE"],"trtorch::CheckMethodOperatorSupport::module":[35,4,1,"_CPPv4N7trtorch26CheckMethodOperatorSupportERKN5torch3jit6ModuleENSt6stringE"],"trtorch::CompileGraph":[36,3,1,"_CPPv4N7trtorch12CompileGraphERKN5torch3jit6ModuleE9ExtraInfo"],"trtorch::CompileGraph::info":[36,4,1,"_CPPv4N7trtorch12CompileGraphERKN5torch3jit6ModuleE9ExtraInfo"],"trtorch::CompileGraph::module":[36,4,1,"_CPPv4N7trtorch12CompileGraphERKN5torch3jit6ModuleE9ExtraInfo"],"trtorch::ConvertGraphToTRTEngine":[32,3,1,"_CPPv4N7trtorch23ConvertGraphToTRTEngineERKN5torch3jit6ModuleENSt6stringE9ExtraInfo"],"trtorch::ConvertGraphToTRTEngine::info":[32,4,1,"_CPPv4N7trtorch23ConvertGraphToTRTEngineERKN5torch3jit6ModuleENSt6stringE9ExtraInfo"],"trtorch::ConvertGraphToTRTEngine::method_name":[32,4,1,"_CPPv4N7trtorch23ConvertGraphToTRTEngineERKN5torch3jit6ModuleENSt6stringE9ExtraInfo"],"trtorch::ConvertGraphToTRTEngine::module":[32,4,1,"_CPPv4N7trtorch23ConvertGraphToTRTEngineERKN5torch3jit6ModuleENSt6stringE9ExtraInfo"],"trtorch::ExtraInfo":[44,6,1,"_CPPv4N7trtorch9ExtraInfoE"],"trtorch::ExtraInfo::DataType":[44,6,1,"_CPPv4N7trtorch9ExtraInfo8DataTypeE"],"trtorch::ExtraInfo::DataType::DataType":[44,3,1,"_CPPv4N7trtorch9ExtraInfo8DataType8DataTypeEv"],"trtorch::ExtraInfo::DataType::DataType::t":[44,4,1,"_CPPv4N7trtorch9ExtraInfo8DataType8DataTypeEN3c1010ScalarTypeE"],"trtorch::ExtraInfo::DataType::Value":[44,1,1,"_CPPv4N7trtorch9ExtraInfo8DataType5ValueE"],"trtorch::ExtraInfo::DataType::Value::kChar":[44,2,1,"_CPPv4N7trtorch9ExtraInfo8DataType5Value5kCharE"],"trtorch::ExtraInfo::DataType::Value::kFloat":[44,2,1,"_CPPv4N7trtorch9ExtraInfo8DataType5Value6kFloatE"],"trtorch::ExtraInfo::DataType::Value::kHalf":[44,2,1,"_CPPv4N7trtorch9ExtraInfo8DataType5Value5kHalfE"],"trtorch::ExtraInfo::DataType::kChar":[1,2,1,"_CPPv4N7trtorch9ExtraInfo8DataType5Value5kCharE"],"trtorch::ExtraInfo::DataType::kFloat":[1,2,1,"_CPPv4N7trtorch9ExtraInfo8DataType5Value6kFloatE"],"trtorch::ExtraInfo::DataType::kHalf":[1,2,1,"_CPPv4N7trtorch9ExtraInfo8DataType5Value5kHalfE"],"trtorch::ExtraInfo::DataType::operator Value":[44,3,1,"_CPPv4NK7trtorch9ExtraInfo8DataTypecv5ValueEv"],"trtorch::ExtraInfo::DataType::operator bool":[44,3,1,"_CPPv4N7trtorch9ExtraInfo8DataTypecvbEv"],"trtorch::ExtraInfo::DataType::operator!=":[44,3,1,"_CPPv4NK7trtorch9ExtraInfo8DataTypeneEN8DataType5ValueE"],"trtorch::ExtraInfo::DataType::operator!=::other":[44,4,1,"_CPPv4NK7trtorch9ExtraInfo8DataTypeneEN8DataType5ValueE"],"trtorch::ExtraInfo::DataType::operator==":[44,3,1,"_CPPv4NK7trtorch9ExtraInfo8DataTypeeqEN8DataType5ValueE"],"trtorch::ExtraInfo::DataType::operator==::other":[44,4,1,"_CPPv4NK7trtorch9ExtraInfo8DataTypeeqEN8DataType5ValueE"],"trtorch::ExtraInfo::DeviceType":[44,6,1,"_CPPv4N7trtorch9ExtraInfo10DeviceTypeE"],"trtorch::ExtraInfo::DeviceType::DeviceType":[44,3,1,"_CPPv4N7trtorch9ExtraInfo10DeviceType10DeviceTypeEv"],"trtorch::ExtraInfo::DeviceType::DeviceType::t":[44,4,1,"_CPPv4N7trtorch9ExtraInfo10DeviceType10DeviceTypeEN3c1010DeviceTypeE"],"trtorch::ExtraInfo::DeviceType::Value":[44,1,1,"_CPPv4N7trtorch9ExtraInfo10DeviceType5ValueE"],"trtorch::ExtraInfo::DeviceType::Value::kDLA":[44,2,1,"_CPPv4N7trtorch9ExtraInfo10DeviceType5Value4kDLAE"],"trtorch::ExtraInfo::DeviceType::Value::kGPU":[44,2,1,"_CPPv4N7trtorch9ExtraInfo10DeviceType5Value4kGPUE"],"trtorch::ExtraInfo::DeviceType::kDLA":[2,2,1,"_CPPv4N7trtorch9ExtraInfo10DeviceType5Value4kDLAE"],"trtorch::ExtraInfo::DeviceType::kGPU":[2,2,1,"_CPPv4N7trtorch9ExtraInfo10DeviceType5Value4kGPUE"],"trtorch::ExtraInfo::DeviceType::operator Value":[44,3,1,"_CPPv4NK7trtorch9ExtraInfo10DeviceTypecv5ValueEv"],"trtorch::ExtraInfo::DeviceType::operator bool":[44,3,1,"_CPPv4N7trtorch9ExtraInfo10DeviceTypecvbEv"],"trtorch::ExtraInfo::DeviceType::operator!=":[44,3,1,"_CPPv4NK7trtorch9ExtraInfo10DeviceTypeneE10DeviceType"],"trtorch::ExtraInfo::DeviceType::operator!=::other":[44,4,1,"_CPPv4NK7trtorch9ExtraInfo10DeviceTypeneE10DeviceType"],"trtorch::ExtraInfo::DeviceType::operator==":[44,3,1,"_CPPv4NK7trtorch9ExtraInfo10DeviceTypeeqE10DeviceType"],"trtorch::ExtraInfo::DeviceType::operator==::other":[44,4,1,"_CPPv4NK7trtorch9ExtraInfo10DeviceTypeeqE10DeviceType"],"trtorch::ExtraInfo::EngineCapability":[44,1,1,"_CPPv4N7trtorch9ExtraInfo16EngineCapabilityE"],"trtorch::ExtraInfo::EngineCapability::kDEFAULT":[44,2,1,"_CPPv4N7trtorch9ExtraInfo16EngineCapability8kDEFAULTE"],"trtorch::ExtraInfo::EngineCapability::kSAFE_DLA":[44,2,1,"_CPPv4N7trtorch9ExtraInfo16EngineCapability9kSAFE_DLAE"],"trtorch::ExtraInfo::EngineCapability::kSAFE_GPU":[44,2,1,"_CPPv4N7trtorch9ExtraInfo16EngineCapability9kSAFE_GPUE"],"trtorch::ExtraInfo::ExtraInfo":[44,3,1,"_CPPv4N7trtorch9ExtraInfo9ExtraInfoENSt6vectorINSt6vectorI7int64_tEEEE"],"trtorch::ExtraInfo::ExtraInfo::fixed_sizes":[44,4,1,"_CPPv4N7trtorch9ExtraInfo9ExtraInfoENSt6vectorINSt6vectorI7int64_tEEEE"],"trtorch::ExtraInfo::ExtraInfo::input_ranges":[44,4,1,"_CPPv4N7trtorch9ExtraInfo9ExtraInfoENSt6vectorI10InputRangeEE"],"trtorch::ExtraInfo::InputRange":[45,6,1,"_CPPv4N7trtorch9ExtraInfo10InputRangeE"],"trtorch::ExtraInfo::InputRange::InputRange":[45,3,1,"_CPPv4N7trtorch9ExtraInfo10InputRange10InputRangeENSt6vectorI7int64_tEENSt6vectorI7int64_tEENSt6vectorI7int64_tEE"],"trtorch::ExtraInfo::InputRange::InputRange::max":[45,4,1,"_CPPv4N7trtorch9ExtraInfo10InputRange10InputRangeENSt6vectorI7int64_tEENSt6vectorI7int64_tEENSt6vectorI7int64_tEE"],"trtorch::ExtraInfo::InputRange::InputRange::min":[45,4,1,"_CPPv4N7trtorch9ExtraInfo10InputRange10InputRangeENSt6vectorI7int64_tEENSt6vectorI7int64_tEENSt6vectorI7int64_tEE"],"trtorch::ExtraInfo::InputRange::InputRange::opt":[45,4,1,"_CPPv4N7trtorch9ExtraInfo10InputRange10InputRangeENSt6vectorI7int64_tEENSt6vectorI7int64_tEENSt6vectorI7int64_tEE"],"trtorch::ExtraInfo::InputRange::max":[45,7,1,"_CPPv4N7trtorch9ExtraInfo10InputRange3maxE"],"trtorch::ExtraInfo::InputRange::min":[45,7,1,"_CPPv4N7trtorch9ExtraInfo10InputRange3minE"],"trtorch::ExtraInfo::InputRange::opt":[45,7,1,"_CPPv4N7trtorch9ExtraInfo10InputRange3optE"],"trtorch::ExtraInfo::allow_gpu_fallback":[44,7,1,"_CPPv4N7trtorch9ExtraInfo18allow_gpu_fallbackE"],"trtorch::ExtraInfo::capability":[44,7,1,"_CPPv4N7trtorch9ExtraInfo10capabilityE"],"trtorch::ExtraInfo::debug":[44,7,1,"_CPPv4N7trtorch9ExtraInfo5debugE"],"trtorch::ExtraInfo::device":[44,7,1,"_CPPv4N7trtorch9ExtraInfo6deviceE"],"trtorch::ExtraInfo::input_ranges":[44,7,1,"_CPPv4N7trtorch9ExtraInfo12input_rangesE"],"trtorch::ExtraInfo::kDEFAULT":[44,2,1,"_CPPv4N7trtorch9ExtraInfo16EngineCapability8kDEFAULTE"],"trtorch::ExtraInfo::kSAFE_DLA":[44,2,1,"_CPPv4N7trtorch9ExtraInfo16EngineCapability9kSAFE_DLAE"],"trtorch::ExtraInfo::kSAFE_GPU":[44,2,1,"_CPPv4N7trtorch9ExtraInfo16EngineCapability9kSAFE_GPUE"],"trtorch::ExtraInfo::max_batch_size":[44,7,1,"_CPPv4N7trtorch9ExtraInfo14max_batch_sizeE"],"trtorch::ExtraInfo::num_avg_timing_iters":[44,7,1,"_CPPv4N7trtorch9ExtraInfo20num_avg_timing_itersE"],"trtorch::ExtraInfo::num_min_timing_iters":[44,7,1,"_CPPv4N7trtorch9ExtraInfo20num_min_timing_itersE"],"trtorch::ExtraInfo::op_precision":[44,7,1,"_CPPv4N7trtorch9ExtraInfo12op_precisionE"],"trtorch::ExtraInfo::ptq_calibrator":[44,7,1,"_CPPv4N7trtorch9ExtraInfo14ptq_calibratorE"],"trtorch::ExtraInfo::refit":[44,7,1,"_CPPv4N7trtorch9ExtraInfo5refitE"],"trtorch::ExtraInfo::strict_types":[44,7,1,"_CPPv4N7trtorch9ExtraInfo12strict_typesE"],"trtorch::ExtraInfo::workspace_size":[44,7,1,"_CPPv4N7trtorch9ExtraInfo14workspace_sizeE"],"trtorch::dump_build_info":[34,3,1,"_CPPv4N7trtorch15dump_build_infoEv"],"trtorch::get_build_info":[30,3,1,"_CPPv4N7trtorch14get_build_infoEv"],"trtorch::ptq::Int8CacheCalibrator":[3,6,1,"_CPPv4I0EN7trtorch3ptq19Int8CacheCalibratorE"],"trtorch::ptq::Int8CacheCalibrator::Algorithm":[3,5,1,"_CPPv4I0EN7trtorch3ptq19Int8CacheCalibratorE"],"trtorch::ptq::Int8CacheCalibrator::Int8CacheCalibrator":[3,3,1,"_CPPv4N7trtorch3ptq19Int8CacheCalibrator19Int8CacheCalibratorERKNSt6stringE"],"trtorch::ptq::Int8CacheCalibrator::Int8CacheCalibrator::cache_file_path":[3,4,1,"_CPPv4N7trtorch3ptq19Int8CacheCalibrator19Int8CacheCalibratorERKNSt6stringE"],"trtorch::ptq::Int8CacheCalibrator::getBatch":[3,3,1,"_CPPv4N7trtorch3ptq19Int8CacheCalibrator8getBatchEA_PvA_PKci"],"trtorch::ptq::Int8CacheCalibrator::getBatch::bindings":[3,4,1,"_CPPv4N7trtorch3ptq19Int8CacheCalibrator8getBatchEA_PvA_PKci"],"trtorch::ptq::Int8CacheCalibrator::getBatch::names":[3,4,1,"_CPPv4N7trtorch3ptq19Int8CacheCalibrator8getBatchEA_PvA_PKci"],"trtorch::ptq::Int8CacheCalibrator::getBatch::nbBindings":[3,4,1,"_CPPv4N7trtorch3ptq19Int8CacheCalibrator8getBatchEA_PvA_PKci"],"trtorch::ptq::Int8CacheCalibrator::getBatchSize":[3,3,1,"_CPPv4NK7trtorch3ptq19Int8CacheCalibrator12getBatchSizeEv"],"trtorch::ptq::Int8CacheCalibrator::operator nvinfer1::IInt8Calibrator*":[3,3,1,"_CPPv4N7trtorch3ptq19Int8CacheCalibratorcvPN8nvinfer115IInt8CalibratorEEv"],"trtorch::ptq::Int8CacheCalibrator::readCalibrationCache":[3,3,1,"_CPPv4N7trtorch3ptq19Int8CacheCalibrator20readCalibrationCacheER6size_t"],"trtorch::ptq::Int8CacheCalibrator::readCalibrationCache::length":[3,4,1,"_CPPv4N7trtorch3ptq19Int8CacheCalibrator20readCalibrationCacheER6size_t"],"trtorch::ptq::Int8CacheCalibrator::writeCalibrationCache":[3,3,1,"_CPPv4N7trtorch3ptq19Int8CacheCalibrator21writeCalibrationCacheEPKv6size_t"],"trtorch::ptq::Int8CacheCalibrator::writeCalibrationCache::cache":[3,4,1,"_CPPv4N7trtorch3ptq19Int8CacheCalibrator21writeCalibrationCacheEPKv6size_t"],"trtorch::ptq::Int8CacheCalibrator::writeCalibrationCache::length":[3,4,1,"_CPPv4N7trtorch3ptq19Int8CacheCalibrator21writeCalibrationCacheEPKv6size_t"],"trtorch::ptq::Int8Calibrator":[4,6,1,"_CPPv4I00EN7trtorch3ptq14Int8CalibratorE"],"trtorch::ptq::Int8Calibrator::Algorithm":[4,5,1,"_CPPv4I00EN7trtorch3ptq14Int8CalibratorE"],"trtorch::ptq::Int8Calibrator::DataLoaderUniquePtr":[4,5,1,"_CPPv4I00EN7trtorch3ptq14Int8CalibratorE"],"trtorch::ptq::Int8Calibrator::Int8Calibrator":[4,3,1,"_CPPv4N7trtorch3ptq14Int8Calibrator14Int8CalibratorE19DataLoaderUniquePtrRKNSt6stringEb"],"trtorch::ptq::Int8Calibrator::Int8Calibrator::cache_file_path":[4,4,1,"_CPPv4N7trtorch3ptq14Int8Calibrator14Int8CalibratorE19DataLoaderUniquePtrRKNSt6stringEb"],"trtorch::ptq::Int8Calibrator::Int8Calibrator::dataloader":[4,4,1,"_CPPv4N7trtorch3ptq14Int8Calibrator14Int8CalibratorE19DataLoaderUniquePtrRKNSt6stringEb"],"trtorch::ptq::Int8Calibrator::Int8Calibrator::use_cache":[4,4,1,"_CPPv4N7trtorch3ptq14Int8Calibrator14Int8CalibratorE19DataLoaderUniquePtrRKNSt6stringEb"],"trtorch::ptq::Int8Calibrator::getBatch":[4,3,1,"_CPPv4N7trtorch3ptq14Int8Calibrator8getBatchEA_PvA_PKci"],"trtorch::ptq::Int8Calibrator::getBatch::bindings":[4,4,1,"_CPPv4N7trtorch3ptq14Int8Calibrator8getBatchEA_PvA_PKci"],"trtorch::ptq::Int8Calibrator::getBatch::names":[4,4,1,"_CPPv4N7trtorch3ptq14Int8Calibrator8getBatchEA_PvA_PKci"],"trtorch::ptq::Int8Calibrator::getBatch::nbBindings":[4,4,1,"_CPPv4N7trtorch3ptq14Int8Calibrator8getBatchEA_PvA_PKci"],"trtorch::ptq::Int8Calibrator::getBatchSize":[4,3,1,"_CPPv4NK7trtorch3ptq14Int8Calibrator12getBatchSizeEv"],"trtorch::ptq::Int8Calibrator::operator nvinfer1::IInt8Calibrator*":[4,3,1,"_CPPv4N7trtorch3ptq14Int8CalibratorcvPN8nvinfer115IInt8CalibratorEEv"],"trtorch::ptq::Int8Calibrator::readCalibrationCache":[4,3,1,"_CPPv4N7trtorch3ptq14Int8Calibrator20readCalibrationCacheER6size_t"],"trtorch::ptq::Int8Calibrator::readCalibrationCache::length":[4,4,1,"_CPPv4N7trtorch3ptq14Int8Calibrator20readCalibrationCacheER6size_t"],"trtorch::ptq::Int8Calibrator::writeCalibrationCache":[4,3,1,"_CPPv4N7trtorch3ptq14Int8Calibrator21writeCalibrationCacheEPKv6size_t"],"trtorch::ptq::Int8Calibrator::writeCalibrationCache::cache":[4,4,1,"_CPPv4N7trtorch3ptq14Int8Calibrator21writeCalibrationCacheEPKv6size_t"],"trtorch::ptq::Int8Calibrator::writeCalibrationCache::length":[4,4,1,"_CPPv4N7trtorch3ptq14Int8Calibrator21writeCalibrationCacheEPKv6size_t"],STR:[5,0,1,"c.STR"],TRTORCH_API:[6,0,1,"c.TRTORCH_API"],TRTORCH_HIDDEN:[7,0,1,"c.TRTORCH_HIDDEN"],TRTORCH_MAJOR_VERSION:[8,0,1,"c.TRTORCH_MAJOR_VERSION"],TRTORCH_MINOR_VERSION:[12,0,1,"c.TRTORCH_MINOR_VERSION"],TRTORCH_PATCH_VERSION:[9,0,1,"c.TRTORCH_PATCH_VERSION"],TRTORCH_VERSION:[10,0,1,"c.TRTORCH_VERSION"],XSTR:[11,0,1,"c.XSTR"],trtorch:[58,8,0,"-"]},"trtorch.logging":{Level:[57,9,1,""],get_is_colored_output_on:[57,10,1,""],get_logging_prefix:[57,10,1,""],get_reportable_log_level:[57,10,1,""],log:[57,10,1,""],set_is_colored_output_on:[57,10,1,""],set_logging_prefix:[57,10,1,""],set_reportable_log_level:[57,10,1,""]},"trtorch.logging.Level":{Debug:[57,11,1,""],Error:[57,11,1,""],Info:[57,11,1,""],InternalError:[57,11,1,""],Warning:[57,11,1,""]},trtorch:{DeviceType:[58,9,1,""],EngineCapability:[58,9,1,""],check_method_op_support:[58,10,1,""],compile:[58,10,1,""],convert_method_to_trt_engine:[58,10,1,""],dtype:[58,9,1,""],dump_build_info:[58,10,1,""],get_build_info:[58,10,1,""],logging:[57,8,0,"-"]}},objnames:{"0":["c","macro","C macro"],"1":["cpp","enum","C++ enum"],"10":["py","function","Python function"],"11":["py","attribute","Python attribute"],"2":["cpp","enumerator","C++ enumerator"],"3":["cpp","function","C++ function"],"4":["cpp","functionParam","functionParam"],"5":["cpp","templateParam","templateParam"],"6":["cpp","class","C++ class"],"7":["cpp","member","C++ member"],"8":["py","module","Python module"],"9":["py","class","Python class"]},objtypes:{"0":"c:macro","1":"cpp:enum","10":"py:function","11":"py:attribute","2":"cpp:enumerator","3":"cpp:function","4":"cpp:functionParam","5":"cpp:templateParam","6":"cpp:class","7":"cpp:member","8":"py:module","9":"py:class"},terms:{"abstract":[50,55],"byte":58,"case":[1,2,44,49,55,61],"catch":59,"char":[3,4,42,59],"class":[31,33,42,43,44,48,55,57,58,59,61],"const":[1,2,3,4,31,32,33,35,36,42,43,44,51,55,59,61],"default":[1,2,3,4,17,31,33,41,43,44,58,61,62],"enum":[1,2,40,43,44,48,57,61],"final":49,"float":[58,59,62],"function":[1,2,3,4,44,45,48,50,51,55,59],"import":[59,62],"int":[3,4,42,50,59],"long":49,"new":[1,2,3,4,36,44,45,50,53,55,57,59],"public":[1,2,3,4,42,43,44,45,61],"return":[1,2,3,4,23,25,30,31,32,33,35,36,40,41,42,43,44,50,51,52,53,55,57,58,59,61],"static":[44,45,49,55,58,59],"super":[42,59],"throw":[51,59],"true":[1,2,4,43,44,51,55,58,59,61],"try":[53,59],"void":[3,4,24,26,27,28,34,40,42,43],"while":61,And:59,Are:40,But:59,For:[49,59],Its:55,Not:3,One:[58,59],PRs:59,Thats:59,The:[2,44,49,50,51,52,53,55,57,60,61,62],Then:[60,61],There:[4,49,55,59,61],These:[49,50],Use:[44,55,58,61],Useful:56,Using:4,Will:35,With:[59,61],___torch_mangle_10:[50,59],___torch_mangle_5:59,___torch_mangle_9:59,__attribute__:41,__gnuc__:41,__init__:59,__torch__:[50,59],__visibility__:41,_all_:51,_convolut:59,aarch64:[53,60],abl:[49,51,55,56,61],about:[49,50,55,58,62],abov:[28,59],accept:[44,45,50,55,62],access:[51,55,56,59],accord:55,accuraci:61,across:51,act:50,acthardtanh:55,activ:[59,61],activationtyp:55,actual:[50,51,55,57,59],add:[27,49,51,55,57,59],add_:[51,59],addactiv:55,added:[28,49],addenginetograph:[50,59],addit:[51,59],addlay:59,addshuffl:59,advanc:61,after:[49,56,59,62],again:[42,55],against:[59,62],ahead:59,aim:51,algorithm:[3,4,31,33,42,43,61],all:[17,43,50,51,58,59,61,62],alloc:55,allow:[44,45,49,51,58,62],allow_gpu_fallback:[43,44,58],alreadi:[49,51,59,62],also:[33,49,55,56,59,60,61],alwai:[3,4,26],analogu:55,ani:[49,55,58,59,60,62],annot:[55,59],anoth:59,aot:[56,59],api:[13,15,16,40,41,42,43,53,55,58,59,61],apidirectori:[22,46],appli:61,applic:[2,33,44,51,59,62],aquir:59,architectur:56,archiv:60,aren:59,arg:[49,59],argc:59,argument:[50,51,55,59,62],argv:59,around:[50,55,59],arrai:[3,4,49],arrayref:[43,44,45],arxiv:61,aspect:62,assembl:[49,59],assign:[3,4,50],associ:[49,55,59],associatevalueandivalu:55,associatevalueandtensor:[55,59],aten:[51,54,55,59],attribut:51,auto:[42,55,59,61],avail:55,averag:[44,58,62],avg:62,back:[50,51,53,59],back_insert:42,background:59,base:[34,46,47,50,57,59,60,61],basic:62,batch:[3,4,42,44,55,58,61,62],batch_norm:55,batch_siz:[42,61],batched_data_:42,batchnorm:51,batchtyp:42,bazel:[53,60],bdist_wheel:60,becaus:[55,59],becom:55,been:[49,55,59],befor:[51,53,55,56,59,60],begin:[42,60],beginn:59,behavior:58,being:59,below:[55,59],benefit:[55,59],best:[44,45],better:[59,61],between:[55,61],bia:[51,59],bin:60,binari:[42,61],bind:[3,4,42],bit:[55,58,59],blob:54,block0:51,block1:51,block:49,bool:[1,2,3,4,25,26,31,35,40,42,43,44,51,55,57,58,59,61],both:59,briefli:59,bsd:43,buffer:[3,4],bug:60,build:[30,31,33,44,49,52,53,55,58,59,61,62],build_fil:60,builderconfig:43,built:[60,62],c10:[1,2,43,44,45,59,61],c_api:54,c_str:[55,59],cach:[3,4,31,33,42,61,62],cache_:42,cache_fil:42,cache_file_path:[3,4,31,33,42,43],cache_file_path_:42,cache_size_:42,calcul:[49,59],calibr:[3,4,31,33,42,44,61,62],calibration_cache_fil:[31,33,61],calibration_dataload:[31,61],calibration_dataset:61,call:[31,33,36,44,50,51,55,58,59],callmethod:59,can:[1,2,4,31,32,33,44,45,49,50,51,52,53,55,58,59,60,61,62],cannot:[51,59],capabl:[43,44,58,62],cast:[3,4],caus:[55,60],cdll:59,cerr:59,chain:55,chanc:55,chang:[33,53,61],check:[1,2,35,44,51,55,58,59,60,62],check_method_op_support:58,checkmethodoperatorsupport:[21,37,43,46,47,59],choos:59,cifar10:61,cifar:61,classif:59,clear:42,cli:62,close:59,closer:51,code:[53,56,59],collect:59,color:[25,26,57],colored_output_on:[26,40,57],com:[54,59,60,61],command:62,comment:60,common:[49,51],commun:59,comparis:[1,44],comparison:[2,44],compat:[1,2,44],compil:[32,35,36,44,50,51,55,58,61,62],compile_set:59,compilegraph:[21,37,43,46,47,59,61],complet:59,complex:59,compliat:61,compon:[52,53,59],compos:59,composit:59,comput:61,config:60,configur:[32,36,56,58,59,61],connect:51,consid:59,consol:62,consolid:59,constant:[49,50,51,59],constexpr:[1,2,43,44],construct:[1,2,3,4,44,45,49,52,53,55,59],constructor:[1,44,59],consum:[4,49,59],contain:[31,35,49,51,55,58,59,60,61],content:61,context:[49,50,52,53],contributor:59,control:59,conv1:59,conv2:59,conv2d:59,conv:[55,59],convers:[50,51,58,59],conversionctx:[55,59],convert:[3,4,32,35,36,51,52,53,56,58],convert_method_to_trt_engin:58,convertgraphtotrtengin:[21,37,43,46,47,59],convien:44,convienc:[3,4],convolut:61,coordin:53,copi:[42,55],copyright:43,core:[51,53,59],corespond:50,corpor:43,correct:60,correspond:55,coupl:[49,53],cout:59,cp35:60,cp35m:60,cp36:60,cp36m:60,cp37:60,cp37m:60,cp38:60,cpp:[14,15,16,40,41,42,43,48,51,53,59,61],cpp_frontend:61,cppdirectori:[22,46],cppdoc:59,creat:[31,33,49,55,62],csrc:[51,54],cstddef:61,ctx:[55,59],ctype:59,cuda:[44,58,59,60],cudafloattyp:59,current:[23,55],data:[1,3,4,31,33,42,44,49,52,53,55,61],data_dir:61,dataflow:[55,59],dataload:[4,31,33,42,43,44,61],dataloader_:42,dataloaderopt:61,dataloaderuniqueptr:[4,42],dataset:[33,61],datatyp:[2,21,37,43,44,46,47,58],datatypeclass:[0,46],dbg:60,dead_code_elimin:51,deal:55,debug:[17,26,43,44,55,57,58,62],debugg:[58,62],dedic:51,deep:[55,56,61],deeplearn:54,def:59,defin:[1,2,3,4,17,23,24,25,26,27,28,29,30,31,32,33,34,35,36,41,44,45,48,59,61,62],definit:[48,55],delet:[1,2,43,44,51],demo:61,depend:[30,33,49,53,59],deploi:[56,59,61],deploy:[59,61,62],describ:[44,55,58,59],deseri:[58,59],destroi:55,destructor:55,detail:59,determin:51,develop:[56,59,60],deviat:62,devic:[2,43,44,58,59,62],devicetyp:[0,21,37,43,44,46,47,58],dict:58,dictionari:[58,59],differ:[33,56,59],dimens:51,directli:[55,61],directori:[18,19,20,21,22,43,46,60,61],disabl:[57,62],disclos:60,displai:62,distdir:60,distribut:[58,59,61],dla:[2,44,58,62],doc:[53,54,60],docsrc:53,document:[40,41,42,43,46,47,53,59,61],doe:[41,42,51,55,61],doesn:59,doing:[49,51,59,61],domain:61,don:[55,61],done:[49,53],dont:40,down:60,download:60,doxygen_should_skip_thi:[42,43],driver:60,dtype:58,due:[3,4],dump:[34,60,62],dump_build_info:[21,37,43,46,47,58],dure:[55,61,62],dynam:[44,45,58],each:[3,4,44,49,50,51,55,59],easi:[49,62],easier:[52,53,55,59,61],easili:[3,4],edu:61,effect:[51,59,61],effici:55,either:[44,45,55,58,59,60,62],element:50,element_typ:42,els:[41,42,58],embed:62,emit:49,empti:59,emum:[17,44],enabl:[3,4,25,57,58],encount:60,end:[42,55,59],end_dim:59,endif:[41,42,43],enforc:59,engin:[1,2,32,36,44,45,49,52,53,56,58,59,61,62],engine_converted_from_jit:59,enginecap:[43,44,58],ensur:[33,51],enter:49,entri:[44,55],entropi:[31,33,61],enumer:[1,2,17,44],equival:[36,52,53,55,58,59],equivil:32,error:[17,49,51,53,57,59,60],etc:58,eval:59,evalu:[50,52,53],evaluated_value_map:[49,55],even:59,everi:59,everyth:17,exampl:[50,55,59,61],exception_elimin:51,execpt:51,execut:[51,58,59,61],execute_engin:[50,59],exhaust:59,exist:[4,32,35,36,58,60,61],expect:[51,55,59],explic:42,explicit:[3,4,43,51,56,61],explicitli:61,explict:42,explictli:[1,44],extend:55,extent:[56,59],extra:44,extra_info:[58,61],extrainfo:[0,3,4,21,32,36,37,43,46,47,58,59,61],extrainfostruct:[0,46],f16:62,f32:62,factori:[4,31,33,61],fail:59,fallback:[55,62],fals:[1,2,3,4,42,43,44,58,59],fashion:59,fc1:59,fc2:59,fc3:59,feat:59,featur:[61,62],fed:[3,4,59],feed:[31,33,59],feel:56,field:[3,4,61],file:[1,2,3,4,5,6,7,8,9,10,11,12,17,23,24,25,26,27,28,29,30,31,32,33,34,35,36,44,45,53,58,59,60,61,62],file_path:62,find:[4,59],first:[49,51,59,61],fix:44,fixed_s:[43,44],flag:62,flatten:59,flatten_convert:59,float16:[58,62],float32:[58,62],flow:[55,59],fly:59,follow:[59,61,62],forc:62,form:49,format:62,forward:[31,33,36,50,55,58,59,61],found:[43,59,60,61],fp16:[1,44,56,58,59],fp32:[1,44,56,61],freed:55,freeze_modul:51,from:[1,2,3,4,31,33,42,44,45,49,50,51,52,53,55,59,61,62],full:[55,59,61,62],fulli:[35,51,58,59,61],fuse_flatten_linear:51,fuse_linear:51,fusion:55,gaurd:41,gcc:53,gear:61,gener:[3,4,33,50,51,53,55,59,61,62],get:[1,2,3,4,23,30,42,44,45,55,57,60,61],get_batch_impl:42,get_build_info:[21,37,43,46,47,58],get_is_colored_output_on:[18,38,40,46,47,57],get_logging_prefix:[18,38,40,46,47,57],get_reportable_log_level:[18,38,40,46,47,57],getattr:[51,59],getbatch:[3,4,42],getbatchs:[3,4,42],getdimens:[55,59],getoutput:[55,59],github:[54,59,60,61],given:[44,51,58,59,62],global:[27,59],gnu:60,goal:55,going:[42,59],good:[42,55],got:59,gpu:[2,32,36,44,58,59,62],graph:[17,32,35,36,43,49,52,53,55,56,58,59],great:59,gtc:56,guard:51,guard_elimin:51,hack:42,half:[58,59,62],handl:51,happen:59,hardtanh:55,has:[49,51,53,55,59,61],hash:60,have:[33,42,49,55,56,59,60,61,62],haven:59,header:59,help:[26,49,55,62],helper:55,here:[42,49,50,59,60,61],hermet:60,hfile:[22,46],hidden:41,high:51,higher:[51,59],hinton:61,hold:[44,45,49,55,61],hood:53,how:[3,4,59],howev:33,html:[54,59,60,61],http:[54,59,60,61],http_archiv:60,idea:51,ident:62,ifndef:[42,43],ifstream:42,iint8calibr:[3,4,31,33,42,43,44,61],iint8entropycalibrator2:[3,4,31,33,42,43,61],iint8minmaxcalibr:[31,33,61],ilay:55,imag:61,images_:61,implement:[3,4,50,59,61],implic:51,in_shap:59,in_tensor:59,incas:42,includ:[14,16,17,30,34,40,41,42,43,48,58,59,60,61,62],includedirectori:[22,46],index:[54,56,61],inetworkdefinit:49,infer:[51,59,61],info:[17,32,36,43,44,55,57,59,62],inform:[28,30,34,49,56,58,59,61,62],infrastructur:61,ingest:53,inherit:[46,47,61],inlin:[43,51,59],input0:59,input1:59,input2:59,input:[3,4,33,42,44,45,49,50,51,52,53,55,58,59,61,62],input_data:59,input_file_path:62,input_rang:[43,44],input_s:59,input_shap:[58,59,61,62],inputrang:[21,37,43,44,46,47,59],inputrangeclass:[0,46],inspect:[55,59],instal:[56,59],instanc:[51,59],instanti:[52,53,55,59],instatin:[1,2,44],instead:[49,51,59,62],instruct:59,insur:60,int16_t:43,int64_t:[43,44,45,61],int8:[1,42,44,56,58,61,62],int8_t:43,int8cachecalibr:[20,33,39,42,43,46,47],int8cachecalibratortempl:[0,46],int8calibr:[3,20,31,39,42,43,46,47],int8calibratorstruct:[0,46],integ:58,integr:56,interfac:[1,2,44,50,53,55,61],intermedi:[17,59],intern:[2,17,44,55,59],internal_error:57,internalerror:57,interpret:50,intro_to_torchscript_tutori:59,invok:59,ios:42,iostream:[20,42,59],is_train:61,iscustomclass:55,issu:[3,4,59,60],istensor:55,istream_iter:42,it_:42,itensor:[49,55,59],iter:[42,44,49,58,62],its:[33,49,50,55],itself:[1,2,44,62],ivalu:[49,50,55,59],jetson:58,jit:[32,35,36,43,49,50,51,52,53,54,55,58,59,62],just:[42,43,51,56,59],kchar:[1,43,44],kclip:55,kcpu:[2,44],kcuda:[2,44,59],kdebug:[17,40,42],kdefault:[43,44],kdla:[2,43,44],kei:[58,59],kernel:[44,55,58,62],kerror:[17,40],kfloat:[1,43,44],kgpu:[2,43,44],kgraph:[17,40,51],khalf:[1,43,44,59],ki8:61,kind:[49,58],kinfo:[17,40,42],kinternal_error:[17,40],know:[40,55],kriz:61,krizhevski:61,ksafe_dla:[43,44],ksafe_gpu:[43,44],ktest:61,ktrain:61,kwarn:[17,40],label:61,laid:59,lambda:[55,59],languag:59,larg:[52,53,59,61],larger:61,last:51,later:[33,59],layer:[44,49,51,55,58,59,61,62],ld_library_path:60,ldd:60,learn:[56,61],leav:51,lenet:59,lenet_trt:[50,59],lenetclassifi:59,lenetfeatextractor:59,length:[3,4,42],let:[44,51,55,62],level:[18,23,27,28,38,40,42,46,47,51,53,57,59],levelnamespac:[0,46],leverag:61,lib:[51,59],librari:[30,43,50,52,53,55,59,60],libtorch:[4,34,55,59,60,61],libtrtorch:[59,60,62],licens:43,like:[49,55,59,61,62],limit:[51,61],line:62,linear:59,link:[49,56,59,62],linux:[53,60],linux_x86_64:60,list:[18,19,20,21,35,48,49,55,58,59,60],listconstruct:49,live:55,load:[50,59,61,62],local:[51,59],locat:61,log:[16,17,19,20,21,22,37,42,43,46,47,48,51,55,58],log_debug:55,logger:57,loggingenum:[0,46],loglevel:57,look:[49,50,51,52,53,59,61],loop:51,loss:61,lot:55,lower:17,lower_graph:51,lower_tupl:51,loweralltupl:51,lowersimpletupl:51,lvl:[27,28,40],machin:[50,61],macro:[5,6,7,8,9,10,11,12,16,18,21,22,40,43,46,48],made:[51,52,53],mai:[49,53,59,61],main:[50,52,53,55,59],maintain:[50,55],major:53,make:[49,59,60,61],make_data_load:[4,61],make_int8_cache_calibr:[21,39,43,46,47,61],make_int8_calibr:[21,33,39,43,46,47,61],manag:[49,50,52,53,55,59],map:[2,44,49,51,52,53,55,59,61],master:[54,60,61],match:[44,51,60],matmul:[51,59],matrix:54,matur:53,max:[43,44,45,55,58,59,62],max_batch_s:[43,44,58,62],max_c:62,max_h:62,max_n:62,max_pool2d:59,max_val:55,max_w:62,maximum:[44,45,58,59,62],mean:[44,55,56,58,62],mechan:55,meet:58,member:[44,45,58],memori:[20,21,42,43,51,55,59],menu:62,messag:[17,27,28,57,62],metadata:[50,55],method:[32,35,36,51,55,58,59,60],method_nam:[32,35,43,58,59],min:[43,44,45,55,58,59,62],min_c:62,min_h:62,min_n:62,min_val:55,min_w:62,minim:[44,58,61,62],minimum:[44,45,57,59],minmax:[31,33,61],miss:59,mod:[59,61],mode:61,mode_:61,model:[59,61],modul:[32,35,36,43,50,52,53,55,56,58,61,62],modular:59,more:[49,56,59,61],most:53,move:[31,43,59,61],msg:[27,40,57],much:[55,61],multipl:61,must:[44,55,58,59,60,62],name:[3,4,32,35,42,55,58,59,60],namespac:[0,40,42,43,48,56,61],nativ:[53,54,59],native_funct:54,nbbind:[3,4,42],necessari:40,need:[1,2,28,33,41,44,49,51,55,59,60,61],nest:[46,47],net:[55,59],network:[31,33,55,59,61],new_lay:55,new_local_repositori:60,new_siz:61,next:[3,4,49,50,61],nice:60,ninja:60,nlp:[31,33,61],node:[51,55,59],node_info:[55,59],noexcept:61,none:55,norm:55,normal:[1,2,44,59,61],noskipw:42,note:[2,44,55],now:[53,55,59],nullptr:[42,43,44],num:62,num_avg_timing_it:[43,44,58],num_it:62,num_min_timing_it:[43,44,58],number:[3,4,44,51,55,58,59,62],numer:62,nvidia:[32,36,43,54,58,59,60,61,62],nvinfer1:[3,4,31,33,42,43,44,55,61],object:[1,2,3,4,44,45,55,59],obvious:59,off:50,ofstream:[42,59],older:53,onc:[40,41,42,43,49,50,59,61],one:[51,55,57,59],ones:[40,59,60],onli:[2,3,4,17,33,42,44,53,55,57,58,59,61,62],onnx:51,onto:[50,62],op_precis:[43,44,58,59,61,62],oper:[1,2,3,4,35,42,43,44,49,50,51,52,53,55,56,58,61,62],ops:[51,59],opset:[52,53],opt:[43,44,45,58,59,60],opt_c:62,opt_h:62,opt_n:62,opt_w:62,optim:[44,45,56,59,62],optimi:59,optimin:[44,45],option:[42,58,60,61,62],order:[44,55,59],org:[54,59,60,61],other:[1,2,43,44,49,56,58,59,62],our:[53,59],out:[35,42,49,51,52,53,55,57,58,59,60],out_shap:59,out_tensor:[55,59],output:[25,26,44,49,50,51,55,57,59,62],output_file_path:62,outself:59,over:[52,53],overrid:[3,4,31,33,42,61],overview:[54,56],own:[55,59],packag:[51,59,62],page:56,pair:[55,61],paramet:[1,2,3,4,26,27,28,31,32,33,35,36,44,45,49,51,55,57,58,59],parent:[14,15,16,18,19,20,21],pars:59,part:[53,62],pass:[49,50,52,53,55,59,61],path:[4,13,14,15,16,31,33,59,60,61,62],pathwai:59,pattern:[55,59],perform:[31,33],performac:[44,45,61],phase:[17,55,59],pick:59,pip3:60,pipelin:62,piplein:59,place:[51,60,61],plan:[53,62],pleas:60,point:[58,59],pointer:[3,4,61],pop:50,posit:62,post:[31,33,44,56,62],power:59,pragma:[40,41,42,43,61],pre_cxx11_abi:60,precis:[44,56,58,59,61,62],precompil:60,prefix:[24,26,40,57],preprint:61,preprocess:61,preserv:[59,61],prespect:59,pretti:59,previous:33,prim:[49,50,51,59],primarili:[53,59],print:[17,35,42,57,58],priorit:60,privat:[3,4,42,43,61],process:[59,62],produc:[44,45,49,50,55,59],profil:[44,45],program:[18,19,20,21,33,48,52,53,56,59,62],propog:51,provid:[3,4,44,55,59,60,61],ptq:[3,4,16,18,21,22,37,43,46,47,48,56,62],ptq_calibr:[3,4,43,44,61],ptqtemplat:[0,46],pull:60,pure:35,purpos:60,push:50,push_back:42,python3:[51,59,60],python:[53,62],python_api:54,pytorch:[50,52,53,55,58,59,60,61],quantiz:[31,33,56,62],quantizatiom:44,question:59,quickli:[59,61,62],quit:[55,59],rais:51,raiseexcept:51,rand:59,randn:59,rang:[44,45,58,59,62],rather:51,read:[3,4,31,33,42,61],readcalibrationcach:[3,4,42],realiz:50,realli:55,reason:[1,44,59],recalibr:33,recognit:61,recomend:[31,33],recommend:[31,33,59,60],record:[49,59],recurs:49,reduc:[51,52,53,61],refer:[50,52,53],referenc:60,refit:[43,44,58],reflect:43,regard:60,regist:[50,55],registernodeconversionpattern:[55,59],registri:[49,59],reinterpret_cast:42,relationship:[46,47],releas:60,relu:59,remain:[51,61],remove_contigu:51,remove_dropout:51,replac:51,report:[23,42],reportable_log_level:57,repositori:53,repres:[44,45,55,57],represent:[51,55,59],request:59,requir:[33,49,57,58,59,61,62],reserv:43,reset:42,resolv:[49,51,52,53],resourc:[49,61],respons:[33,50],restrict:[44,58,62],result:[49,51,52,53,58,59],reus:[51,61],right:[43,53,55],root:[43,61],run:[2,32,44,49,50,52,53,55,56,58,59,60,61,62],runtim:[50,56,59],safe:[55,58],safe_dla:[58,62],safe_gpu:[58,62],safeti:[44,58],same:[50,59],sampl:61,save:[33,42,58,59,62],saw:59,scalar:55,scalartyp:[1,43,44],scale:61,schema:[55,59],scope:51,scratch:33,script:[35,51,58,59],script_model:59,scriptmodul:[58,59],sdk:54,seamlessli:56,search:56,section:61,see:[35,50,51,58,59],select:[31,32,33,44,58,61,62],self:[50,51,55,59],sens:59,serial:[32,50,52,53,58,59],serv:62,set:[3,4,17,26,28,32,33,36,44,45,49,51,52,53,56,57,58,59,61,62],set_is_colored_output_on:[18,38,40,46,47,57],set_logging_prefix:[18,38,40,46,47,57],set_reportable_log_level:[18,38,40,46,47,57],setalpha:55,setbeta:55,setnam:[55,59],setreshapedimens:59,setup:[60,61],sever:[17,27,57],sha256:60,shape:[44,45,55,58],ship:59,should:[1,3,4,33,43,44,49,55,56,57,58,61,62],shown:59,shuffl:59,side:[51,59],signifi:[44,45],significantli:51,similar:[55,59],simonyan:61,simpil:61,simpl:59,simplifi:49,sinc:[51,59,61],singl:[44,45,51,59,61,62],singular:55,site:[51,59],size:[3,4,42,44,45,51,58,59,61,62],size_t:[3,4,42,61],softmax:51,sole:61,some:[49,50,51,52,53,55,59,61],someth:[41,51],sort:55,sourc:[43,53,58],space:61,specif:[36,51,52,53,58],specifi:[3,4,55,56,57,58,59,62],specifii:58,src:54,ssd_trace:62,ssd_trt:62,sstream:[20,42],stabl:54,stack:[50,61],stage:49,stand:50,standard:[56,62],start:[49,60],start_dim:59,state:[49,55,59],statement:51,static_cast:42,statu:42,std:[3,4,24,27,29,30,31,32,33,35,40,42,43,44,45,59,61],stdout:[34,57,58],steamlin:61,step:[56,61],still:[42,61],stitch:59,stop:59,storag:61,store:[4,49,55,59],str:[19,41,42,46,47,57,58],straight:55,strict:62,strict_typ:[43,44,58],strictli:58,string:[3,4,18,20,21,24,27,29,30,31,32,33,35,40,42,43,55,58,59,61],stringstream:42,strip_prefix:60,struct:[1,2,21,37,43,61],structur:[33,44,53,55,59],style:43,sub:59,subdirectori:48,subgraph:[49,51,55,59],subject:53,submodul:59,subset:61,suit:56,support:[1,2,26,35,44,45,54,58,59,62],sure:[59,60],system:[49,55,56,60],take:[32,35,36,49,50,52,53,55,58,59,61],talk:56,tar:[60,61],tarbal:[59,61],target:[2,44,53,56,58,59,61,62],targets_:61,task:[31,33,61],techinqu:59,techniqu:61,tell:[55,59],templat:[20,21,39,42,43,46,47,59],tensor:[42,44,45,49,50,55,59,61],tensorcontain:55,tensorlist:55,tensorrt:[1,2,3,4,31,32,33,34,36,43,44,45,49,51,52,53,55,56,58,59,61,62],term:61,termin:[26,59,62],test:[53,62],text:57,than:[51,56],thats:[49,61],thei:[44,49,51,55,60,62],them:[50,59],theori:49,therebi:50,therefor:[33,59],thi:[1,2,31,33,40,41,42,43,44,45,49,50,51,52,53,55,59,60,61,62],think:55,third_parti:[53,60],those:49,though:[53,55,59,62],three:[44,45,52,53],threshold:62,thrid_parti:60,through:[49,50,56,59],time:[44,49,51,52,53,55,58,59,61,62],tini:61,tmp:59,tocustomclass:55,todim:59,togeth:[49,55,59],too:60,tool:[55,59],top:53,torch:[1,2,4,31,32,33,35,36,42,43,44,50,51,54,55,58,59,61,62],torch_scirpt_modul:59,torch_script_modul:59,torchscript:[32,35,36,52,53,58,62],toronto:61,tovec:59,toward:61,trace:[58,59],traced_model:59,track:[55,61],tradit:61,traget:36,train:[31,33,44,56,59,62],trainabl:51,transform:[59,61],translat:59,travers:[52,53],treat:62,tree:[43,61],trigger:59,trim:61,trt:[1,2,3,4,44,49,50,51,55,59],trt_mod:[59,61],trt_ts_modul:59,trtorch:[0,1,2,3,4,15,17,22,40,41,42,44,45,47,48,49,50,51,52,53,60,61,62],trtorch_api:[19,23,24,25,26,27,28,29,30,31,32,33,34,35,36,40,41,43,46,47],trtorch_check:55,trtorch_hidden:[19,41,46,47],trtorch_major_vers:[19,41,46,47],trtorch_minor_vers:[19,41,46,47],trtorch_patch_vers:[19,41,46,47],trtorch_unus:55,trtorch_vers:[19,41,46,47],trtorchc:56,trtorchfil:[22,46],trtorchnamespac:[0,46],tupl:[58,59],tupleconstruct:51,tupleunpack:51,tutori:[59,61],two:[55,59,60,61,62],type:[1,2,31,45,46,47,49,50,55,57,58,59,61,62],typenam:[3,4,31,33,42,43],typic:[49,55],uint64_t:[43,44],unabl:[55,59],uncom:60,under:[43,53],underli:[1,2,44,55],union:[55,59],uniqu:4,unique_ptr:[4,31],unlik:56,unpack_addmm:51,unpack_log_softmax:51,unqiue_ptr:4,unstabl:53,unsupport:[35,58],unsur:55,untest:53,until:[49,53,55],unwrap:55,unwraptodoubl:55,unwraptoint:59,upstream:59,url:60,use:[1,2,3,4,31,33,44,49,50,53,55,57,58,59,60,61,62],use_cach:[3,4,31,42,43],use_cache_:42,use_subset:61,used:[1,2,3,4,42,44,45,49,50,51,55,57,58,59,61,62],useful:55,user:[40,52,53,59,60,61],uses:[31,33,42,55,61],using:[1,2,32,36,42,44,55,56,58,59,61,62],using_int:59,usr:60,util:[55,59],valid:[2,44,55],valu:[1,2,17,43,44,49,50,55,59],value_tensor_map:[49,55],vector:[20,21,42,43,44,45,59,61],verbios:62,verbos:62,veri:61,version:[30,34,53,60],vgg16:61,via:[56,58],virtual:61,wai:[59,62],want:[40,44,59],warn:[17,42,55,57,62],websit:60,weight:[49,59],welcom:59,well:[59,61],were:59,what:[4,51,59],whatev:50,when:[26,42,44,49,50,51,52,53,55,57,58,59,60,61,62],where:[49,51,55,59,61],whether:[4,61],which:[2,32,33,36,44,49,50,51,52,53,55,58,59,61],whl:60,whose:51,within:[50,52,53],without:[55,59,61],work:[42,51,53,55,61],worker:61,workspac:[44,58,60,61,62],workspace_s:[43,44,58,61,62],would:[55,59,60,62],wrap:[52,53,59],wrapper:55,write:[3,4,31,33,42,49,56,59,61],writecalibrationcach:[3,4,42],www:[59,60,61],x86_64:[53,60],xstr:[19,41,46,47],yaml:54,you:[1,2,31,33,44,49,50,51,53,55,56,58,59,60,61,62],your:[55,56,59,60],yourself:59,zisserman:61},titles:["Class Hierarchy","Class ExtraInfo::DataType","Class ExtraInfo::DeviceType","Template Class Int8CacheCalibrator","Template Class Int8Calibrator","Define STR","Define TRTORCH_API","Define TRTORCH_HIDDEN","Define TRTORCH_MAJOR_VERSION","Define TRTORCH_PATCH_VERSION","Define TRTORCH_VERSION","Define XSTR","Define TRTORCH_MINOR_VERSION","Directory cpp","Directory api","Directory include","Directory trtorch","Enum Level","File logging.h","File macros.h","File ptq.h","File trtorch.h","File Hierarchy","Function trtorch::logging::get_reportable_log_level","Function trtorch::logging::set_logging_prefix","Function trtorch::logging::get_is_colored_output_on","Function trtorch::logging::set_is_colored_output_on","Function trtorch::logging::log","Function trtorch::logging::set_reportable_log_level","Function trtorch::logging::get_logging_prefix","Function trtorch::get_build_info","Template Function trtorch::ptq::make_int8_calibrator","Function trtorch::ConvertGraphToTRTEngine","Template Function trtorch::ptq::make_int8_cache_calibrator","Function trtorch::dump_build_info","Function trtorch::CheckMethodOperatorSupport","Function trtorch::CompileGraph","Namespace trtorch","Namespace trtorch::logging","Namespace trtorch::ptq","Program Listing for File logging.h","Program Listing for File macros.h","Program Listing for File ptq.h","Program Listing for File trtorch.h","Struct ExtraInfo","Struct ExtraInfo::InputRange","TRTorch C++ API","Full API","Full API","Conversion Phase","Execution Phase","Lowering Phase","Compiler Phases","System Overview","Useful Links for TRTorch Development","Writing Converters","TRTorch","trtorch.logging","trtorch","Getting Started","Installation","Post Training Quantization (PTQ)","trtorchc"],titleterms:{"class":[0,1,2,3,4,20,21,37,39,46,47],"enum":[17,18,38,46,47,58],"function":[18,21,23,24,25,26,27,28,29,30,31,32,33,34,35,36,37,38,39,46,47,54,58],The:59,Used:51,Useful:54,addmm:51,advic:55,ahead:56,api:[14,18,19,20,21,46,47,48,54,56],applic:61,arg:55,avail:54,background:[50,55],base:[3,4],binari:60,build:60,checkmethodoperatorsupport:35,citat:61,code:51,compil:[52,53,56,59,60],compilegraph:36,construct:50,content:[18,19,20,21,37,38,39],context:55,contigu:51,contract:55,contributor:56,convers:[49,52,53,55],convert:[49,55,59],convertgraphtotrtengin:32,cpp:[13,18,19,20,21],creat:[59,61],cudnn:60,custom:59,datatyp:1,dead:51,debug:60,defin:[5,6,7,8,9,10,11,12,19,46,47],definit:[18,19,20,21],depend:60,develop:54,devicetyp:2,dimens:54,directori:[13,14,15,16,48],distribut:60,documen:56,document:[1,2,3,4,5,6,7,8,9,10,11,12,17,23,24,25,26,27,28,29,30,31,32,33,34,35,36,44,45,54,56],dropout:51,dump_build_info:34,easier:54,elimin:51,engin:50,evalu:49,execept:51,execut:[50,52,53],executor:50,expect:54,extrainfo:[1,2,44,45],file:[16,18,19,20,21,22,40,41,42,43,46,48],flatten:51,freez:51,from:60,full:[46,47,48],fuse:51,gaurd:51,get:[56,59],get_build_info:30,get_is_colored_output_on:25,get_logging_prefix:29,get_reportable_log_level:23,gpu:56,graph:[50,51],guarante:55,hierarchi:[0,22,46],hood:59,how:61,includ:[15,18,19,20,21],indic:56,inherit:[3,4],inputrang:45,instal:60,int8cachecalibr:3,int8calibr:4,jit:56,layer:54,level:17,linear:51,link:54,list:[40,41,42,43],local:60,log:[18,23,24,25,26,27,28,29,38,40,57],logsoftmax:51,lower:[51,52,53],macro:[19,41],make_int8_cache_calibr:33,make_int8_calibr:31,modul:[51,59],namespac:[18,20,21,37,38,39,46,47],native_op:54,nest:[1,2,44,45],node:49,nvidia:56,oper:59,other:55,overview:53,own:61,packag:60,pass:51,pattern:51,phase:[49,50,51,52,53],post:61,program:[40,41,42,43],ptq:[20,31,33,39,42,61],python:[54,56,59,60],pytorch:[54,56],quantiz:61,read:54,redund:51,regist:59,relationship:[1,2,3,4,44,45],remov:51,respons:55,result:50,set_is_colored_output_on:26,set_logging_prefix:24,set_reportable_log_level:28,sometim:54,sourc:60,start:[56,59],str:5,struct:[44,45,46,47],subdirectori:[13,14,15],submodul:58,system:53,tarbal:60,templat:[3,4,31,33],tensorrt:[50,54,60],time:56,torchscript:[56,59],train:61,trtorch:[16,18,19,20,21,23,24,25,26,27,28,29,30,31,32,33,34,35,36,37,38,39,43,46,54,56,57,58,59],trtorch_api:6,trtorch_hidden:7,trtorch_major_vers:8,trtorch_minor_vers:12,trtorch_patch_vers:9,trtorch_vers:10,trtorchc:62,tupl:51,type:[3,4,44],under:59,unpack:51,unsupport:59,using:60,weight:55,what:55,work:59,write:55,xstr:11,your:61}}) \ No newline at end of file +Search.setIndex({docnames:["_cpp_api/class_view_hierarchy","_cpp_api/classtrtorch_1_1ExtraInfo_1_1DataType","_cpp_api/classtrtorch_1_1ExtraInfo_1_1DeviceType","_cpp_api/classtrtorch_1_1ptq_1_1Int8CacheCalibrator","_cpp_api/classtrtorch_1_1ptq_1_1Int8Calibrator","_cpp_api/define_macros_8h_1a18d295a837ac71add5578860b55e5502","_cpp_api/define_macros_8h_1a20c1fbeb21757871c52299dc52351b5f","_cpp_api/define_macros_8h_1a25ee153c325dfc7466a33cbd5c1ff055","_cpp_api/define_macros_8h_1a48d6029a45583a06848891cb0e86f7ba","_cpp_api/define_macros_8h_1a71b02dddfabe869498ad5a88e11c440f","_cpp_api/define_macros_8h_1a9d31d0569348d109b1b069b972dd143e","_cpp_api/define_macros_8h_1abe87b341f562fd1cf40b7672e4d759da","_cpp_api/define_macros_8h_1ae1c56ab8a40af292a9a4964651524d84","_cpp_api/dir_cpp","_cpp_api/dir_cpp_api","_cpp_api/dir_cpp_api_include","_cpp_api/dir_cpp_api_include_trtorch","_cpp_api/enum_logging_8h_1a5f612ff2f783ff4fbe89d168f0d817d4","_cpp_api/file_cpp_api_include_trtorch_logging.h","_cpp_api/file_cpp_api_include_trtorch_macros.h","_cpp_api/file_cpp_api_include_trtorch_ptq.h","_cpp_api/file_cpp_api_include_trtorch_trtorch.h","_cpp_api/file_view_hierarchy","_cpp_api/function_logging_8h_1a118d65b179defff7fff279eb9cd126cb","_cpp_api/function_logging_8h_1a396a688110397538f8b3fb7dfdaf38bb","_cpp_api/function_logging_8h_1a9b420280bfacc016d7e36a5704021949","_cpp_api/function_logging_8h_1aa533955a2b908db9e5df5acdfa24715f","_cpp_api/function_logging_8h_1abc57d473f3af292551dee8b9c78373ad","_cpp_api/function_logging_8h_1adf5435f0dbb09c0d931a1b851847236b","_cpp_api/function_logging_8h_1aef44b69c62af7cf2edc8875a9506641a","_cpp_api/function_trtorch_8h_1a2cf17d43ba9117b3b4d652744b4f0447","_cpp_api/function_trtorch_8h_1a4422781719d7befedb364cacd91c6247","_cpp_api/function_trtorch_8h_1a536bba54b70e44554099d23fa3d7e804","_cpp_api/function_trtorch_8h_1a5f33b142bc2f3f2aaf462270b3ad7e31","_cpp_api/function_trtorch_8h_1a726f6e7091b6b7be45b5a4275b2ffb10","_cpp_api/function_trtorch_8h_1ab01696cfe08b6a5293c55935a9713c25","_cpp_api/function_trtorch_8h_1ae38897d1ca4438227c970029d0f76fb5","_cpp_api/namespace_trtorch","_cpp_api/namespace_trtorch__logging","_cpp_api/namespace_trtorch__ptq","_cpp_api/program_listing_file_cpp_api_include_trtorch_logging.h","_cpp_api/program_listing_file_cpp_api_include_trtorch_macros.h","_cpp_api/program_listing_file_cpp_api_include_trtorch_ptq.h","_cpp_api/program_listing_file_cpp_api_include_trtorch_trtorch.h","_cpp_api/structtrtorch_1_1ExtraInfo","_cpp_api/structtrtorch_1_1ExtraInfo_1_1InputRange","_cpp_api/trtorch_cpp","_cpp_api/unabridged_api","_cpp_api/unabridged_orphan","contributors/conversion","contributors/execution","contributors/lowering","contributors/phases","contributors/system_overview","contributors/useful_links","contributors/writing_converters","index","py_api/logging","py_api/trtorch","tutorials/getting_started","tutorials/installation","tutorials/ptq","tutorials/trtorchc"],envversion:{"sphinx.domains.c":2,"sphinx.domains.changeset":1,"sphinx.domains.citation":1,"sphinx.domains.cpp":2,"sphinx.domains.index":1,"sphinx.domains.javascript":2,"sphinx.domains.math":2,"sphinx.domains.python":2,"sphinx.domains.rst":2,"sphinx.domains.std":1,"sphinx.ext.intersphinx":1,sphinx:56},filenames:["_cpp_api/class_view_hierarchy.rst","_cpp_api/classtrtorch_1_1ExtraInfo_1_1DataType.rst","_cpp_api/classtrtorch_1_1ExtraInfo_1_1DeviceType.rst","_cpp_api/classtrtorch_1_1ptq_1_1Int8CacheCalibrator.rst","_cpp_api/classtrtorch_1_1ptq_1_1Int8Calibrator.rst","_cpp_api/define_macros_8h_1a18d295a837ac71add5578860b55e5502.rst","_cpp_api/define_macros_8h_1a20c1fbeb21757871c52299dc52351b5f.rst","_cpp_api/define_macros_8h_1a25ee153c325dfc7466a33cbd5c1ff055.rst","_cpp_api/define_macros_8h_1a48d6029a45583a06848891cb0e86f7ba.rst","_cpp_api/define_macros_8h_1a71b02dddfabe869498ad5a88e11c440f.rst","_cpp_api/define_macros_8h_1a9d31d0569348d109b1b069b972dd143e.rst","_cpp_api/define_macros_8h_1abe87b341f562fd1cf40b7672e4d759da.rst","_cpp_api/define_macros_8h_1ae1c56ab8a40af292a9a4964651524d84.rst","_cpp_api/dir_cpp.rst","_cpp_api/dir_cpp_api.rst","_cpp_api/dir_cpp_api_include.rst","_cpp_api/dir_cpp_api_include_trtorch.rst","_cpp_api/enum_logging_8h_1a5f612ff2f783ff4fbe89d168f0d817d4.rst","_cpp_api/file_cpp_api_include_trtorch_logging.h.rst","_cpp_api/file_cpp_api_include_trtorch_macros.h.rst","_cpp_api/file_cpp_api_include_trtorch_ptq.h.rst","_cpp_api/file_cpp_api_include_trtorch_trtorch.h.rst","_cpp_api/file_view_hierarchy.rst","_cpp_api/function_logging_8h_1a118d65b179defff7fff279eb9cd126cb.rst","_cpp_api/function_logging_8h_1a396a688110397538f8b3fb7dfdaf38bb.rst","_cpp_api/function_logging_8h_1a9b420280bfacc016d7e36a5704021949.rst","_cpp_api/function_logging_8h_1aa533955a2b908db9e5df5acdfa24715f.rst","_cpp_api/function_logging_8h_1abc57d473f3af292551dee8b9c78373ad.rst","_cpp_api/function_logging_8h_1adf5435f0dbb09c0d931a1b851847236b.rst","_cpp_api/function_logging_8h_1aef44b69c62af7cf2edc8875a9506641a.rst","_cpp_api/function_trtorch_8h_1a2cf17d43ba9117b3b4d652744b4f0447.rst","_cpp_api/function_trtorch_8h_1a4422781719d7befedb364cacd91c6247.rst","_cpp_api/function_trtorch_8h_1a536bba54b70e44554099d23fa3d7e804.rst","_cpp_api/function_trtorch_8h_1a5f33b142bc2f3f2aaf462270b3ad7e31.rst","_cpp_api/function_trtorch_8h_1a726f6e7091b6b7be45b5a4275b2ffb10.rst","_cpp_api/function_trtorch_8h_1ab01696cfe08b6a5293c55935a9713c25.rst","_cpp_api/function_trtorch_8h_1ae38897d1ca4438227c970029d0f76fb5.rst","_cpp_api/namespace_trtorch.rst","_cpp_api/namespace_trtorch__logging.rst","_cpp_api/namespace_trtorch__ptq.rst","_cpp_api/program_listing_file_cpp_api_include_trtorch_logging.h.rst","_cpp_api/program_listing_file_cpp_api_include_trtorch_macros.h.rst","_cpp_api/program_listing_file_cpp_api_include_trtorch_ptq.h.rst","_cpp_api/program_listing_file_cpp_api_include_trtorch_trtorch.h.rst","_cpp_api/structtrtorch_1_1ExtraInfo.rst","_cpp_api/structtrtorch_1_1ExtraInfo_1_1InputRange.rst","_cpp_api/trtorch_cpp.rst","_cpp_api/unabridged_api.rst","_cpp_api/unabridged_orphan.rst","contributors/conversion.rst","contributors/execution.rst","contributors/lowering.rst","contributors/phases.rst","contributors/system_overview.rst","contributors/useful_links.rst","contributors/writing_converters.rst","index.rst","py_api/logging.rst","py_api/trtorch.rst","tutorials/getting_started.rst","tutorials/installation.rst","tutorials/ptq.rst","tutorials/trtorchc.rst"],objects:{"":{"logging::trtorch::Level":[17,1,1,"_CPPv4N7logging7trtorch5LevelE"],"logging::trtorch::Level::kDEBUG":[17,2,1,"_CPPv4N7logging7trtorch5Level6kDEBUGE"],"logging::trtorch::Level::kERROR":[17,2,1,"_CPPv4N7logging7trtorch5Level6kERRORE"],"logging::trtorch::Level::kGRAPH":[17,2,1,"_CPPv4N7logging7trtorch5Level6kGRAPHE"],"logging::trtorch::Level::kINFO":[17,2,1,"_CPPv4N7logging7trtorch5Level5kINFOE"],"logging::trtorch::Level::kINTERNAL_ERROR":[17,2,1,"_CPPv4N7logging7trtorch5Level15kINTERNAL_ERRORE"],"logging::trtorch::Level::kWARNING":[17,2,1,"_CPPv4N7logging7trtorch5Level8kWARNINGE"],"logging::trtorch::get_is_colored_output_on":[25,3,1,"_CPPv4N7logging7trtorch24get_is_colored_output_onEv"],"logging::trtorch::get_logging_prefix":[29,3,1,"_CPPv4N7logging7trtorch18get_logging_prefixEv"],"logging::trtorch::get_reportable_log_level":[23,3,1,"_CPPv4N7logging7trtorch24get_reportable_log_levelEv"],"logging::trtorch::log":[27,3,1,"_CPPv4N7logging7trtorch3logE5LevelNSt6stringE"],"logging::trtorch::log::lvl":[27,4,1,"_CPPv4N7logging7trtorch3logE5LevelNSt6stringE"],"logging::trtorch::log::msg":[27,4,1,"_CPPv4N7logging7trtorch3logE5LevelNSt6stringE"],"logging::trtorch::set_is_colored_output_on":[26,3,1,"_CPPv4N7logging7trtorch24set_is_colored_output_onEb"],"logging::trtorch::set_is_colored_output_on::colored_output_on":[26,4,1,"_CPPv4N7logging7trtorch24set_is_colored_output_onEb"],"logging::trtorch::set_logging_prefix":[24,3,1,"_CPPv4N7logging7trtorch18set_logging_prefixENSt6stringE"],"logging::trtorch::set_logging_prefix::prefix":[24,4,1,"_CPPv4N7logging7trtorch18set_logging_prefixENSt6stringE"],"logging::trtorch::set_reportable_log_level":[28,3,1,"_CPPv4N7logging7trtorch24set_reportable_log_levelE5Level"],"logging::trtorch::set_reportable_log_level::lvl":[28,4,1,"_CPPv4N7logging7trtorch24set_reportable_log_levelE5Level"],"ptq::trtorch::make_int8_cache_calibrator":[33,3,1,"_CPPv4I0EN3ptq7trtorch26make_int8_cache_calibratorE19Int8CacheCalibratorI9AlgorithmERKNSt6stringE"],"ptq::trtorch::make_int8_cache_calibrator::Algorithm":[33,5,1,"_CPPv4I0EN3ptq7trtorch26make_int8_cache_calibratorE19Int8CacheCalibratorI9AlgorithmERKNSt6stringE"],"ptq::trtorch::make_int8_cache_calibrator::cache_file_path":[33,4,1,"_CPPv4I0EN3ptq7trtorch26make_int8_cache_calibratorE19Int8CacheCalibratorI9AlgorithmERKNSt6stringE"],"ptq::trtorch::make_int8_calibrator":[31,3,1,"_CPPv4I00EN3ptq7trtorch20make_int8_calibratorE14Int8CalibratorI9Algorithm10DataLoaderE10DataLoaderRKNSt6stringEb"],"ptq::trtorch::make_int8_calibrator::Algorithm":[31,5,1,"_CPPv4I00EN3ptq7trtorch20make_int8_calibratorE14Int8CalibratorI9Algorithm10DataLoaderE10DataLoaderRKNSt6stringEb"],"ptq::trtorch::make_int8_calibrator::DataLoader":[31,5,1,"_CPPv4I00EN3ptq7trtorch20make_int8_calibratorE14Int8CalibratorI9Algorithm10DataLoaderE10DataLoaderRKNSt6stringEb"],"ptq::trtorch::make_int8_calibrator::cache_file_path":[31,4,1,"_CPPv4I00EN3ptq7trtorch20make_int8_calibratorE14Int8CalibratorI9Algorithm10DataLoaderE10DataLoaderRKNSt6stringEb"],"ptq::trtorch::make_int8_calibrator::dataloader":[31,4,1,"_CPPv4I00EN3ptq7trtorch20make_int8_calibratorE14Int8CalibratorI9Algorithm10DataLoaderE10DataLoaderRKNSt6stringEb"],"ptq::trtorch::make_int8_calibrator::use_cache":[31,4,1,"_CPPv4I00EN3ptq7trtorch20make_int8_calibratorE14Int8CalibratorI9Algorithm10DataLoaderE10DataLoaderRKNSt6stringEb"],"trtorch::CheckMethodOperatorSupport":[35,3,1,"_CPPv4N7trtorch26CheckMethodOperatorSupportERKN5torch3jit6ModuleENSt6stringE"],"trtorch::CheckMethodOperatorSupport::method_name":[35,4,1,"_CPPv4N7trtorch26CheckMethodOperatorSupportERKN5torch3jit6ModuleENSt6stringE"],"trtorch::CheckMethodOperatorSupport::module":[35,4,1,"_CPPv4N7trtorch26CheckMethodOperatorSupportERKN5torch3jit6ModuleENSt6stringE"],"trtorch::CompileGraph":[36,3,1,"_CPPv4N7trtorch12CompileGraphERKN5torch3jit6ModuleE9ExtraInfo"],"trtorch::CompileGraph::info":[36,4,1,"_CPPv4N7trtorch12CompileGraphERKN5torch3jit6ModuleE9ExtraInfo"],"trtorch::CompileGraph::module":[36,4,1,"_CPPv4N7trtorch12CompileGraphERKN5torch3jit6ModuleE9ExtraInfo"],"trtorch::ConvertGraphToTRTEngine":[32,3,1,"_CPPv4N7trtorch23ConvertGraphToTRTEngineERKN5torch3jit6ModuleENSt6stringE9ExtraInfo"],"trtorch::ConvertGraphToTRTEngine::info":[32,4,1,"_CPPv4N7trtorch23ConvertGraphToTRTEngineERKN5torch3jit6ModuleENSt6stringE9ExtraInfo"],"trtorch::ConvertGraphToTRTEngine::method_name":[32,4,1,"_CPPv4N7trtorch23ConvertGraphToTRTEngineERKN5torch3jit6ModuleENSt6stringE9ExtraInfo"],"trtorch::ConvertGraphToTRTEngine::module":[32,4,1,"_CPPv4N7trtorch23ConvertGraphToTRTEngineERKN5torch3jit6ModuleENSt6stringE9ExtraInfo"],"trtorch::ExtraInfo":[44,6,1,"_CPPv4N7trtorch9ExtraInfoE"],"trtorch::ExtraInfo::DataType":[44,6,1,"_CPPv4N7trtorch9ExtraInfo8DataTypeE"],"trtorch::ExtraInfo::DataType::DataType":[44,3,1,"_CPPv4N7trtorch9ExtraInfo8DataType8DataTypeEv"],"trtorch::ExtraInfo::DataType::DataType::t":[44,4,1,"_CPPv4N7trtorch9ExtraInfo8DataType8DataTypeEN3c1010ScalarTypeE"],"trtorch::ExtraInfo::DataType::Value":[44,1,1,"_CPPv4N7trtorch9ExtraInfo8DataType5ValueE"],"trtorch::ExtraInfo::DataType::Value::kChar":[44,2,1,"_CPPv4N7trtorch9ExtraInfo8DataType5Value5kCharE"],"trtorch::ExtraInfo::DataType::Value::kFloat":[44,2,1,"_CPPv4N7trtorch9ExtraInfo8DataType5Value6kFloatE"],"trtorch::ExtraInfo::DataType::Value::kHalf":[44,2,1,"_CPPv4N7trtorch9ExtraInfo8DataType5Value5kHalfE"],"trtorch::ExtraInfo::DataType::operator Value":[44,3,1,"_CPPv4NK7trtorch9ExtraInfo8DataTypecv5ValueEv"],"trtorch::ExtraInfo::DataType::operator bool":[44,3,1,"_CPPv4N7trtorch9ExtraInfo8DataTypecvbEv"],"trtorch::ExtraInfo::DataType::operator!=":[44,3,1,"_CPPv4NK7trtorch9ExtraInfo8DataTypeneEN8DataType5ValueE"],"trtorch::ExtraInfo::DataType::operator!=::other":[44,4,1,"_CPPv4NK7trtorch9ExtraInfo8DataTypeneEN8DataType5ValueE"],"trtorch::ExtraInfo::DataType::operator==":[44,3,1,"_CPPv4NK7trtorch9ExtraInfo8DataTypeeqEN8DataType5ValueE"],"trtorch::ExtraInfo::DataType::operator==::other":[44,4,1,"_CPPv4NK7trtorch9ExtraInfo8DataTypeeqEN8DataType5ValueE"],"trtorch::ExtraInfo::DeviceType":[44,6,1,"_CPPv4N7trtorch9ExtraInfo10DeviceTypeE"],"trtorch::ExtraInfo::DeviceType::DeviceType":[44,3,1,"_CPPv4N7trtorch9ExtraInfo10DeviceType10DeviceTypeEv"],"trtorch::ExtraInfo::DeviceType::DeviceType::t":[44,4,1,"_CPPv4N7trtorch9ExtraInfo10DeviceType10DeviceTypeEN3c1010DeviceTypeE"],"trtorch::ExtraInfo::DeviceType::Value":[44,1,1,"_CPPv4N7trtorch9ExtraInfo10DeviceType5ValueE"],"trtorch::ExtraInfo::DeviceType::Value::kDLA":[44,2,1,"_CPPv4N7trtorch9ExtraInfo10DeviceType5Value4kDLAE"],"trtorch::ExtraInfo::DeviceType::Value::kGPU":[44,2,1,"_CPPv4N7trtorch9ExtraInfo10DeviceType5Value4kGPUE"],"trtorch::ExtraInfo::DeviceType::operator Value":[44,3,1,"_CPPv4NK7trtorch9ExtraInfo10DeviceTypecv5ValueEv"],"trtorch::ExtraInfo::DeviceType::operator bool":[44,3,1,"_CPPv4N7trtorch9ExtraInfo10DeviceTypecvbEv"],"trtorch::ExtraInfo::DeviceType::operator!=":[44,3,1,"_CPPv4NK7trtorch9ExtraInfo10DeviceTypeneE10DeviceType"],"trtorch::ExtraInfo::DeviceType::operator!=::other":[44,4,1,"_CPPv4NK7trtorch9ExtraInfo10DeviceTypeneE10DeviceType"],"trtorch::ExtraInfo::DeviceType::operator==":[44,3,1,"_CPPv4NK7trtorch9ExtraInfo10DeviceTypeeqE10DeviceType"],"trtorch::ExtraInfo::DeviceType::operator==::other":[44,4,1,"_CPPv4NK7trtorch9ExtraInfo10DeviceTypeeqE10DeviceType"],"trtorch::ExtraInfo::EngineCapability":[44,1,1,"_CPPv4N7trtorch9ExtraInfo16EngineCapabilityE"],"trtorch::ExtraInfo::EngineCapability::kDEFAULT":[44,2,1,"_CPPv4N7trtorch9ExtraInfo16EngineCapability8kDEFAULTE"],"trtorch::ExtraInfo::EngineCapability::kSAFE_DLA":[44,2,1,"_CPPv4N7trtorch9ExtraInfo16EngineCapability9kSAFE_DLAE"],"trtorch::ExtraInfo::EngineCapability::kSAFE_GPU":[44,2,1,"_CPPv4N7trtorch9ExtraInfo16EngineCapability9kSAFE_GPUE"],"trtorch::ExtraInfo::ExtraInfo":[44,3,1,"_CPPv4N7trtorch9ExtraInfo9ExtraInfoENSt6vectorINSt6vectorI7int64_tEEEE"],"trtorch::ExtraInfo::ExtraInfo::fixed_sizes":[44,4,1,"_CPPv4N7trtorch9ExtraInfo9ExtraInfoENSt6vectorINSt6vectorI7int64_tEEEE"],"trtorch::ExtraInfo::ExtraInfo::input_ranges":[44,4,1,"_CPPv4N7trtorch9ExtraInfo9ExtraInfoENSt6vectorI10InputRangeEE"],"trtorch::ExtraInfo::InputRange":[45,6,1,"_CPPv4N7trtorch9ExtraInfo10InputRangeE"],"trtorch::ExtraInfo::InputRange::InputRange":[45,3,1,"_CPPv4N7trtorch9ExtraInfo10InputRange10InputRangeENSt6vectorI7int64_tEENSt6vectorI7int64_tEENSt6vectorI7int64_tEE"],"trtorch::ExtraInfo::InputRange::InputRange::max":[45,4,1,"_CPPv4N7trtorch9ExtraInfo10InputRange10InputRangeENSt6vectorI7int64_tEENSt6vectorI7int64_tEENSt6vectorI7int64_tEE"],"trtorch::ExtraInfo::InputRange::InputRange::min":[45,4,1,"_CPPv4N7trtorch9ExtraInfo10InputRange10InputRangeENSt6vectorI7int64_tEENSt6vectorI7int64_tEENSt6vectorI7int64_tEE"],"trtorch::ExtraInfo::InputRange::InputRange::opt":[45,4,1,"_CPPv4N7trtorch9ExtraInfo10InputRange10InputRangeENSt6vectorI7int64_tEENSt6vectorI7int64_tEENSt6vectorI7int64_tEE"],"trtorch::ExtraInfo::InputRange::max":[45,7,1,"_CPPv4N7trtorch9ExtraInfo10InputRange3maxE"],"trtorch::ExtraInfo::InputRange::min":[45,7,1,"_CPPv4N7trtorch9ExtraInfo10InputRange3minE"],"trtorch::ExtraInfo::InputRange::opt":[45,7,1,"_CPPv4N7trtorch9ExtraInfo10InputRange3optE"],"trtorch::ExtraInfo::allow_gpu_fallback":[44,7,1,"_CPPv4N7trtorch9ExtraInfo18allow_gpu_fallbackE"],"trtorch::ExtraInfo::capability":[44,7,1,"_CPPv4N7trtorch9ExtraInfo10capabilityE"],"trtorch::ExtraInfo::debug":[44,7,1,"_CPPv4N7trtorch9ExtraInfo5debugE"],"trtorch::ExtraInfo::device":[44,7,1,"_CPPv4N7trtorch9ExtraInfo6deviceE"],"trtorch::ExtraInfo::input_ranges":[44,7,1,"_CPPv4N7trtorch9ExtraInfo12input_rangesE"],"trtorch::ExtraInfo::max_batch_size":[44,7,1,"_CPPv4N7trtorch9ExtraInfo14max_batch_sizeE"],"trtorch::ExtraInfo::num_avg_timing_iters":[44,7,1,"_CPPv4N7trtorch9ExtraInfo20num_avg_timing_itersE"],"trtorch::ExtraInfo::num_min_timing_iters":[44,7,1,"_CPPv4N7trtorch9ExtraInfo20num_min_timing_itersE"],"trtorch::ExtraInfo::op_precision":[44,7,1,"_CPPv4N7trtorch9ExtraInfo12op_precisionE"],"trtorch::ExtraInfo::ptq_calibrator":[44,7,1,"_CPPv4N7trtorch9ExtraInfo14ptq_calibratorE"],"trtorch::ExtraInfo::refit":[44,7,1,"_CPPv4N7trtorch9ExtraInfo5refitE"],"trtorch::ExtraInfo::strict_types":[44,7,1,"_CPPv4N7trtorch9ExtraInfo12strict_typesE"],"trtorch::ExtraInfo::workspace_size":[44,7,1,"_CPPv4N7trtorch9ExtraInfo14workspace_sizeE"],"trtorch::dump_build_info":[34,3,1,"_CPPv4N7trtorch15dump_build_infoEv"],"trtorch::get_build_info":[30,3,1,"_CPPv4N7trtorch14get_build_infoEv"],"trtorch::ptq::Int8CacheCalibrator":[3,6,1,"_CPPv4I0EN7trtorch3ptq19Int8CacheCalibratorE"],"trtorch::ptq::Int8CacheCalibrator::Algorithm":[3,5,1,"_CPPv4I0EN7trtorch3ptq19Int8CacheCalibratorE"],"trtorch::ptq::Int8CacheCalibrator::Int8CacheCalibrator":[3,3,1,"_CPPv4N7trtorch3ptq19Int8CacheCalibrator19Int8CacheCalibratorERKNSt6stringE"],"trtorch::ptq::Int8CacheCalibrator::Int8CacheCalibrator::cache_file_path":[3,4,1,"_CPPv4N7trtorch3ptq19Int8CacheCalibrator19Int8CacheCalibratorERKNSt6stringE"],"trtorch::ptq::Int8CacheCalibrator::getBatch":[3,3,1,"_CPPv4N7trtorch3ptq19Int8CacheCalibrator8getBatchEA_PvA_PKci"],"trtorch::ptq::Int8CacheCalibrator::getBatch::bindings":[3,4,1,"_CPPv4N7trtorch3ptq19Int8CacheCalibrator8getBatchEA_PvA_PKci"],"trtorch::ptq::Int8CacheCalibrator::getBatch::names":[3,4,1,"_CPPv4N7trtorch3ptq19Int8CacheCalibrator8getBatchEA_PvA_PKci"],"trtorch::ptq::Int8CacheCalibrator::getBatch::nbBindings":[3,4,1,"_CPPv4N7trtorch3ptq19Int8CacheCalibrator8getBatchEA_PvA_PKci"],"trtorch::ptq::Int8CacheCalibrator::getBatchSize":[3,3,1,"_CPPv4NK7trtorch3ptq19Int8CacheCalibrator12getBatchSizeEv"],"trtorch::ptq::Int8CacheCalibrator::operator nvinfer1::IInt8Calibrator*":[3,3,1,"_CPPv4N7trtorch3ptq19Int8CacheCalibratorcvPN8nvinfer115IInt8CalibratorEEv"],"trtorch::ptq::Int8CacheCalibrator::readCalibrationCache":[3,3,1,"_CPPv4N7trtorch3ptq19Int8CacheCalibrator20readCalibrationCacheER6size_t"],"trtorch::ptq::Int8CacheCalibrator::readCalibrationCache::length":[3,4,1,"_CPPv4N7trtorch3ptq19Int8CacheCalibrator20readCalibrationCacheER6size_t"],"trtorch::ptq::Int8CacheCalibrator::writeCalibrationCache":[3,3,1,"_CPPv4N7trtorch3ptq19Int8CacheCalibrator21writeCalibrationCacheEPKv6size_t"],"trtorch::ptq::Int8CacheCalibrator::writeCalibrationCache::cache":[3,4,1,"_CPPv4N7trtorch3ptq19Int8CacheCalibrator21writeCalibrationCacheEPKv6size_t"],"trtorch::ptq::Int8CacheCalibrator::writeCalibrationCache::length":[3,4,1,"_CPPv4N7trtorch3ptq19Int8CacheCalibrator21writeCalibrationCacheEPKv6size_t"],"trtorch::ptq::Int8Calibrator":[4,6,1,"_CPPv4I00EN7trtorch3ptq14Int8CalibratorE"],"trtorch::ptq::Int8Calibrator::Algorithm":[4,5,1,"_CPPv4I00EN7trtorch3ptq14Int8CalibratorE"],"trtorch::ptq::Int8Calibrator::DataLoaderUniquePtr":[4,5,1,"_CPPv4I00EN7trtorch3ptq14Int8CalibratorE"],"trtorch::ptq::Int8Calibrator::Int8Calibrator":[4,3,1,"_CPPv4N7trtorch3ptq14Int8Calibrator14Int8CalibratorE19DataLoaderUniquePtrRKNSt6stringEb"],"trtorch::ptq::Int8Calibrator::Int8Calibrator::cache_file_path":[4,4,1,"_CPPv4N7trtorch3ptq14Int8Calibrator14Int8CalibratorE19DataLoaderUniquePtrRKNSt6stringEb"],"trtorch::ptq::Int8Calibrator::Int8Calibrator::dataloader":[4,4,1,"_CPPv4N7trtorch3ptq14Int8Calibrator14Int8CalibratorE19DataLoaderUniquePtrRKNSt6stringEb"],"trtorch::ptq::Int8Calibrator::Int8Calibrator::use_cache":[4,4,1,"_CPPv4N7trtorch3ptq14Int8Calibrator14Int8CalibratorE19DataLoaderUniquePtrRKNSt6stringEb"],"trtorch::ptq::Int8Calibrator::getBatch":[4,3,1,"_CPPv4N7trtorch3ptq14Int8Calibrator8getBatchEA_PvA_PKci"],"trtorch::ptq::Int8Calibrator::getBatch::bindings":[4,4,1,"_CPPv4N7trtorch3ptq14Int8Calibrator8getBatchEA_PvA_PKci"],"trtorch::ptq::Int8Calibrator::getBatch::names":[4,4,1,"_CPPv4N7trtorch3ptq14Int8Calibrator8getBatchEA_PvA_PKci"],"trtorch::ptq::Int8Calibrator::getBatch::nbBindings":[4,4,1,"_CPPv4N7trtorch3ptq14Int8Calibrator8getBatchEA_PvA_PKci"],"trtorch::ptq::Int8Calibrator::getBatchSize":[4,3,1,"_CPPv4NK7trtorch3ptq14Int8Calibrator12getBatchSizeEv"],"trtorch::ptq::Int8Calibrator::operator nvinfer1::IInt8Calibrator*":[4,3,1,"_CPPv4N7trtorch3ptq14Int8CalibratorcvPN8nvinfer115IInt8CalibratorEEv"],"trtorch::ptq::Int8Calibrator::readCalibrationCache":[4,3,1,"_CPPv4N7trtorch3ptq14Int8Calibrator20readCalibrationCacheER6size_t"],"trtorch::ptq::Int8Calibrator::readCalibrationCache::length":[4,4,1,"_CPPv4N7trtorch3ptq14Int8Calibrator20readCalibrationCacheER6size_t"],"trtorch::ptq::Int8Calibrator::writeCalibrationCache":[4,3,1,"_CPPv4N7trtorch3ptq14Int8Calibrator21writeCalibrationCacheEPKv6size_t"],"trtorch::ptq::Int8Calibrator::writeCalibrationCache::cache":[4,4,1,"_CPPv4N7trtorch3ptq14Int8Calibrator21writeCalibrationCacheEPKv6size_t"],"trtorch::ptq::Int8Calibrator::writeCalibrationCache::length":[4,4,1,"_CPPv4N7trtorch3ptq14Int8Calibrator21writeCalibrationCacheEPKv6size_t"],STR:[5,0,1,"c.STR"],TRTORCH_API:[6,0,1,"c.TRTORCH_API"],TRTORCH_HIDDEN:[7,0,1,"c.TRTORCH_HIDDEN"],TRTORCH_MAJOR_VERSION:[8,0,1,"c.TRTORCH_MAJOR_VERSION"],TRTORCH_MINOR_VERSION:[12,0,1,"c.TRTORCH_MINOR_VERSION"],TRTORCH_PATCH_VERSION:[9,0,1,"c.TRTORCH_PATCH_VERSION"],TRTORCH_VERSION:[10,0,1,"c.TRTORCH_VERSION"],XSTR:[11,0,1,"c.XSTR"],trtorch:[58,8,0,"-"]},"trtorch.logging":{Level:[57,9,1,""],get_is_colored_output_on:[57,10,1,""],get_logging_prefix:[57,10,1,""],get_reportable_log_level:[57,10,1,""],log:[57,10,1,""],set_is_colored_output_on:[57,10,1,""],set_logging_prefix:[57,10,1,""],set_reportable_log_level:[57,10,1,""]},"trtorch.logging.Level":{Debug:[57,11,1,""],Error:[57,11,1,""],Info:[57,11,1,""],InternalError:[57,11,1,""],Warning:[57,11,1,""]},trtorch:{DeviceType:[58,9,1,""],EngineCapability:[58,9,1,""],check_method_op_support:[58,10,1,""],compile:[58,10,1,""],convert_method_to_trt_engine:[58,10,1,""],dtype:[58,9,1,""],dump_build_info:[58,10,1,""],get_build_info:[58,10,1,""],logging:[57,8,0,"-"]}},objnames:{"0":["c","macro","C macro"],"1":["cpp","enum","C++ enum"],"10":["py","function","Python function"],"11":["py","attribute","Python attribute"],"2":["cpp","enumerator","C++ enumerator"],"3":["cpp","function","C++ function"],"4":["cpp","functionParam","functionParam"],"5":["cpp","templateParam","templateParam"],"6":["cpp","class","C++ class"],"7":["cpp","member","C++ member"],"8":["py","module","Python module"],"9":["py","class","Python class"]},objtypes:{"0":"c:macro","1":"cpp:enum","10":"py:function","11":"py:attribute","2":"cpp:enumerator","3":"cpp:function","4":"cpp:functionParam","5":"cpp:templateParam","6":"cpp:class","7":"cpp:member","8":"py:module","9":"py:class"},terms:{"abstract":[50,55],"byte":58,"case":[1,2,44,49,55,61],"catch":[51,59],"char":[3,4,42,59],"class":[31,33,42,43,44,48,55,57,58,59,61],"const":[1,2,3,4,31,32,33,35,36,42,43,44,51,55,59,61],"default":[1,2,3,4,17,31,33,41,43,44,58,61,62],"enum":[1,2,40,43,44,48,57,61],"final":49,"float":[58,59,62],"function":[1,2,3,4,44,45,48,50,51,55,59],"import":[51,59,62],"int":[3,4,42,50,59],"long":49,"new":[1,2,3,4,36,44,45,50,53,55,57,59],"public":[1,2,3,4,42,43,44,45,61],"return":[1,2,3,4,23,25,30,31,32,33,35,36,40,41,42,43,44,50,51,52,53,55,57,58,59,61],"short":51,"static":[44,45,49,55,58,59],"super":[42,59],"throw":[51,59],"true":[1,2,4,43,44,51,55,58,59,61],"try":[53,59],"void":[3,4,24,26,27,28,34,40,42,43],"while":61,And:59,Are:40,But:59,For:[49,59],Its:55,Not:3,One:[58,59],PRs:59,Thats:59,The:[2,44,49,50,51,52,53,55,57,60,61,62],Then:[60,61],There:[4,49,55,59,61],These:[49,50],Use:[44,55,58,61],Useful:56,Using:4,Will:35,With:[59,61],___torch_mangle_10:[50,59],___torch_mangle_5:59,___torch_mangle_9:59,__attribute__:41,__gnuc__:41,__init__:59,__torch__:[50,59],__visibility__:41,_all_:51,_convolut:59,aarch64:[53,60],abl:[49,51,55,56,61],about:[49,50,55,58,62],abov:[28,59],accept:[44,45,50,55,62],access:[51,55,56,59],accord:55,accuraci:61,across:51,act:50,acthardtanh:55,activ:[59,61],activationtyp:55,actual:[50,51,55,57,59],add:[27,49,51,55,57,59],add_:[51,59],addactiv:55,added:[28,49],addenginetograph:[50,59],addit:[51,59],addlay:59,addshuffl:59,advanc:61,after:[49,56,59,62],again:[42,55],against:[59,62],ahead:59,aim:51,algorithm:[3,4,31,33,42,43,61],all:[17,43,50,51,58,59,61,62],alloc:55,allow:[44,45,49,51,58,62],allow_gpu_fallback:[43,44,58],alreadi:[49,51,59,62],also:[33,49,55,56,59,60,61],alwai:[3,4,26],analogu:55,ani:[49,55,58,59,60,62],annot:[55,59],anoth:59,aot:[56,59],api:[13,15,16,40,41,42,43,53,55,58,59,61],apidirectori:[22,46],appli:61,applic:[2,33,44,51,59,62],aquir:59,architectur:56,archiv:60,aren:59,arg:[49,59],argc:59,argument:[50,51,55,59,62],argv:59,around:[50,55,59],arrai:[3,4,49],arrayref:[43,44,45],arxiv:61,aspect:62,assembl:[49,59],assign:[3,4,50],associ:[49,55,59],associatevalueandivalu:55,associatevalueandtensor:[55,59],aten:[51,54,55,59],attribut:51,auto:[42,55,59,61],avail:55,averag:[44,58,62],avg:62,back:[50,51,53,59],back_insert:42,background:59,base:[34,46,47,50,57,59,60,61],basic:62,batch:[3,4,42,44,55,58,61,62],batch_norm:55,batch_siz:[42,61],batched_data_:42,batchnorm:51,batchtyp:42,bazel:[53,60],bdist_wheel:60,becaus:[55,59],becom:55,been:[49,55,59],befor:[51,53,55,56,59,60],begin:[42,60],beginn:59,behavior:58,being:59,below:[55,59],benefit:[55,59],best:[44,45],better:[59,61],between:[55,61],bia:[51,59],bin:60,binari:[42,61],bind:[3,4,42],bit:[55,58,59],blob:54,block0:51,block1:51,block:[49,51],bool:[1,2,3,4,25,26,31,35,40,42,43,44,51,55,57,58,59,61],both:59,briefli:59,bsd:43,buffer:[3,4],bug:60,build:[30,31,33,44,49,52,53,55,58,59,61,62],build_fil:60,builderconfig:43,built:[60,62],c10:[1,2,43,44,45,59,61],c_api:54,c_str:[55,59],cach:[3,4,31,33,42,61,62],cache_:42,cache_fil:42,cache_file_path:[3,4,31,33,42,43],cache_file_path_:42,cache_size_:42,calcul:[49,59],calibr:[3,4,31,33,42,44,61,62],calibration_cache_fil:[31,33,61],calibration_dataload:[31,61],calibration_dataset:61,call:[31,33,36,44,50,51,55,58,59],callmethod:59,can:[1,2,4,31,32,33,44,45,49,50,51,52,53,55,58,59,60,61,62],cannot:[51,59],capabl:[43,44,58,62],cast:[3,4,51],caught:51,caus:[55,60],cdll:59,cerr:59,chain:55,chanc:55,chang:[33,51,53,61],check:[1,2,35,44,51,55,58,59,60,62],check_method_op_support:58,checkmethodoperatorsupport:[21,37,43,46,47,59],choos:59,cifar10:61,cifar:61,classif:59,clear:42,cli:62,close:59,closer:51,code:[53,56,59],collect:59,color:[25,26,57],colored_output_on:[26,40,57],com:[54,59,60,61],command:62,comment:60,common:[49,51],common_subexpression_elimin:51,commun:59,comparis:[1,44],comparison:[2,44],compat:[1,2,44,51],compil:[32,35,36,44,50,51,55,58,61,62],compile_set:59,compilegraph:[21,37,43,46,47,59,61],complet:59,complex:59,compliat:61,compon:[52,53,59],compos:59,composit:59,comput:61,config:60,configur:[32,36,56,58,59,61],connect:51,consid:59,consol:62,consolid:59,constant:[49,50,51,59],constexpr:[1,2,43,44],construct:[1,2,3,4,44,45,49,51,52,53,55,59],constructor:[1,44,59],consum:[4,49,59],contain:[31,35,49,51,55,58,59,60,61],content:61,context:[49,50,52,53],contributor:59,control:59,conv1:59,conv2:59,conv2d:59,conv:[55,59],convers:[50,51,58,59],conversionctx:[55,59],convert:[3,4,32,35,36,51,52,53,56,58],convert_method_to_trt_engin:58,convertgraphtotrtengin:[21,37,43,46,47,59],convien:44,convienc:[3,4],convolut:61,coordin:53,copi:[42,55],copyright:43,core:[51,53,59],corespond:50,corpor:43,correct:60,correspond:55,coupl:[49,53],cout:59,cp35:60,cp35m:60,cp36:60,cp36m:60,cp37:60,cp37m:60,cp38:60,cpp:[14,15,16,40,41,42,43,48,51,53,59,61],cpp_frontend:61,cppdirectori:[22,46],cppdoc:59,creat:[31,33,49,55,62],csrc:[51,54],cstddef:61,ctx:[55,59],ctype:59,cuda:[44,58,59,60],cudafloattyp:59,current:[23,55],data:[1,3,4,31,33,42,44,49,52,53,55,61],data_dir:61,dataflow:[55,59],dataload:[4,31,33,42,43,44,61],dataloader_:42,dataloaderopt:61,dataloaderuniqueptr:[4,42],dataset:[33,61],datatyp:[2,21,37,43,44,46,47,58],datatypeclass:[0,46],dbg:60,dead_code_elimin:51,deal:55,debug:[17,26,43,44,55,57,58,62],debugg:[58,62],dedic:51,deep:[55,56,61],deeplearn:54,def:59,defin:[1,2,3,4,17,23,24,25,26,27,28,29,30,31,32,33,34,35,36,41,44,45,48,59,61,62],definit:[48,55],delet:[1,2,43,44,51],demo:61,depend:[30,33,49,53,59],deploi:[56,59,61],deploy:[59,61,62],describ:[44,55,58,59],deseri:[58,59],destroi:55,destructor:55,detail:59,determin:51,develop:[56,59,60],deviat:62,devic:[2,43,44,58,59,62],devicetyp:[0,21,37,43,44,46,47,58],dict:58,dictionari:[58,59],differ:[33,51,56,59],dimens:51,directli:[55,61],directori:[18,19,20,21,22,43,46,60,61],disabl:[57,62],disclos:60,displai:62,distdir:60,distribut:[58,59,61],dla:[2,44,58,62],doc:[53,54,60],docsrc:53,document:[40,41,42,43,46,47,53,59,61],doe:[41,42,51,55,61],doesn:59,doing:[49,51,59,61],domain:61,don:[55,61],done:[49,53],dont:40,down:60,download:60,doxygen_should_skip_thi:[42,43],driver:60,dtype:58,due:[3,4],dump:[34,60,62],dump_build_info:[21,37,43,46,47,58],dure:[55,61,62],dynam:[44,45,58],each:[3,4,44,49,50,51,55,59],easi:[49,51,62],easier:[52,53,55,59,61],easili:[3,4],edu:61,effect:[51,59,61],effici:55,either:[44,45,55,58,59,60,62],element:50,element_typ:42,els:[41,42,58],embed:62,emit:49,empti:59,emum:[17,44],enabl:[3,4,25,57,58],encount:60,end:[42,55,59],end_dim:59,endif:[41,42,43],enforc:59,engin:[1,2,32,36,44,45,49,52,53,56,58,59,61,62],engine_converted_from_jit:59,enginecap:[43,44,58],ensur:[33,51],enter:49,entri:[44,55],entropi:[31,33,61],enumer:[1,2,17,44],equival:[36,52,53,55,58,59],equivil:32,error:[17,49,51,53,57,59,60],etc:58,eval:59,evalu:[50,52,53],evaluated_value_map:[49,55],even:59,everi:59,everyth:17,exampl:[50,55,59,61],exception_elimin:51,execpt:51,execut:[51,58,59,61],execute_engin:[50,59],exhaust:59,exist:[4,32,35,36,58,60,61],expand:51,expect:[51,55,59],explic:42,explicit:[3,4,43,51,56,61],explicitli:61,explict:42,explictli:[1,44],extend:55,extent:[56,59],extra:44,extra_info:[58,61],extrainfo:[0,3,4,21,32,36,37,43,46,47,58,59,61],extrainfostruct:[0,46],f16:62,f32:62,factori:[4,31,33,61],fail:59,fallback:[55,62],fals:[1,2,3,4,42,43,44,58,59],fashion:59,fc1:59,fc2:59,fc3:59,feat:59,featur:[61,62],fed:[3,4,59],feed:[31,33,59],feel:56,field:[3,4,61],file:[1,2,3,4,5,6,7,8,9,10,11,12,17,23,24,25,26,27,28,29,30,31,32,33,34,35,36,44,45,53,58,59,60,61,62],file_path:62,find:[4,59],first:[49,51,59,61],fix:44,fixed_s:[43,44],flag:62,flatten:59,flatten_convert:59,float16:[58,62],float32:[58,62],flow:[55,59],fly:59,follow:[59,61,62],forc:62,form:49,format:62,forward:[31,33,36,50,55,58,59,61],found:[43,59,60,61],fp16:[1,44,56,58,59],fp32:[1,44,56,61],freed:55,freeze_modul:51,from:[1,2,3,4,31,33,42,44,45,49,50,51,52,53,55,59,61,62],full:[55,59,61,62],fulli:[35,51,58,59,61],fuse_addmm_branch:51,fuse_flatten_linear:51,fuse_linear:51,fusion:55,gaurd:41,gcc:53,gear:61,gener:[3,4,33,50,51,53,55,59,61,62],get:[1,2,3,4,23,30,42,44,45,51,55,57,60,61],get_batch_impl:42,get_build_info:[21,37,43,46,47,58],get_is_colored_output_on:[18,38,40,46,47,57],get_logging_prefix:[18,38,40,46,47,57],get_reportable_log_level:[18,38,40,46,47,57],getattr:[51,59],getbatch:[3,4,42],getbatchs:[3,4,42],getdimens:[55,59],getoutput:[55,59],github:[54,59,60,61],given:[44,51,58,59,62],global:[27,59],gnu:60,goal:55,going:[42,59],good:[42,55],got:59,gpu:[2,32,36,44,58,59,62],graph:[17,32,35,36,43,49,52,53,55,56,58,59],great:59,gtc:56,guard:51,guard_elimin:51,hack:42,half:[58,59,62],handl:51,happen:59,hardtanh:55,has:[49,51,53,55,59,61],hash:60,have:[33,42,49,51,55,56,59,60,61,62],haven:59,header:59,help:[26,49,55,62],helper:55,here:[42,49,50,59,60,61],hermet:60,hfile:[22,46],hidden:41,high:51,higher:[51,59],hinton:61,hold:[44,45,49,55,61],hood:53,how:[3,4,59],howev:33,html:[54,59,60,61],http:[54,59,60,61],http_archiv:60,idea:51,ident:62,ifndef:[42,43],ifstream:42,iint8calibr:[3,4,31,33,42,43,44,61],iint8entropycalibrator2:[3,4,31,33,42,43,61],iint8minmaxcalibr:[31,33,61],ilay:55,imag:61,images_:61,implement:[3,4,50,51,59,61],implic:51,in_shap:59,in_tensor:59,incas:42,includ:[14,16,17,30,34,40,41,42,43,48,58,59,60,61,62],includedirectori:[22,46],index:[54,56,61],inetworkdefinit:49,infer:[51,59,61],info:[17,32,36,43,44,55,57,59,62],inform:[28,30,34,49,56,58,59,61,62],infrastructur:61,ingest:53,inherit:[46,47,61],inlin:[43,51,59],input0:59,input1:59,input2:59,input:[3,4,33,42,44,45,49,50,51,52,53,55,58,59,61,62],input_data:59,input_file_path:62,input_rang:[43,44],input_s:59,input_shap:[58,59,61,62],inputrang:[21,37,43,44,46,47,59],inputrangeclass:[0,46],inspect:[55,59],instal:[56,59],instanc:[51,59],instanti:[52,53,55,59],instatin:[1,2,44],instead:[49,51,59,62],instruct:59,insur:60,int16_t:43,int64_t:[43,44,45,61],int8:[1,42,44,56,58,61,62],int8_t:43,int8cachecalibr:[20,33,39,42,43,46,47],int8cachecalibratortempl:[0,46],int8calibr:[3,20,31,39,42,43,46,47],int8calibratorstruct:[0,46],integ:58,integr:56,intent:51,interest:51,interfac:[1,2,44,50,53,55,61],intermedi:[17,59],intern:[2,17,44,55,59],internal_error:57,internalerror:57,interpret:50,intro_to_torchscript_tutori:59,invok:59,ios:42,iostream:[20,42,59],is_train:61,iscustomclass:55,issu:[3,4,59,60],istensor:55,istream_iter:42,it_:42,itensor:[49,55,59],iter:[42,44,49,58,62],its:[33,49,50,55],itself:[1,2,44,51,62],ivalu:[49,50,55,59],jetson:58,jit:[32,35,36,43,49,50,51,52,53,54,55,58,59,62],just:[42,43,51,56,59],kchar:[1,43,44],kclip:55,kcpu:[2,44],kcuda:[2,44,59],kdebug:[17,40,42],kdefault:[43,44],kdla:[2,43,44],kei:[58,59],kernel:[44,55,58,62],kerror:[17,40],kfloat:[1,43,44],kgpu:[2,43,44],kgraph:[17,40,51],khalf:[1,43,44,59],ki8:61,kind:[49,58],kinfo:[17,40,42],kinternal_error:[17,40],know:[40,55],kriz:61,krizhevski:61,ksafe_dla:[43,44],ksafe_gpu:[43,44],ktest:61,ktrain:61,kwarn:[17,40],label:61,laid:59,lambda:[55,59],languag:59,larg:[52,53,59,61],larger:61,last:51,later:[33,59],layer:[44,49,51,55,58,59,61,62],ld_library_path:60,ldd:60,learn:[56,61],leav:51,lenet:59,lenet_trt:[50,59],lenetclassifi:59,lenetfeatextractor:59,length:[3,4,42],let:[44,51,55,62],level:[18,23,27,28,38,40,42,46,47,51,53,57,59],levelnamespac:[0,46],leverag:61,lib:[51,59],librari:[30,43,50,52,53,55,59,60],libtorch:[4,34,55,59,60,61],libtrtorch:[59,60,62],licens:43,like:[49,51,55,59,61,62],limit:[51,61],line:62,linear:59,link:[49,56,59,62],linux:[53,60],linux_x86_64:60,list:[18,19,20,21,35,48,49,55,58,59,60],listconstruct:49,live:55,load:[50,59,61,62],local:[51,59],locat:61,log:[16,17,19,20,21,22,37,42,43,46,47,48,51,55,58],log_debug:55,logger:57,loggingenum:[0,46],loglevel:57,look:[49,50,51,52,53,59,61],loop:[],loop_unrol:51,loss:61,lot:55,lower:17,lower_graph:51,lower_tupl:51,loweralltupl:51,lowersimpletupl:51,lvl:[27,28,40],machin:[50,61],macro:[5,6,7,8,9,10,11,12,16,18,21,22,40,43,46,48],made:[51,52,53],mai:[49,53,59,61],main:[50,51,52,53,55,59],maintain:[50,55],major:53,make:[49,59,60,61],make_data_load:[4,61],make_int8_cache_calibr:[21,39,43,46,47,61],make_int8_calibr:[21,33,39,43,46,47,61],manag:[49,50,52,53,55,59],mangag:51,map:[2,44,49,51,52,53,55,59,61],master:[54,60,61],match:[44,51,60],matmul:[51,59],matrix:54,matur:53,max:[43,44,45,55,58,59,62],max_batch_s:[43,44,58,62],max_c:62,max_h:62,max_n:62,max_pool2d:59,max_val:55,max_w:62,maximum:[44,45,58,59,62],mean:[44,55,56,58,62],mechan:55,meet:58,member:[44,45,58],memori:[20,21,42,43,51,55,59],menu:62,messag:[17,27,28,57,62],metadata:[50,55],method:[32,35,36,51,55,58,59,60],method_nam:[32,35,43,58,59],might:51,min:[43,44,45,55,58,59,62],min_c:62,min_h:62,min_n:62,min_val:55,min_w:62,minim:[44,58,61,62],minimum:[44,45,57,59],minmax:[31,33,61],miss:59,mod:[59,61],mode:61,mode_:61,model:[59,61],modul:[32,35,36,43,50,52,53,55,56,58,61,62],modular:59,more:[49,56,59,61],most:53,move:[31,43,51,59,61],msg:[27,40,57],much:[55,61],multipl:61,must:[44,55,58,59,60,62],name:[3,4,32,35,42,55,58,59,60],namespac:[0,40,42,43,48,51,56,61],nativ:[53,54,59],native_funct:54,nbbind:[3,4,42],necessari:40,need:[1,2,28,33,41,44,49,51,55,59,60,61],nest:[46,47],net:[55,59],network:[31,33,55,59,61],new_lay:55,new_local_repositori:60,new_siz:61,next:[3,4,49,50,61],nice:60,ninja:60,nlp:[31,33,61],node:[51,55,59],node_info:[55,59],noexcept:61,none:55,norm:55,normal:[1,2,44,59,61],noskipw:42,note:[2,44,55],now:[51,53,55,59],nullptr:[42,43,44],num:62,num_avg_timing_it:[43,44,58],num_it:62,num_min_timing_it:[43,44,58],number:[3,4,44,51,55,58,59,62],numer:62,nvidia:[32,36,43,54,58,59,60,61,62],nvinfer1:[3,4,31,33,42,43,44,55,61],object:[1,2,3,4,44,45,55,59],obvious:59,off:50,ofstream:[42,59],older:53,onc:[40,41,42,43,49,50,51,59,61],one:[51,55,57,59],ones:[40,59,60],onli:[2,3,4,17,33,42,44,51,53,55,57,58,59,61,62],onnx:51,onto:[50,62],op_precis:[43,44,58,59,61,62],oper:[1,2,3,4,35,42,43,44,49,50,51,52,53,55,56,58,61,62],ops:[51,59],opset:[52,53],opt:[43,44,45,58,59,60],opt_c:62,opt_h:62,opt_n:62,opt_w:62,optim:[44,45,51,56,59,62],optimi:59,optimin:[44,45],option:[42,58,60,61,62],order:[44,55,59],org:[54,59,60,61],other:[1,2,43,44,49,51,56,58,59,62],our:[53,59],out:[35,42,49,51,52,53,55,57,58,59,60],out_shap:59,out_tensor:[55,59],output0:51,output:[25,26,44,49,50,51,55,57,59,62],output_file_path:62,outself:59,over:[52,53],overrid:[3,4,31,33,42,61],overview:[54,56],own:[55,59],packag:[51,59,62],page:56,pair:[55,61],paramet:[1,2,3,4,26,27,28,31,32,33,35,36,44,45,49,51,55,57,58,59],parent:[14,15,16,18,19,20,21],pars:59,part:[53,62],pass:[49,50,52,53,55,59,61],path:[4,13,14,15,16,31,33,59,60,61,62],pathwai:59,pattern:[55,59],peephole_optimz:51,perform:[31,33],performac:[44,45,61],phase:[17,55,59],pick:59,pip3:60,pipelin:62,piplein:59,place:[51,60,61],plan:[53,62],pleas:60,point:[58,59],pointer:[3,4,61],pop:50,posit:62,post:[31,33,44,56,62],power:59,pragma:[40,41,42,43,61],pre_cxx11_abi:60,precis:[44,56,58,59,61,62],precompil:60,prefix:[24,26,40,57],preprint:61,preprocess:61,preserv:[59,61],prespect:59,pretti:59,previous:33,prim:[49,50,51,59],primarili:[53,59],print:[17,35,42,57,58],priorit:60,privat:[3,4,42,43,61],process:[59,62],produc:[44,45,49,50,55,59],profil:[44,45],program:[18,19,20,21,33,48,52,53,56,59,62],propog:51,provid:[3,4,44,55,59,60,61],ptq:[3,4,16,18,21,22,37,43,46,47,48,56,62],ptq_calibr:[3,4,43,44,61],ptqtemplat:[0,46],pull:60,pure:35,purpos:60,push:50,push_back:42,python3:[51,59,60],python:[53,62],python_api:54,pytorch:[50,52,53,55,58,59,60,61],quantiz:[31,33,56,62],quantizatiom:44,question:59,quickli:[59,61,62],quit:[55,59],rais:51,raiseexcept:51,rand:59,randn:59,rang:[44,45,58,59,62],rather:51,read:[3,4,31,33,42,61],readcalibrationcach:[3,4,42],realiz:50,realli:55,reason:[1,44,59],recalibr:33,recognit:61,recomend:[31,33],recommend:[31,33,59,60],record:[49,59],recurs:49,reduc:[51,52,53,61],refer:[50,52,53],referenc:60,refit:[43,44,58],reflect:43,regard:60,regist:[50,55],registernodeconversionpattern:[55,59],registri:[49,59],reinterpret_cast:42,relationship:[46,47],releas:60,relu:59,remain:[51,61],remove_contigu:51,remove_dropout:51,remove_to:51,replac:51,report:[23,42],reportable_log_level:57,repositori:53,repres:[44,45,55,57],represent:[51,55,59],request:59,requir:[33,49,51,57,58,59,61,62],reserv:43,reset:42,resolv:[49,51,52,53],resourc:[49,61],respons:[33,50],restrict:[44,58,62],result:[49,51,52,53,58,59],ret:51,reus:[51,61],right:[43,51,53,55],root:[43,61],run:[2,32,44,49,50,51,52,53,55,56,58,59,60,61,62],runtim:[50,56,59],safe:[55,58],safe_dla:[58,62],safe_gpu:[58,62],safeti:[44,58],same:[50,59],sampl:61,save:[33,42,58,59,62],saw:59,scalar:55,scalartyp:[1,43,44],scale:61,schema:[55,59],scope:51,scratch:33,script:[35,51,58,59],script_model:59,scriptmodul:[58,59],sdk:54,seamlessli:56,search:56,section:61,see:[35,50,51,58,59],select:[31,32,33,44,58,61,62],self:[50,51,55,59],sens:59,serial:[32,50,52,53,58,59],serv:62,set:[3,4,17,26,28,32,33,36,44,45,49,51,52,53,56,57,58,59,61,62],set_is_colored_output_on:[18,38,40,46,47,57],set_logging_prefix:[18,38,40,46,47,57],set_reportable_log_level:[18,38,40,46,47,57],setalpha:55,setbeta:55,setnam:[55,59],setreshapedimens:59,setup:[60,61],sever:[17,27,57],sha256:60,shape:[44,45,55,58],ship:59,should:[1,3,4,33,43,44,49,55,56,57,58,61,62],shown:59,shuffl:59,side:[51,59],signifi:[44,45],significantli:51,similar:[55,59],simonyan:61,simpil:61,simpl:59,simpli:51,simplifi:49,sinc:[51,59,61],singl:[44,45,51,59,61,62],singular:55,site:[51,59],size:[3,4,42,44,45,51,58,59,61,62],size_t:[3,4,42,61],small:51,softmax:51,sole:61,some:[49,50,51,52,53,55,59,61],someth:[41,51],sort:55,sourc:[43,53,58],space:61,specif:[36,51,52,53,58],specifi:[3,4,55,56,57,58,59,62],specifii:58,src:54,ssd_trace:62,ssd_trt:62,sstream:[20,42],stabl:54,stack:[50,61],stage:49,stand:50,standard:[56,62],start:[49,60],start_dim:59,state:[49,55,59],statement:51,static_cast:42,statu:42,std:[3,4,24,27,29,30,31,32,33,35,40,42,43,44,45,59,61],stdout:[34,57,58],steamlin:61,step:[56,61],still:[42,61],stitch:59,stop:59,storag:61,store:[4,49,55,59],str:[19,41,42,46,47,57,58],straight:55,strict:62,strict_typ:[43,44,58],strictli:58,string:[3,4,18,20,21,24,27,29,30,31,32,33,35,40,42,43,55,58,59,61],stringstream:42,strip_prefix:60,struct:[1,2,21,37,43,61],structur:[33,44,53,55,59],style:43,sub:59,subdirectori:48,subexpress:51,subgraph:[49,51,55,59],subject:53,submodul:59,subset:61,suffic:51,suit:56,support:[1,2,26,35,44,45,54,58,59,62],sure:[59,60],system:[49,55,56,60],take:[32,35,36,49,50,52,53,55,58,59,61],talk:56,tar:[60,61],tarbal:[59,61],target:[2,44,53,56,58,59,61,62],targets_:61,task:[31,33,61],techinqu:59,techniqu:61,tell:[55,59],templat:[20,21,39,42,43,46,47,59],tensor:[42,44,45,49,50,51,55,59,61],tensorcontain:55,tensorlist:55,tensorrt:[1,2,3,4,31,32,33,34,36,43,44,45,49,51,52,53,55,56,58,59,61,62],term:61,termin:[26,59,62],test:[53,62],text:57,than:[51,56],thats:[49,61],thei:[44,49,51,55,60,62],them:[50,59],theori:49,therebi:50,therefor:[33,59],thi:[1,2,31,33,40,41,42,43,44,45,49,50,51,52,53,55,59,60,61,62],think:55,third_parti:[53,60],those:49,though:[53,55,59,62],three:[44,45,52,53],threshold:62,thrid_parti:60,through:[49,50,51,56,59],time:[44,49,51,52,53,55,58,59,61,62],tini:61,tmp:59,tocustomclass:55,todim:59,togeth:[49,55,59],too:60,tool:[55,59],top:53,torch:[1,2,4,31,32,33,35,36,42,43,44,50,51,54,55,58,59,61,62],torch_scirpt_modul:59,torch_script_modul:59,torchscript:[32,35,36,52,53,58,62],toronto:61,tovec:59,toward:61,trace:[58,59],traced_model:59,track:[55,61],tradit:61,traget:36,train:[31,33,44,56,59,62],trainabl:51,transform:[59,61],translat:59,travers:[52,53],treat:62,tree:[43,61],trigger:59,trim:61,trt:[1,2,3,4,44,49,50,51,55,59],trt_mod:[59,61],trt_ts_modul:59,trtorch:[0,1,2,3,4,15,17,22,40,41,42,44,45,47,48,49,50,51,52,53,60,61,62],trtorch_api:[19,23,24,25,26,27,28,29,30,31,32,33,34,35,36,40,41,43,46,47],trtorch_check:55,trtorch_hidden:[19,41,46,47],trtorch_major_vers:[19,41,46,47],trtorch_minor_vers:[19,41,46,47],trtorch_patch_vers:[19,41,46,47],trtorch_unus:55,trtorch_vers:[19,41,46,47],trtorchc:56,trtorchfil:[22,46],trtorchnamespac:[0,46],tupl:[58,59],tupleconstruct:51,tupleunpack:51,tutori:[59,61],two:[55,59,60,61,62],type:[1,2,31,45,46,47,49,50,55,57,58,59,61,62],typenam:[3,4,31,33,42,43],typic:[49,55],uint64_t:[43,44],unabl:[55,59],uncom:60,under:[43,53],underli:[1,2,44,55],union:[55,59],uniqu:4,unique_ptr:[4,31],unlik:56,unpack_addmm:51,unpack_log_softmax:51,unqiue_ptr:4,unstabl:53,unsupport:[35,58],unsur:55,untest:53,until:[49,53,55],unwrap:55,unwraptodoubl:55,unwraptoint:59,upstream:59,url:60,use:[1,2,3,4,31,33,44,49,50,51,53,55,57,58,59,60,61,62],use_cach:[3,4,31,42,43],use_cache_:42,use_subset:61,used:[1,2,3,4,42,44,45,49,50,51,55,57,58,59,61,62],useful:55,user:[40,52,53,59,60,61],uses:[31,33,42,55,61],using:[1,2,32,36,42,44,55,56,58,59,61,62],using_int:59,usr:60,util:[55,59],valid:[2,44,55],valu:[1,2,17,43,44,49,50,55,59],value_tensor_map:[49,55],varient:51,vector:[20,21,42,43,44,45,59,61],verbios:62,verbos:62,veri:61,version:[30,34,53,60],vgg16:61,via:[56,58],virtual:61,wai:[59,62],want:[40,44,59],warn:[17,42,55,57,62],websit:60,weight:[49,59],welcom:59,well:[59,61],were:59,what:[4,51,59],whatev:50,when:[26,42,44,49,50,51,52,53,55,57,58,59,60,61,62],where:[49,51,55,59,61],whether:[4,61],which:[2,32,33,36,44,49,50,51,52,53,55,58,59,61],whl:60,whose:51,within:[50,52,53],without:[55,59,61],work:[42,51,53,55,61],worker:61,workspac:[44,58,60,61,62],workspace_s:[43,44,58,61,62],would:[55,59,60,62],wrap:[52,53,59],wrapper:55,write:[3,4,31,33,42,49,56,59,61],writecalibrationcach:[3,4,42],www:[59,60,61],x86_64:[53,60],xstr:[19,41,46,47],yaml:54,you:[1,2,31,33,44,49,50,51,53,55,56,58,59,60,61,62],your:[55,56,59,60],yourself:59,zisserman:61},titles:["Class Hierarchy","Class ExtraInfo::DataType","Class ExtraInfo::DeviceType","Template Class Int8CacheCalibrator","Template Class Int8Calibrator","Define STR","Define TRTORCH_API","Define TRTORCH_HIDDEN","Define TRTORCH_MAJOR_VERSION","Define TRTORCH_PATCH_VERSION","Define TRTORCH_VERSION","Define XSTR","Define TRTORCH_MINOR_VERSION","Directory cpp","Directory api","Directory include","Directory trtorch","Enum Level","File logging.h","File macros.h","File ptq.h","File trtorch.h","File Hierarchy","Function trtorch::logging::get_reportable_log_level","Function trtorch::logging::set_logging_prefix","Function trtorch::logging::get_is_colored_output_on","Function trtorch::logging::set_is_colored_output_on","Function trtorch::logging::log","Function trtorch::logging::set_reportable_log_level","Function trtorch::logging::get_logging_prefix","Function trtorch::get_build_info","Template Function trtorch::ptq::make_int8_calibrator","Function trtorch::ConvertGraphToTRTEngine","Template Function trtorch::ptq::make_int8_cache_calibrator","Function trtorch::dump_build_info","Function trtorch::CheckMethodOperatorSupport","Function trtorch::CompileGraph","Namespace trtorch","Namespace trtorch::logging","Namespace trtorch::ptq","Program Listing for File logging.h","Program Listing for File macros.h","Program Listing for File ptq.h","Program Listing for File trtorch.h","Struct ExtraInfo","Struct ExtraInfo::InputRange","TRTorch C++ API","Full API","Full API","Conversion Phase","Execution Phase","Lowering Phase","Compiler Phases","System Overview","Useful Links for TRTorch Development","Writing Converters","TRTorch","trtorch.logging","trtorch","Getting Started","Installation","Post Training Quantization (PTQ)","trtorchc"],titleterms:{"class":[0,1,2,3,4,20,21,37,39,46,47],"enum":[17,18,38,46,47,58],"function":[18,21,23,24,25,26,27,28,29,30,31,32,33,34,35,36,37,38,39,46,47,54,58],The:59,Used:51,Useful:54,addmm:51,advic:55,ahead:56,api:[14,18,19,20,21,46,47,48,54,56],applic:61,arg:55,avail:54,background:[50,55],base:[3,4],binari:60,branch:51,build:60,checkmethodoperatorsupport:35,citat:61,code:51,compil:[52,53,56,59,60],compilegraph:36,construct:50,content:[18,19,20,21,37,38,39],context:55,contigu:51,contract:55,contributor:56,convers:[49,52,53,55],convert:[49,55,59],convertgraphtotrtengin:32,cpp:[13,18,19,20,21],creat:[59,61],cudnn:60,custom:59,datatyp:1,dead:51,debug:60,defin:[5,6,7,8,9,10,11,12,19,46,47],definit:[18,19,20,21],depend:60,develop:54,devicetyp:2,dimens:54,directori:[13,14,15,16,48],distribut:60,documen:56,document:[1,2,3,4,5,6,7,8,9,10,11,12,17,23,24,25,26,27,28,29,30,31,32,33,34,35,36,44,45,54,56],dropout:51,dump_build_info:34,easier:54,elimin:51,eliminatecommonsubexpress:51,engin:50,evalu:49,execept:51,execut:[50,52,53],executor:50,expect:54,extrainfo:[1,2,44,45],file:[16,18,19,20,21,22,40,41,42,43,46,48],flatten:51,freez:51,from:60,full:[46,47,48],fuse:51,gaurd:51,get:[56,59],get_build_info:30,get_is_colored_output_on:25,get_logging_prefix:29,get_reportable_log_level:23,gpu:56,graph:[50,51],guarante:55,hierarchi:[0,22,46],hood:59,how:61,includ:[15,18,19,20,21],indic:56,inherit:[3,4],inputrang:45,instal:60,int8cachecalibr:3,int8calibr:4,jit:56,layer:54,level:17,linear:51,link:54,list:[40,41,42,43],local:60,log:[18,23,24,25,26,27,28,29,38,40,57],logsoftmax:51,loop:51,lower:[51,52,53],macro:[19,41],make_int8_cache_calibr:33,make_int8_calibr:31,modul:[51,59],namespac:[18,20,21,37,38,39,46,47],native_op:54,nest:[1,2,44,45],node:49,nvidia:56,oper:59,optimz:51,other:55,overview:53,own:61,packag:60,pass:51,pattern:51,peephol:51,phase:[49,50,51,52,53],post:61,program:[40,41,42,43],ptq:[20,31,33,39,42,61],python:[54,56,59,60],pytorch:[54,56],quantiz:61,read:54,redund:51,regist:59,relationship:[1,2,3,4,44,45],remov:51,respons:55,result:50,set_is_colored_output_on:26,set_logging_prefix:24,set_reportable_log_level:28,sometim:54,sourc:60,start:[56,59],str:5,struct:[44,45,46,47],subdirectori:[13,14,15],submodul:58,system:53,tarbal:60,templat:[3,4,31,33],tensorrt:[50,54,60],time:56,torchscript:[56,59],train:61,trtorch:[16,18,19,20,21,23,24,25,26,27,28,29,30,31,32,33,34,35,36,37,38,39,43,46,54,56,57,58,59],trtorch_api:6,trtorch_hidden:7,trtorch_major_vers:8,trtorch_minor_vers:12,trtorch_patch_vers:9,trtorch_vers:10,trtorchc:62,tupl:51,type:[3,4,44],under:59,unpack:51,unrol:51,unsupport:59,using:60,weight:55,what:55,work:59,write:55,xstr:11,your:61}}) \ No newline at end of file diff --git a/docs/sitemap.xml b/docs/sitemap.xml index 4670406c27..21a402bea8 100644 --- a/docs/sitemap.xml +++ b/docs/sitemap.xml @@ -1 +1 @@ -https://nvidia.github.io/TRTorch/_cpp_api/class_view_hierarchy.htmlhttps://nvidia.github.io/TRTorch/_cpp_api/classtrtorch_1_1ExtraInfo_1_1DataType.htmlhttps://nvidia.github.io/TRTorch/_cpp_api/classtrtorch_1_1ExtraInfo_1_1DeviceType.htmlhttps://nvidia.github.io/TRTorch/_cpp_api/classtrtorch_1_1ptq_1_1Int8CacheCalibrator.htmlhttps://nvidia.github.io/TRTorch/_cpp_api/classtrtorch_1_1ptq_1_1Int8Calibrator.htmlhttps://nvidia.github.io/TRTorch/_cpp_api/define_macros_8h_1a18d295a837ac71add5578860b55e5502.htmlhttps://nvidia.github.io/TRTorch/_cpp_api/define_macros_8h_1a20c1fbeb21757871c52299dc52351b5f.htmlhttps://nvidia.github.io/TRTorch/_cpp_api/define_macros_8h_1a25ee153c325dfc7466a33cbd5c1ff055.htmlhttps://nvidia.github.io/TRTorch/_cpp_api/define_macros_8h_1a48d6029a45583a06848891cb0e86f7ba.htmlhttps://nvidia.github.io/TRTorch/_cpp_api/define_macros_8h_1a71b02dddfabe869498ad5a88e11c440f.htmlhttps://nvidia.github.io/TRTorch/_cpp_api/define_macros_8h_1a9d31d0569348d109b1b069b972dd143e.htmlhttps://nvidia.github.io/TRTorch/_cpp_api/define_macros_8h_1abe87b341f562fd1cf40b7672e4d759da.htmlhttps://nvidia.github.io/TRTorch/_cpp_api/define_macros_8h_1ae1c56ab8a40af292a9a4964651524d84.htmlhttps://nvidia.github.io/TRTorch/_cpp_api/dir_cpp.htmlhttps://nvidia.github.io/TRTorch/_cpp_api/dir_cpp_api.htmlhttps://nvidia.github.io/TRTorch/_cpp_api/dir_cpp_api_include.htmlhttps://nvidia.github.io/TRTorch/_cpp_api/dir_cpp_api_include_trtorch.htmlhttps://nvidia.github.io/TRTorch/_cpp_api/enum_logging_8h_1a5f612ff2f783ff4fbe89d168f0d817d4.htmlhttps://nvidia.github.io/TRTorch/_cpp_api/file_cpp_api_include_trtorch_logging.h.htmlhttps://nvidia.github.io/TRTorch/_cpp_api/file_cpp_api_include_trtorch_macros.h.htmlhttps://nvidia.github.io/TRTorch/_cpp_api/file_cpp_api_include_trtorch_ptq.h.htmlhttps://nvidia.github.io/TRTorch/_cpp_api/file_cpp_api_include_trtorch_trtorch.h.htmlhttps://nvidia.github.io/TRTorch/_cpp_api/file_view_hierarchy.htmlhttps://nvidia.github.io/TRTorch/_cpp_api/function_logging_8h_1a118d65b179defff7fff279eb9cd126cb.htmlhttps://nvidia.github.io/TRTorch/_cpp_api/function_logging_8h_1a396a688110397538f8b3fb7dfdaf38bb.htmlhttps://nvidia.github.io/TRTorch/_cpp_api/function_logging_8h_1a9b420280bfacc016d7e36a5704021949.htmlhttps://nvidia.github.io/TRTorch/_cpp_api/function_logging_8h_1aa533955a2b908db9e5df5acdfa24715f.htmlhttps://nvidia.github.io/TRTorch/_cpp_api/function_logging_8h_1abc57d473f3af292551dee8b9c78373ad.htmlhttps://nvidia.github.io/TRTorch/_cpp_api/function_logging_8h_1adf5435f0dbb09c0d931a1b851847236b.htmlhttps://nvidia.github.io/TRTorch/_cpp_api/function_logging_8h_1aef44b69c62af7cf2edc8875a9506641a.htmlhttps://nvidia.github.io/TRTorch/_cpp_api/function_trtorch_8h_1a2cf17d43ba9117b3b4d652744b4f0447.htmlhttps://nvidia.github.io/TRTorch/_cpp_api/function_trtorch_8h_1a4422781719d7befedb364cacd91c6247.htmlhttps://nvidia.github.io/TRTorch/_cpp_api/function_trtorch_8h_1a536bba54b70e44554099d23fa3d7e804.htmlhttps://nvidia.github.io/TRTorch/_cpp_api/function_trtorch_8h_1a5f33b142bc2f3f2aaf462270b3ad7e31.htmlhttps://nvidia.github.io/TRTorch/_cpp_api/function_trtorch_8h_1a726f6e7091b6b7be45b5a4275b2ffb10.htmlhttps://nvidia.github.io/TRTorch/_cpp_api/function_trtorch_8h_1ab01696cfe08b6a5293c55935a9713c25.htmlhttps://nvidia.github.io/TRTorch/_cpp_api/function_trtorch_8h_1ae38897d1ca4438227c970029d0f76fb5.htmlhttps://nvidia.github.io/TRTorch/_cpp_api/namespace_trtorch.htmlhttps://nvidia.github.io/TRTorch/_cpp_api/namespace_trtorch__logging.htmlhttps://nvidia.github.io/TRTorch/_cpp_api/namespace_trtorch__ptq.htmlhttps://nvidia.github.io/TRTorch/_cpp_api/program_listing_file_cpp_api_include_trtorch_logging.h.htmlhttps://nvidia.github.io/TRTorch/_cpp_api/program_listing_file_cpp_api_include_trtorch_macros.h.htmlhttps://nvidia.github.io/TRTorch/_cpp_api/program_listing_file_cpp_api_include_trtorch_ptq.h.htmlhttps://nvidia.github.io/TRTorch/_cpp_api/program_listing_file_cpp_api_include_trtorch_trtorch.h.htmlhttps://nvidia.github.io/TRTorch/_cpp_api/structtrtorch_1_1ExtraInfo.htmlhttps://nvidia.github.io/TRTorch/_cpp_api/structtrtorch_1_1ExtraInfo_1_1InputRange.htmlhttps://nvidia.github.io/TRTorch/_cpp_api/trtorch_cpp.htmlhttps://nvidia.github.io/TRTorch/_cpp_api/unabridged_api.htmlhttps://nvidia.github.io/TRTorch/_cpp_api/unabridged_orphan.htmlhttps://nvidia.github.io/TRTorch/contributors/conversion.htmlhttps://nvidia.github.io/TRTorch/contributors/execution.htmlhttps://nvidia.github.io/TRTorch/contributors/lowering.htmlhttps://nvidia.github.io/TRTorch/contributors/phases.htmlhttps://nvidia.github.io/TRTorch/contributors/system_overview.htmlhttps://nvidia.github.io/TRTorch/contributors/useful_links.htmlhttps://nvidia.github.io/TRTorch/contributors/writing_converters.htmlhttps://nvidia.github.io/TRTorch/index.htmlhttps://nvidia.github.io/TRTorch/py_api/logging.htmlhttps://nvidia.github.io/TRTorch/py_api/trtorch.htmlhttps://nvidia.github.io/TRTorch/tutorials/getting_started.htmlhttps://nvidia.github.io/TRTorch/tutorials/installation.htmlhttps://nvidia.github.io/TRTorch/tutorials/ptq.htmlhttps://nvidia.github.io/TRTorch/tutorials/trtorchc.htmlhttps://nvidia.github.io/TRTorch/genindex.htmlhttps://nvidia.github.io/TRTorch/py-modindex.htmlhttps://nvidia.github.io/TRTorch/search.html \ No newline at end of file +https://nvidia.github.io/TRTorch/_cpp_api/class_view_hierarchy.htmlhttps://nvidia.github.io/TRTorch/_cpp_api/classtrtorch_1_1ExtraInfo_1_1DataType.htmlhttps://nvidia.github.io/TRTorch/_cpp_api/classtrtorch_1_1ExtraInfo_1_1DeviceType.htmlhttps://nvidia.github.io/TRTorch/_cpp_api/classtrtorch_1_1ptq_1_1Int8CacheCalibrator.htmlhttps://nvidia.github.io/TRTorch/_cpp_api/classtrtorch_1_1ptq_1_1Int8Calibrator.htmlhttps://nvidia.github.io/TRTorch/_cpp_api/define_macros_8h_1a18d295a837ac71add5578860b55e5502.htmlhttps://nvidia.github.io/TRTorch/_cpp_api/define_macros_8h_1a20c1fbeb21757871c52299dc52351b5f.htmlhttps://nvidia.github.io/TRTorch/_cpp_api/define_macros_8h_1a25ee153c325dfc7466a33cbd5c1ff055.htmlhttps://nvidia.github.io/TRTorch/_cpp_api/define_macros_8h_1a48d6029a45583a06848891cb0e86f7ba.htmlhttps://nvidia.github.io/TRTorch/_cpp_api/define_macros_8h_1a71b02dddfabe869498ad5a88e11c440f.htmlhttps://nvidia.github.io/TRTorch/_cpp_api/define_macros_8h_1a9d31d0569348d109b1b069b972dd143e.htmlhttps://nvidia.github.io/TRTorch/_cpp_api/define_macros_8h_1abe87b341f562fd1cf40b7672e4d759da.htmlhttps://nvidia.github.io/TRTorch/_cpp_api/define_macros_8h_1ae1c56ab8a40af292a9a4964651524d84.htmlhttps://nvidia.github.io/TRTorch/_cpp_api/dir_cpp.htmlhttps://nvidia.github.io/TRTorch/_cpp_api/dir_cpp_api.htmlhttps://nvidia.github.io/TRTorch/_cpp_api/dir_cpp_api_include.htmlhttps://nvidia.github.io/TRTorch/_cpp_api/dir_cpp_api_include_trtorch.htmlhttps://nvidia.github.io/TRTorch/_cpp_api/enum_logging_8h_1a5f612ff2f783ff4fbe89d168f0d817d4.htmlhttps://nvidia.github.io/TRTorch/_cpp_api/file_cpp_api_include_trtorch_logging.h.htmlhttps://nvidia.github.io/TRTorch/_cpp_api/file_cpp_api_include_trtorch_macros.h.htmlhttps://nvidia.github.io/TRTorch/_cpp_api/file_cpp_api_include_trtorch_ptq.h.htmlhttps://nvidia.github.io/TRTorch/_cpp_api/file_cpp_api_include_trtorch_trtorch.h.htmlhttps://nvidia.github.io/TRTorch/_cpp_api/file_view_hierarchy.htmlhttps://nvidia.github.io/TRTorch/_cpp_api/function_logging_8h_1a118d65b179defff7fff279eb9cd126cb.htmlhttps://nvidia.github.io/TRTorch/_cpp_api/function_logging_8h_1a396a688110397538f8b3fb7dfdaf38bb.htmlhttps://nvidia.github.io/TRTorch/_cpp_api/function_logging_8h_1a9b420280bfacc016d7e36a5704021949.htmlhttps://nvidia.github.io/TRTorch/_cpp_api/function_logging_8h_1aa533955a2b908db9e5df5acdfa24715f.htmlhttps://nvidia.github.io/TRTorch/_cpp_api/function_logging_8h_1abc57d473f3af292551dee8b9c78373ad.htmlhttps://nvidia.github.io/TRTorch/_cpp_api/function_logging_8h_1adf5435f0dbb09c0d931a1b851847236b.htmlhttps://nvidia.github.io/TRTorch/_cpp_api/function_logging_8h_1aef44b69c62af7cf2edc8875a9506641a.htmlhttps://nvidia.github.io/TRTorch/_cpp_api/function_trtorch_8h_1a2cf17d43ba9117b3b4d652744b4f0447.htmlhttps://nvidia.github.io/TRTorch/_cpp_api/function_trtorch_8h_1a4422781719d7befedb364cacd91c6247.htmlhttps://nvidia.github.io/TRTorch/_cpp_api/function_trtorch_8h_1a536bba54b70e44554099d23fa3d7e804.htmlhttps://nvidia.github.io/TRTorch/_cpp_api/function_trtorch_8h_1a5f33b142bc2f3f2aaf462270b3ad7e31.htmlhttps://nvidia.github.io/TRTorch/_cpp_api/function_trtorch_8h_1a726f6e7091b6b7be45b5a4275b2ffb10.htmlhttps://nvidia.github.io/TRTorch/_cpp_api/function_trtorch_8h_1ab01696cfe08b6a5293c55935a9713c25.htmlhttps://nvidia.github.io/TRTorch/_cpp_api/function_trtorch_8h_1ae38897d1ca4438227c970029d0f76fb5.htmlhttps://nvidia.github.io/TRTorch/_cpp_api/namespace_trtorch.htmlhttps://nvidia.github.io/TRTorch/_cpp_api/namespace_trtorch__logging.htmlhttps://nvidia.github.io/TRTorch/_cpp_api/namespace_trtorch__ptq.htmlhttps://nvidia.github.io/TRTorch/_cpp_api/program_listing_file_cpp_api_include_trtorch_logging.h.htmlhttps://nvidia.github.io/TRTorch/_cpp_api/program_listing_file_cpp_api_include_trtorch_macros.h.htmlhttps://nvidia.github.io/TRTorch/_cpp_api/program_listing_file_cpp_api_include_trtorch_ptq.h.htmlhttps://nvidia.github.io/TRTorch/_cpp_api/program_listing_file_cpp_api_include_trtorch_trtorch.h.htmlhttps://nvidia.github.io/TRTorch/_cpp_api/structtrtorch_1_1ExtraInfo.htmlhttps://nvidia.github.io/TRTorch/_cpp_api/structtrtorch_1_1ExtraInfo_1_1InputRange.htmlhttps://nvidia.github.io/TRTorch/_cpp_api/trtorch_cpp.htmlhttps://nvidia.github.io/TRTorch/_cpp_api/unabridged_api.htmlhttps://nvidia.github.io/TRTorch/_cpp_api/unabridged_orphan.htmlhttps://nvidia.github.io/TRTorch/contributors/lowering.htmlhttps://nvidia.github.io/TRTorch/contributors/phases.htmlhttps://nvidia.github.io/TRTorch/contributors/system_overview.htmlhttps://nvidia.github.io/TRTorch/index.htmlhttps://nvidia.github.io/TRTorch/genindex.htmlhttps://nvidia.github.io/TRTorch/py-modindex.htmlhttps://nvidia.github.io/TRTorch/search.html \ No newline at end of file diff --git a/docsrc/contributors/lowering.rst b/docsrc/contributors/lowering.rst index 1a88b6fddb..3b23911ec6 100644 --- a/docsrc/contributors/lowering.rst +++ b/docsrc/contributors/lowering.rst @@ -14,6 +14,15 @@ You can see the effects of each pass by setting the log level to ``Level::kGraph Passes Used ------------- +EliminateCommonSubexpression +*********************************** + + `torch/csrc/jit/passes/common_subexpression_elimination.h `_ + +Removes common subexpressions in the graph + + + Eliminate Dead Code ************************** @@ -56,6 +65,31 @@ Freeze Module Freeze attributes and inline constants and modules. Propogates constants in the graph. +Fuse AddMM Branches +*************************************** + + `trtorch/core/lowering/passes/fuse_addmm_branches.cpp `_ + +A common pattern in scripted modules is tensors of different dimensions use different constructions for implementing linear layers. We fuse these +different varients into a single one that will get caught by the Unpack AddMM pass. + +.. code-block:: none + + %ret : Tensor = prim::If(%622) + block0(): + %ret.1 : Tensor = aten::addmm(%self.fc.bias, %x9.1, %3677, %3, %3) + -> (%ret.1) + block1(): + %output.1 : Tensor = aten::matmul(%x9.1, %3677) + %output0.1 : Tensor = aten::add_(%output.1, %self.fc.bias, %3) + -> (%output0.1) + +We fuse this set of blocks into a graph like this: + +.. code-block:: none + + %ret : Tensor = aten::addmm(%self.fc.bias, %x9.1, %3677, %3, %3) + Fuse Linear *************************************** @@ -97,6 +131,18 @@ Removes tuples where TupleConstruct and TupleUnpack are matched but leaves tuple Removes _all_ tuples and raises an error if some cannot be removed, this is used by ONNX to ensure there are not tuples before conversion, but will not work on graphs whose inputs contain tuples. +Peephole Optimze +*************************************** + + `torch/csrc/jit/passes/peephole_optimze.h `_ + +The intent for this optimization pass is to catch all of the small, easy to catch peephole optimizations you might be interested in doing. + +Right now, it does: + - Eliminate no-op 'expand' nodes + - Simply x.t().t() to x + + Remove Contiguous *************************************** @@ -112,6 +158,14 @@ Remove Dropout Removes dropout operators since we are doing inference. +Remove To +*************************************** + + `trtorch/core/lowering/passes/remove_to.cpp `_ + +Removes ``aten::to`` operators that do casting, since TensorRT mangages it itself. It is important that this is one of the last passes run so that +other passes have a change to move required cast operators out of the main namespace. + Unpack AddMM *************************************** @@ -127,4 +181,11 @@ Unpack LogSoftmax `trtorch/core/lowering/passes/unpack_log_softmax.cpp `_ Unpacks ``aten::logsoftmax`` into ``aten::softmax`` and ``aten::log``. This lets us reuse the -``aten::softmax`` and ``aten::log`` converters instead of needing a dedicated converter. \ No newline at end of file +``aten::softmax`` and ``aten::log`` converters instead of needing a dedicated converter. + +Unroll Loops +*************************************** + + `torch/csrc/jit/passes/loop_unrolling.h `_ + + Unrolls the operations of compatable loops (e.g. sufficently short) so that you only have to go through the loop once. \ No newline at end of file diff --git a/docsrc/contributors/useful_links.rst b/docsrc/contributors/useful_links.rst index 4677690864..b31d20a55e 100644 --- a/docsrc/contributors/useful_links.rst +++ b/docsrc/contributors/useful_links.rst @@ -3,31 +3,31 @@ Useful Links for TRTorch Development ===================================== -TensorRT Available Layers and Expected Dimensions: +TensorRT Available Layers and Expected Dimensions ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ * https://docs.nvidia.com/deeplearning/sdk/tensorrt-support-matrix/index.html#layers-matrix -TensorRT C++ Documentation: +TensorRT C++ Documentation ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ * https://docs.nvidia.com/deeplearning/tensorrt/api/c_api/index.html -TensorRT Python Documentation (Sometimes easier to read): +TensorRT Python Documentation (Sometimes easier to read) ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ * https://docs.nvidia.com/deeplearning/sdk/tensorrt-api/python_api/index.html -PyTorch Functional API: +PyTorch Functional API ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ * https://pytorch.org/docs/stable/nn.functional.html -PyTorch native_ops: +PyTorch native_ops ^^^^^^^^^^^^^^^^^^^^^ * https://github.com/pytorch/pytorch/blob/master/aten/src/ATen/native/native_functions.yaml -PyTorch IR Documentation: +PyTorch IR Documentation ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ * https://github.com/pytorch/pytorch/blob/master/torch/csrc/jit/OVERVIEW.md diff --git a/tests/modules/test_compiled_modules.cpp b/tests/modules/test_compiled_modules.cpp index 9a5c9daf1d..249bb34d78 100644 --- a/tests/modules/test_compiled_modules.cpp +++ b/tests/modules/test_compiled_modules.cpp @@ -33,4 +33,10 @@ INSTANTIATE_TEST_SUITE_P(CompiledModuleForwardIsCloseSuite, PathAndInSize({"tests/modules/resnet50_traced.jit.pt", {{1,3,224,224}}}), PathAndInSize({"tests/modules/mobilenet_v2_traced.jit.pt", + {{1,3,224,224}}}), + PathAndInSize({"tests/modules/resnet18_scripted.jit.pt", + {{1,3,224,224}}}), + PathAndInSize({"tests/modules/resnet50_scripted.jit.pt", + {{1,3,224,224}}}), + PathAndInSize({"tests/modules/mobilenet_v2_scripted.jit.pt", {{1,3,224,224}}}))); diff --git a/tests/modules/test_modules_as_engines.cpp b/tests/modules/test_modules_as_engines.cpp index d190251bb3..8359f1d873 100644 --- a/tests/modules/test_modules_as_engines.cpp +++ b/tests/modules/test_modules_as_engines.cpp @@ -24,4 +24,10 @@ INSTANTIATE_TEST_SUITE_P(ModuleAsEngineForwardIsCloseSuite, PathAndInSize({"tests/modules/resnet50_traced.jit.pt", {{1,3,224,224}}}), PathAndInSize({"tests/modules/mobilenet_v2_traced.jit.pt", + {{1,3,224,224}}}), + PathAndInSize({"tests/modules/resnet18_scripted.jit.pt", + {{1,3,224,224}}}), + PathAndInSize({"tests/modules/resnet50_scripted.jit.pt", + {{1,3,224,224}}}), + PathAndInSize({"tests/modules/mobilenet_v2_scripted.jit.pt", {{1,3,224,224}}}))); \ No newline at end of file