def ShouldRunTest(self, run_params): if trt_convert.get_linked_tensorrt_version()[0] < 5: return False # Only test static engine mode, with or without calibration. return (trt_test.IsQuantizationMode(run_params.precision_mode) and not run_params.use_optimizer and not run_params.dynamic_engine)
def _GetConfigProto(self, run_params, graph_state): """Get config proto based on specific settings.""" if graph_state != GraphState.ORIGINAL and run_params.use_optimizer: conversion_params = self.GetConversionParams(run_params) rewriter_cfg = trt_convert.tensorrt_rewriter_config( conversion_params.rewriter_config, conversion_params.max_batch_size, conversion_params.max_workspace_size_bytes, conversion_params.precision_mode, conversion_params.minimum_segment_size, conversion_params.is_dynamic_op, conversion_params.maximum_cached_engines, conversion_params.cached_engine_batch_sizes) graph_options = config_pb2.GraphOptions( rewrite_options=rewriter_cfg) else: graph_options = config_pb2.GraphOptions() gpu_options = config_pb2.GPUOptions() gpu_options.allow_growth = True if trt_convert.get_linked_tensorrt_version()[0] == 3: gpu_options.per_process_gpu_memory_fraction = 0.50 config = config_pb2.ConfigProto(gpu_options=gpu_options, graph_options=graph_options) return config
def testEval(self): if not trt_convert.is_tensorrt_enabled(): return model_dir = test.test_src_dir_path('contrib/tensorrt/test/testdata') accuracy_tf_native = self._Run( is_training=False, use_trt=False, batch_size=128, num_epochs=None, model_dir=model_dir)['accuracy'] logging.info('accuracy_tf_native: %f', accuracy_tf_native) self.assertAllClose(accuracy_tf_native, 0.9662) if trt_convert.get_linked_tensorrt_version()[0] < 5: return accuracy_tf_trt = self._Run( is_training=False, use_trt=True, batch_size=128, num_epochs=None, model_dir=model_dir)['accuracy'] logging.info('accuracy_tf_trt: %f', accuracy_tf_trt) self.assertAllClose(accuracy_tf_trt, 0.9677)
def _GetConfigProto(self, run_params, graph_state): """Get config proto based on specific settings.""" if graph_state != GraphState.ORIGINAL and run_params.use_optimizer: conversion_params = self.GetConversionParams(run_params) rewriter_cfg = trt_convert.tensorrt_rewriter_config( conversion_params.rewriter_config, conversion_params.max_batch_size, conversion_params.max_workspace_size_bytes, conversion_params.precision_mode, conversion_params.minimum_segment_size, conversion_params.is_dynamic_op, conversion_params.maximum_cached_engines, conversion_params.cached_engine_batch_sizes) graph_options = config_pb2.GraphOptions(rewrite_options=rewriter_cfg) else: graph_options = config_pb2.GraphOptions() gpu_options = config_pb2.GPUOptions() gpu_options.allow_growth = True if trt_convert.get_linked_tensorrt_version()[0] == 3: gpu_options.per_process_gpu_memory_fraction = 0.50 config = config_pb2.ConfigProto( gpu_options=gpu_options, graph_options=graph_options) return config
def _GetConfigProto(self, params, use_optimizer, precision_mode=None, is_dynamic_op=None): """Get config proto based on specific settings.""" if use_optimizer: rewriter_cfg = rewriter_config_pb2.RewriterConfig() rewriter_cfg.optimizers.extend(["constfold", "layout"]) custom_op = rewriter_cfg.custom_optimizers.add() custom_op.name = "TensorRTOptimizer" custom_op.parameter_map["minimum_segment_size"].i = 3 custom_op.parameter_map["max_batch_size"].i = max( [dims[0] for dims in params.input_dims]) custom_op.parameter_map["is_dynamic_op"].b = is_dynamic_op custom_op.parameter_map["max_workspace_size_bytes"].i = 1 << 25 custom_op.parameter_map["precision_mode"].s = self._ToBytes( precision_mode) graph_options = config_pb2.GraphOptions(rewrite_options=rewriter_cfg) else: graph_options = config_pb2.GraphOptions() gpu_options = config_pb2.GPUOptions() gpu_options.allow_growth = True if trt_convert.get_linked_tensorrt_version()[0] == 3: gpu_options.per_process_gpu_memory_fraction = 0.50 config = config_pb2.ConfigProto( gpu_options=gpu_options, graph_options=graph_options) return config
def _GetConfigProto(self, run_params, graph_state): """Get config proto based on specific settings.""" if graph_state != GraphState.ORIGINAL and run_params.use_optimizer: rewriter_cfg = rewriter_config_pb2.RewriterConfig() rewriter_cfg.optimizers.extend(["constfold", "layout"]) custom_op = rewriter_cfg.custom_optimizers.add() custom_op.name = "TensorRTOptimizer" trt_params = self.GetConversionParams(run_params) custom_op.parameter_map["max_batch_size"].i = trt_params.max_batch_size custom_op.parameter_map["max_workspace_size_bytes"].i = ( trt_params.max_workspace_size_bytes) custom_op.parameter_map["precision_mode"].s = trt_params.precision_mode custom_op.parameter_map["minimum_segment_size"].i = ( trt_params.minimum_segment_size) custom_op.parameter_map["is_dynamic_op"].b = trt_params.is_dynamic_op custom_op.parameter_map["maximum_cached_engines"].i = ( trt_params.maximum_cached_engines) if trt_params.cached_engine_batches: custom_op.parameter_map["cached_engine_batches"].list.i.extend( trt_params.cached_engine_batches) graph_options = config_pb2.GraphOptions(rewrite_options=rewriter_cfg) else: graph_options = config_pb2.GraphOptions() gpu_options = config_pb2.GPUOptions() gpu_options.allow_growth = True if trt_convert.get_linked_tensorrt_version()[0] == 3: gpu_options.per_process_gpu_memory_fraction = 0.50 config = config_pb2.ConfigProto( gpu_options=gpu_options, graph_options=graph_options) return config
def testEval(self): if not trt_convert.is_tensorrt_enabled(): return model_dir = test.test_src_dir_path('contrib/tensorrt/test/testdata') accuracy_tf_native = self._Run( is_training=False, use_trt=False, batch_size=128, num_epochs=None, model_dir=model_dir)['accuracy'] logging.info('accuracy_tf_native: %f', accuracy_tf_native) self.assertAllClose(0.9662, accuracy_tf_native, rtol=1e-3, atol=1e-3) if trt_convert.get_linked_tensorrt_version()[0] < 5: return accuracy_tf_trt = self._Run( is_training=False, use_trt=True, batch_size=128, num_epochs=None, model_dir=model_dir)['accuracy'] logging.info('accuracy_tf_trt: %f', accuracy_tf_trt) self.assertAllClose(0.9675, accuracy_tf_trt, rtol=1e-3, atol=1e-3)
def _GetConfigProto(self, run_params, graph_state): """Get config proto based on specific settings.""" if graph_state != GraphState.ORIGINAL and run_params.use_optimizer: rewriter_cfg = rewriter_config_pb2.RewriterConfig() rewriter_cfg.optimizers.extend(["constfold", "layout"]) custom_op = rewriter_cfg.custom_optimizers.add() custom_op.name = "TensorRTOptimizer" trt_params = self.GetConversionParams(run_params) custom_op.parameter_map[ "max_batch_size"].i = trt_params.max_batch_size custom_op.parameter_map["max_workspace_size_bytes"].i = ( trt_params.max_workspace_size_bytes) custom_op.parameter_map[ "precision_mode"].s = trt_params.precision_mode custom_op.parameter_map["minimum_segment_size"].i = ( trt_params.minimum_segment_size) custom_op.parameter_map[ "is_dynamic_op"].b = trt_params.is_dynamic_op custom_op.parameter_map["maximum_cached_engines"].i = ( trt_params.maximum_cached_engines) if trt_params.cached_engine_batches: custom_op.parameter_map["cached_engine_batches"].list.i.extend( trt_params.cached_engine_batches) graph_options = config_pb2.GraphOptions( rewrite_options=rewriter_cfg) else: graph_options = config_pb2.GraphOptions() gpu_options = config_pb2.GPUOptions() gpu_options.allow_growth = True if trt_convert.get_linked_tensorrt_version()[0] == 3: gpu_options.per_process_gpu_memory_fraction = 0.50 config = config_pb2.ConfigProto(gpu_options=gpu_options, graph_options=graph_options) return config
def ShouldRunTest(self, run_params): if trt_convert.get_linked_tensorrt_version()[0] < 5: return False # Test static/dynamic engine with/without calibration. return (trt_test.IsQuantizationMode(run_params.precision_mode) and not run_params.use_optimizer)