Пример #1
0
    def testGetTensorrtRewriterConfigTemplate(self):
        """Test case for TrtGraphConverter.get_tensorrt_rewriter_config()."""
        if not is_tensorrt_enabled():
            return

        rewriter_config_with_trt = rewriter_config_pb2.RewriterConfig()
        rewriter_config_with_trt.optimizers.extend(
            ["constfold", "layout", "constfold"])
        rewriter_config_with_trt.meta_optimizer_iterations = (
            rewriter_config_pb2.RewriterConfig.ONE)
        optimizer = rewriter_config_with_trt.custom_optimizers.add()
        rewriter_config_with_trt.custom_optimizers.add().name = "constfold"
        optimizer.name = "TensorRTOptimizer"
        optimizer.parameter_map["minimum_segment_size"].i = 10
        optimizer.parameter_map["max_batch_size"].i = 128
        optimizer.parameter_map["is_dynamic_op"].b = True
        optimizer.parameter_map["max_workspace_size_bytes"].i = 1234
        optimizer.parameter_map["precision_mode"].s = trt_convert._to_bytes(
            trt_convert.TrtPrecisionMode.INT8)
        optimizer.parameter_map["maximum_cached_engines"].i = 2
        optimizer.parameter_map["use_calibration"].b = False
        optimizer.parameter_map["use_implicit_batch"].b = True

        conversion_params = trt_convert.DEFAULT_TRT_CONVERSION_PARAMS._replace(
            rewriter_config_template=rewriter_config_with_trt)
        rewriter_cfg = trt_convert.get_tensorrt_rewriter_config(
            conversion_params=conversion_params)
        self.assertEqual(["constfold", "layout", "constfold"],
                         rewriter_cfg.optimizers)
        self.assertEqual(rewriter_config_pb2.RewriterConfig.ONE,
                         rewriter_cfg.meta_optimizer_iterations)
        trt_optimizer = None
        for optimizer in rewriter_cfg.custom_optimizers:
            if optimizer.name == "TensorRTOptimizer":
                self.assertIsNone(trt_optimizer)
                trt_optimizer = optimizer
        self.assertIsNotNone(trt_optimizer)
        for key in [
                "minimum_segment_size", "max_batch_size", "is_dynamic_op",
                "max_workspace_size_bytes", "precision_mode",
                "maximum_cached_engines"
        ]:
            self.assertIn(key, trt_optimizer.parameter_map)
        self.assertEqual(10,
                         trt_optimizer.parameter_map["minimum_segment_size"].i)
        self.assertEqual(128, trt_optimizer.parameter_map["max_batch_size"].i)
        self.assertEqual(True, trt_optimizer.parameter_map["is_dynamic_op"].b)
        self.assertEqual(
            1234, trt_optimizer.parameter_map["max_workspace_size_bytes"].i)
        self.assertEqual(trt_convert._to_bytes("INT8"),
                         trt_optimizer.parameter_map["precision_mode"].s)
        self.assertEqual(
            2, trt_optimizer.parameter_map["maximum_cached_engines"].i)
        self.assertEqual(False,
                         trt_optimizer.parameter_map["use_calibration"].b)
        self.assertEqual(True,
                         trt_optimizer.parameter_map["use_implicit_batch"].b)
Пример #2
0
 def testGetTensorrtRewriterConfig(self):
     """Test case for TrtGraphConverter.get_tensorrt_rewriter_config()."""
     if not is_tensorrt_enabled():
         return
     conversion_params = trt_convert.DEFAULT_TRT_CONVERSION_PARAMS._replace(
         max_batch_size=128,
         max_workspace_size_bytes=1234,
         precision_mode="INT8",
         minimum_segment_size=10,
         is_dynamic_op=True,
         maximum_cached_engines=2,
         cached_engine_batches=[1, 128])
     rewriter_cfg = trt_convert.get_tensorrt_rewriter_config(
         conversion_params=conversion_params)
     self.assertEqual(["constfold", "layout", "constfold"],
                      rewriter_cfg.optimizers)
     self.assertEqual(rewriter_config_pb2.RewriterConfig.ONE,
                      rewriter_cfg.meta_optimizer_iterations)
     trt_optimizer = None
     for optimizer in rewriter_cfg.custom_optimizers:
         if optimizer.name == "TensorRTOptimizer":
             self.assertTrue(trt_optimizer is None)
             trt_optimizer = optimizer
     self.assertTrue(trt_optimizer is not None)
     for key in [
             "minimum_segment_size", "max_batch_size", "is_dynamic_op",
             "max_workspace_size_bytes", "precision_mode",
             "maximum_cached_engines", "cached_engine_batches"
     ]:
         self.assertTrue(key in trt_optimizer.parameter_map)
     self.assertEqual(10,
                      trt_optimizer.parameter_map["minimum_segment_size"].i)
     self.assertEqual(128, trt_optimizer.parameter_map["max_batch_size"].i)
     self.assertEqual(True, trt_optimizer.parameter_map["is_dynamic_op"].b)
     self.assertEqual(
         1234, trt_optimizer.parameter_map["max_workspace_size_bytes"].i)
     self.assertEqual(trt_convert._to_bytes("INT8"),
                      trt_optimizer.parameter_map["precision_mode"].s)
     self.assertEqual(
         2, trt_optimizer.parameter_map["maximum_cached_engines"].i)
     self.assertEqual(
         [1, 128],
         trt_optimizer.parameter_map["cached_engine_batches"].list.i)
Пример #3
0
 def testGetTensorrtRewriterConfig(self):
   """Test case for TrtGraphConverter.get_tensorrt_rewriter_config()."""
   if not is_tensorrt_enabled():
     return
   conversion_params = trt_convert.DEFAULT_TRT_CONVERSION_PARAMS._replace(
       max_batch_size=128,
       max_workspace_size_bytes=1234,
       precision_mode="INT8",
       minimum_segment_size=10,
       is_dynamic_op=True,
       maximum_cached_engines=2,
       cached_engine_batches=[1, 128])
   rewriter_cfg = trt_convert.get_tensorrt_rewriter_config(
       conversion_params=conversion_params)
   self.assertEqual(["constfold", "layout", "constfold"],
                    rewriter_cfg.optimizers)
   self.assertEqual(rewriter_config_pb2.RewriterConfig.ONE,
                    rewriter_cfg.meta_optimizer_iterations)
   trt_optimizer = None
   for optimizer in rewriter_cfg.custom_optimizers:
     if optimizer.name == "TensorRTOptimizer":
       self.assertTrue(trt_optimizer is None)
       trt_optimizer = optimizer
   self.assertTrue(trt_optimizer is not None)
   for key in [
       "minimum_segment_size", "max_batch_size", "is_dynamic_op",
       "max_workspace_size_bytes", "precision_mode", "maximum_cached_engines",
       "cached_engine_batches"
   ]:
     self.assertTrue(key in trt_optimizer.parameter_map)
   self.assertEqual(10, trt_optimizer.parameter_map["minimum_segment_size"].i)
   self.assertEqual(128, trt_optimizer.parameter_map["max_batch_size"].i)
   self.assertEqual(True, trt_optimizer.parameter_map["is_dynamic_op"].b)
   self.assertEqual(1234,
                    trt_optimizer.parameter_map["max_workspace_size_bytes"].i)
   self.assertEqual(
       trt_convert._to_bytes("INT8"),
       trt_optimizer.parameter_map["precision_mode"].s)
   self.assertEqual(2, trt_optimizer.parameter_map["maximum_cached_engines"].i)
   self.assertEqual(
       [1, 128], trt_optimizer.parameter_map["cached_engine_batches"].list.i)