From 382c5b16a08a73f74e88d40c8fe1268ea767d528 Mon Sep 17 00:00:00 2001 From: michaelshin Date: Mon, 16 Jan 2023 14:46:47 -0500 Subject: [PATCH] Initial changes --- protocol/innpv.proto | 3 + skyline/analysis/request_manager.py | 3 +- skyline/commands/interactive.py | 7 -- skyline/commands/measurements.py | 3 +- skyline/commands/memory.py | 3 +- skyline/commands/prediction_models.py | 3 +- skyline/commands/time.py | 3 +- skyline/config/__init__.py | 7 -- skyline/initialization.py | 38 --------- skyline/io/connection.py | 15 +++- skyline/protocol/message_handler.py | 49 ++++++++++++ skyline/protocol/message_sender.py | 5 +- skyline/protocol_gen/innpv_pb2.py | 110 +++++++++++++++----------- 13 files changed, 141 insertions(+), 108 deletions(-) diff --git a/protocol/innpv.proto b/protocol/innpv.proto index 3819320..e439875 100644 --- a/protocol/innpv.proto +++ b/protocol/innpv.proto @@ -52,6 +52,9 @@ message InitializeRequest { // compatability. If the protocol version is unsupported by the server, it // will respond with a ProtocolError. uint32 protocol_version = 1; + + string project_root = 2; + string entry_point = 3; } message AnalysisRequest { diff --git a/skyline/analysis/request_manager.py b/skyline/analysis/request_manager.py index 34a984e..b05308a 100644 --- a/skyline/analysis/request_manager.py +++ b/skyline/analysis/request_manager.py @@ -53,8 +53,9 @@ def _handle_analysis_request(self, analysis_request, context): context.sequence_number, *(context.address), ) + connection = self._connection_manager.get_connection(context.address) analyzer = analyze_project( - Config.project_root, Config.entry_point, self._nvml) + connection.project_root, connection.entry_point, self._nvml) # Abort early if the connection has been closed if not context.state.connected: diff --git a/skyline/commands/interactive.py b/skyline/commands/interactive.py index 64c8c2f..a591100 100644 --- a/skyline/commands/interactive.py +++ b/skyline/commands/interactive.py @@ -16,11 +16,6 @@ def register_command(subparsers): "interactive", help="Start a new Skyline interactive profiling session.", ) - parser.add_argument( - "entry_point", - help="The entry point file in this project that contains the Skyline " - "provider functions.", - ) parser.add_argument( "--host", default="", @@ -93,8 +88,6 @@ def signal_handler(signal, frame): "Listening on port %d.", port, ) - logger.info("Project Root: %s", Config.project_root) - logger.info("Entry Point: %s", Config.entry_point) # Run the server until asked to terminate should_shutdown.wait() diff --git a/skyline/commands/measurements.py b/skyline/commands/measurements.py index 670ebc2..a8a6860 100644 --- a/skyline/commands/measurements.py +++ b/skyline/commands/measurements.py @@ -79,10 +79,11 @@ def actual_main(args): 'samples_per_second', 'memory_usage_bytes', ]) + project_root = os.cwd() for batch_size in args.batch_sizes: for trial in range(args.trials): session = AnalysisSession.new_from( - Config.project_root, Config.entry_point) + project_root, args.entry_point) samples_per_second, memory_usage_bytes = make_measurements( session, batch_size) writer.writerow([ diff --git a/skyline/commands/memory.py b/skyline/commands/memory.py index 6c1cb6c..c21f394 100644 --- a/skyline/commands/memory.py +++ b/skyline/commands/memory.py @@ -48,8 +48,9 @@ def actual_main(args): sys.exit(1) try: + project_root = os.cwd() session = AnalysisSession.new_from( - Config.project_root, Config.entry_point) + project_root, args.entry_point) session.generate_memory_usage_report( save_report_to=args.output, ) diff --git a/skyline/commands/prediction_models.py b/skyline/commands/prediction_models.py index e9686a4..81773c7 100644 --- a/skyline/commands/prediction_models.py +++ b/skyline/commands/prediction_models.py @@ -75,9 +75,10 @@ def actual_main(args): 'memory_usage_bytes_slope', 'memory_usage_bytes_bias', ]) + project_root = os.cwd() for batch_size in args.batch_sizes: session = AnalysisSession.new_from( - Config.project_root, Config.entry_point) + project_root, args.entry_point) memory_model, run_time_model = get_model( session, batch_size) writer.writerow([ diff --git a/skyline/commands/time.py b/skyline/commands/time.py index 1203079..1b19c7a 100644 --- a/skyline/commands/time.py +++ b/skyline/commands/time.py @@ -49,8 +49,9 @@ def actual_main(args): sys.exit(1) try: + project_root = os.cwd() session = AnalysisSession.new_from( - Config.project_root, Config.entry_point) + project_root, args.entry_point) session.generate_run_time_breakdown_report( save_report_to=args.output, ) diff --git a/skyline/config/__init__.py b/skyline/config/__init__.py index e0dfde4..b789d8a 100644 --- a/skyline/config/__init__.py +++ b/skyline/config/__init__.py @@ -10,9 +10,6 @@ def __init__(self): self.warm_up = 100 self.measure_for = 10 - self.project_root = None - self.entry_point = None - def initialize_hints_config(self, hints_file): if hints_file is None: file_to_open = skyline.data.get_absolute_path('hints.yml') @@ -32,9 +29,5 @@ def parse_args(self, args): if 'measure_for' in args and args.measure_for is not None: self.measure_for = args.measure_for - def set_project_paths(self, project_root, entry_point): - self.project_root = project_root - self.entry_point = entry_point - Config = _Config() diff --git a/skyline/initialization.py b/skyline/initialization.py index 8978098..fb84ec9 100644 --- a/skyline/initialization.py +++ b/skyline/initialization.py @@ -23,14 +23,7 @@ def initialize_skyline(args): """ from skyline.config import Config - project_root = os.getcwd() - entry_point = args.entry_point - if not _validate_paths(project_root, entry_point): - sys.exit(1) - Config.parse_args(args) - Config.set_project_paths(project_root, entry_point) - def _configure_logging(args): kwargs = { @@ -76,34 +69,3 @@ def _validate_gpu(): ) return False return True - - -def _validate_paths(project_root, entry_point): - if not os.path.isabs(project_root): - logger.error( - "The project root that Skyline received is not an absolute path. " - "This is an unexpected error. Please report a bug." - ) - logger.error("Current project root: %s", project_root) - return False - - if os.path.isabs(entry_point): - logger.error( - "The entry point must be specified as a relative path to the " - "current directory. Please double check that the entry point you " - "are providing is a relative path.", - ) - logger.error("Current entry point path: %s", entry_point) - return False - - full_path = os.path.join(project_root, entry_point) - if not os.path.isfile(full_path): - logger.error( - "Either the specified entry point is not a file or its path was " - "specified incorrectly. Please double check that it exists and " - "that its path is correct.", - ) - logger.error("Current absolute path to entry point: %s", full_path) - return False - - return True diff --git a/skyline/io/connection.py b/skyline/io/connection.py index 56edc76..9a46884 100644 --- a/skyline/io/connection.py +++ b/skyline/io/connection.py @@ -28,6 +28,8 @@ def __init__(self, socket, address, handler_function, closed_handler): self._handler_function = handler_function self._closed_handler = closed_handler self._sentinel = Sentinel() + self._project_root = "" + self._entry_point = "" def start(self): self._sentinel.start() @@ -91,7 +93,18 @@ def _socket_read(self): except: logger.exception("Connection unexpectedly stopping...") - + + @property + def project_root(self): + return self._project_root + + @property + def entry_point(self): + return self._entry_point + + def set_project_paths(self, project_root, entry_point): + self._project_root = project_root + self._entry_point = entry_point class ConnectionState: def __init__(self): diff --git a/skyline/protocol/message_handler.py b/skyline/protocol/message_handler.py index c571a7a..7827837 100644 --- a/skyline/protocol/message_handler.py +++ b/skyline/protocol/message_handler.py @@ -1,5 +1,6 @@ import collections import logging +import os from skyline.exceptions import AnalysisError, NoConnectionError @@ -12,6 +13,36 @@ ['address', 'state', 'sequence_number'], ) +def _validate_paths(project_root, entry_point): + if not os.path.isabs(project_root): + logger.error( + "The project root that Skyline received is not an absolute path. " + "This is an unexpected error. Please report a bug." + ) + logger.error("Current project root: %s", project_root) + return False + + if os.path.isabs(entry_point): + logger.error( + "The entry point must be specified as a relative path to the " + "current directory. Please double check that the entry point you " + "are providing is a relative path.", + ) + logger.error("Current entry point path: %s", entry_point) + return False + + full_path = os.path.join(project_root, entry_point) + if not os.path.isfile(full_path): + logger.error( + "Either the specified entry point is not a file or its path was " + "specified incorrectly. Please double check that it exists and " + "that its path is correct.", + ) + logger.error("Current absolute path to entry point: %s", full_path) + return False + + return True + class MessageHandler: def __init__( @@ -49,6 +80,23 @@ def _handle_initialize_request(self, message, context): ) return + + if not _validate_paths(message.project_root, message.entry_point): + # Change this to the error related to + self._message_sender.send_protocol_error( + pm.ProtocolError.ErrorCode.UNSUPPORTED_PROTOCOL_VERSION, + context, + ) + self._connection_manager.remove_connection(context.address) + logger.error( + 'Invalid project root or entry point.' + ) + return + logger.info("Connection addr:(%s:%d)", *context.address) + logger.info("Project Root: %s", message.project_root) + logger.info("Entry Point: %s", message.entry_point) + self._connection_manager.get_connection(context.address).set_project_paths(message.project_root, message.entry_point) + context.state.initialized = True self._message_sender.send_initialize_response(context) @@ -107,3 +155,4 @@ def handle_message(self, raw_data, address): 'Processing message from (%s:%d) resulted in an exception.', *address, ) + diff --git a/skyline/protocol/message_sender.py b/skyline/protocol/message_sender.py index 3e0193e..4db26f4 100644 --- a/skyline/protocol/message_sender.py +++ b/skyline/protocol/message_sender.py @@ -18,8 +18,9 @@ def __init__(self, connection_manager): def send_initialize_response(self, context): message = pm.InitializeResponse() - message.server_project_root = Config.project_root - message.entry_point.components.extend(Config.entry_point.split(os.sep)) + connection = self._connection_manager.get_connection(context.address) + message.server_project_root = connection.project_root + message.entry_point.components.extend(connection.entry_point.split(os.sep)) # Populate hardware info message.hardware.hostname = platform.node() diff --git a/skyline/protocol_gen/innpv_pb2.py b/skyline/protocol_gen/innpv_pb2.py index 52ef936..031d25c 100644 --- a/skyline/protocol_gen/innpv_pb2.py +++ b/skyline/protocol_gen/innpv_pb2.py @@ -19,7 +19,7 @@ syntax='proto3', serialized_options=None, create_key=_descriptor._internal_create_key, - serialized_pb=b'\n\x0binnpv.proto\x12\x0einnpv.protocol\"\xcf\x01\n\nFromClient\x12\x17\n\x0fsequence_number\x18\x01 \x01(\r\x12\x37\n\ninitialize\x18\x02 \x01(\x0b\x32!.innpv.protocol.InitializeRequestH\x00\x12\x33\n\x08\x61nalysis\x18\x03 \x01(\x0b\x32\x1f.innpv.protocol.AnalysisRequestH\x00\x12/\n\x07generic\x18\x04 \x01(\x0b\x32\x1c.innpv.protocol.GenericEventH\x00\x42\t\n\x07payload\">\n\x0cGenericEvent\x12\x12\n\nevent_type\x18\x01 \x01(\t\x12\x1a\n\x12optional_arguments\x18\x02 \x01(\t\"-\n\x11InitializeRequest\x12\x18\n\x10protocol_version\x18\x01 \x01(\r\"(\n\x0f\x41nalysisRequest\x12\x15\n\rmock_response\x18\x01 \x01(\x08\"\x9d\x03\n\nFromServer\x12\x17\n\x0fsequence_number\x18\x01 \x01(\r\x12.\n\x05\x65rror\x18\x02 \x01(\x0b\x32\x1d.innpv.protocol.ProtocolErrorH\x00\x12\x38\n\ninitialize\x18\x03 \x01(\x0b\x32\".innpv.protocol.InitializeResponseH\x00\x12\x37\n\x0e\x61nalysis_error\x18\x05 \x01(\x0b\x32\x1d.innpv.protocol.AnalysisErrorH\x00\x12\x38\n\nthroughput\x18\x06 \x01(\x0b\x32\".innpv.protocol.ThroughputResponseH\x00\x12\x36\n\tbreakdown\x18\x08 \x01(\x0b\x32!.innpv.protocol.BreakdownResponseH\x00\x12\x32\n\x07habitat\x18\t \x01(\x0b\x32\x1f.innpv.protocol.HabitatResponseH\x00\x42\t\n\x07payloadJ\x04\x08\x04\x10\x05J\x04\x08\x07\x10\x08R\x0cmemory_usageR\x08run_time\"B\n\x17HabitatDevicePrediction\x12\x13\n\x0b\x64\x65vice_name\x18\x01 \x01(\t\x12\x12\n\nruntime_ms\x18\x02 \x01(\x02\"O\n\x0fHabitatResponse\x12<\n\x0bpredictions\x18\x01 \x03(\x0b\x32\'.innpv.protocol.HabitatDevicePrediction\"\x8c\x01\n\x12InitializeResponse\x12\x1b\n\x13server_project_root\x18\x01 \x01(\t\x12)\n\x0b\x65ntry_point\x18\x02 \x01(\x0b\x32\x14.innpv.protocol.Path\x12.\n\x08hardware\x18\x03 \x01(\x0b\x32\x1c.innpv.protocol.HardwareInfo\"[\n\rAnalysisError\x12\x15\n\rerror_message\x18\x01 \x01(\t\x12\x33\n\x0c\x66ile_context\x18\x02 \x01(\x0b\x32\x1d.innpv.protocol.FileReference\"\xa1\x02\n\x12ThroughputResponse\x12\x1a\n\x12samples_per_second\x18\x01 \x01(\x02\x12(\n predicted_max_samples_per_second\x18\x02 \x01(\x02\x12\x30\n\x0brun_time_ms\x18\x03 \x01(\x0b\x32\x1b.innpv.protocol.LinearModel\x12\x35\n\x10peak_usage_bytes\x18\x04 \x01(\x0b\x32\x1b.innpv.protocol.LinearModel\x12\x39\n\x12\x62\x61tch_size_context\x18\x05 \x01(\x0b\x32\x1d.innpv.protocol.FileReference\x12!\n\x19\x63\x61n_manipulate_batch_size\x18\x06 \x01(\x08\"\xea\x01\n\x11\x42reakdownResponse\x12\x18\n\x10peak_usage_bytes\x18\x01 \x01(\x04\x12\x1d\n\x15memory_capacity_bytes\x18\x02 \x01(\x04\x12\x1d\n\x15iteration_run_time_ms\x18\x03 \x01(\x02\x12\x12\n\nbatch_size\x18\x06 \x01(\r\x12\x35\n\x0eoperation_tree\x18\x04 \x03(\x0b\x32\x1d.innpv.protocol.BreakdownNode\x12\x32\n\x0bweight_tree\x18\x05 \x03(\x0b\x32\x1d.innpv.protocol.BreakdownNode\"\xca\x01\n\rProtocolError\x12;\n\nerror_code\x18\x01 \x01(\x0e\x32\'.innpv.protocol.ProtocolError.ErrorCode\"|\n\tErrorCode\x12\x0b\n\x07UNKNOWN\x10\x00\x12 \n\x1cUNSUPPORTED_PROTOCOL_VERSION\x10\x01\x12\x1c\n\x18UNINITIALIZED_CONNECTION\x10\x02\x12\"\n\x1e\x41LREADY_INITIALIZED_CONNECTION\x10\x03\"\x1a\n\x04Path\x12\x12\n\ncomponents\x18\x01 \x03(\t\"M\n\rFileReference\x12\'\n\tfile_path\x18\x01 \x01(\x0b\x32\x14.innpv.protocol.Path\x12\x13\n\x0bline_number\x18\x02 \x01(\r\"\xce\x01\n\rBreakdownNode\x12\x0c\n\x04name\x18\x01 \x01(\t\x12\x14\n\x0cnum_children\x18\x02 \x01(\r\x12/\n\x08\x63ontexts\x18\x03 \x03(\x0b\x32\x1d.innpv.protocol.FileReference\x12\x32\n\toperation\x18\x04 \x01(\x0b\x32\x1d.innpv.protocol.OperationDataH\x00\x12,\n\x06weight\x18\x05 \x01(\x0b\x32\x1a.innpv.protocol.WeightDataH\x00\x42\x06\n\x04\x64\x61ta\"{\n\x0b\x43ontextInfo\x12.\n\x07\x63ontext\x18\x01 \x01(\x0b\x32\x1d.innpv.protocol.FileReference\x12\x13\n\x0brun_time_ms\x18\x02 \x01(\x02\x12\x12\n\nsize_bytes\x18\x03 \x01(\x04\x12\x13\n\x0binvocations\x18\x04 \x01(\r\"\x83\x01\n\rOperationData\x12\x12\n\nforward_ms\x18\x01 \x01(\x02\x12\x13\n\x0b\x62\x61\x63kward_ms\x18\x02 \x01(\x02\x12\x12\n\nsize_bytes\x18\x03 \x01(\x04\x12\x35\n\x10\x63ontext_info_map\x18\x04 \x03(\x0b\x32\x1b.innpv.protocol.ContextInfo\"9\n\nWeightData\x12\x12\n\nsize_bytes\x18\x01 \x01(\x04\x12\x17\n\x0fgrad_size_bytes\x18\x02 \x01(\x04\"*\n\x0bLinearModel\x12\r\n\x05slope\x18\x01 \x01(\x01\x12\x0c\n\x04\x62ias\x18\x02 \x01(\x01\":\n\x0cHardwareInfo\x12\x10\n\x08hostname\x18\x01 \x01(\t\x12\n\n\x02os\x18\x02 \x01(\t\x12\x0c\n\x04gpus\x18\x03 \x03(\t\"\x1b\n\x13MemoryUsageResponseJ\x04\x08\x01\x10\x65\"\x17\n\x0fRunTimeResponseJ\x04\x08\x01\x10\x65\"\x17\n\x0f\x41\x63tivationEntryJ\x04\x08\x01\x10\x65\"\x13\n\x0bWeightEntryJ\x04\x08\x01\x10\x65\"\x14\n\x0cRunTimeEntryJ\x04\x08\x01\x10\x65\x62\x06proto3' + serialized_pb=b'\n\x0binnpv.proto\x12\x0einnpv.protocol\"\xcf\x01\n\nFromClient\x12\x17\n\x0fsequence_number\x18\x01 \x01(\r\x12\x37\n\ninitialize\x18\x02 \x01(\x0b\x32!.innpv.protocol.InitializeRequestH\x00\x12\x33\n\x08\x61nalysis\x18\x03 \x01(\x0b\x32\x1f.innpv.protocol.AnalysisRequestH\x00\x12/\n\x07generic\x18\x04 \x01(\x0b\x32\x1c.innpv.protocol.GenericEventH\x00\x42\t\n\x07payload\">\n\x0cGenericEvent\x12\x12\n\nevent_type\x18\x01 \x01(\t\x12\x1a\n\x12optional_arguments\x18\x02 \x01(\t\"X\n\x11InitializeRequest\x12\x18\n\x10protocol_version\x18\x01 \x01(\r\x12\x14\n\x0cproject_root\x18\x02 \x01(\t\x12\x13\n\x0b\x65ntry_point\x18\x03 \x01(\t\"(\n\x0f\x41nalysisRequest\x12\x15\n\rmock_response\x18\x01 \x01(\x08\"\x9d\x03\n\nFromServer\x12\x17\n\x0fsequence_number\x18\x01 \x01(\r\x12.\n\x05\x65rror\x18\x02 \x01(\x0b\x32\x1d.innpv.protocol.ProtocolErrorH\x00\x12\x38\n\ninitialize\x18\x03 \x01(\x0b\x32\".innpv.protocol.InitializeResponseH\x00\x12\x37\n\x0e\x61nalysis_error\x18\x05 \x01(\x0b\x32\x1d.innpv.protocol.AnalysisErrorH\x00\x12\x38\n\nthroughput\x18\x06 \x01(\x0b\x32\".innpv.protocol.ThroughputResponseH\x00\x12\x36\n\tbreakdown\x18\x08 \x01(\x0b\x32!.innpv.protocol.BreakdownResponseH\x00\x12\x32\n\x07habitat\x18\t \x01(\x0b\x32\x1f.innpv.protocol.HabitatResponseH\x00\x42\t\n\x07payloadJ\x04\x08\x04\x10\x05J\x04\x08\x07\x10\x08R\x0cmemory_usageR\x08run_time\"B\n\x17HabitatDevicePrediction\x12\x13\n\x0b\x64\x65vice_name\x18\x01 \x01(\t\x12\x12\n\nruntime_ms\x18\x02 \x01(\x02\"O\n\x0fHabitatResponse\x12<\n\x0bpredictions\x18\x01 \x03(\x0b\x32\'.innpv.protocol.HabitatDevicePrediction\"\x8c\x01\n\x12InitializeResponse\x12\x1b\n\x13server_project_root\x18\x01 \x01(\t\x12)\n\x0b\x65ntry_point\x18\x02 \x01(\x0b\x32\x14.innpv.protocol.Path\x12.\n\x08hardware\x18\x03 \x01(\x0b\x32\x1c.innpv.protocol.HardwareInfo\"[\n\rAnalysisError\x12\x15\n\rerror_message\x18\x01 \x01(\t\x12\x33\n\x0c\x66ile_context\x18\x02 \x01(\x0b\x32\x1d.innpv.protocol.FileReference\"\xa1\x02\n\x12ThroughputResponse\x12\x1a\n\x12samples_per_second\x18\x01 \x01(\x02\x12(\n predicted_max_samples_per_second\x18\x02 \x01(\x02\x12\x30\n\x0brun_time_ms\x18\x03 \x01(\x0b\x32\x1b.innpv.protocol.LinearModel\x12\x35\n\x10peak_usage_bytes\x18\x04 \x01(\x0b\x32\x1b.innpv.protocol.LinearModel\x12\x39\n\x12\x62\x61tch_size_context\x18\x05 \x01(\x0b\x32\x1d.innpv.protocol.FileReference\x12!\n\x19\x63\x61n_manipulate_batch_size\x18\x06 \x01(\x08\"\xea\x01\n\x11\x42reakdownResponse\x12\x18\n\x10peak_usage_bytes\x18\x01 \x01(\x04\x12\x1d\n\x15memory_capacity_bytes\x18\x02 \x01(\x04\x12\x1d\n\x15iteration_run_time_ms\x18\x03 \x01(\x02\x12\x12\n\nbatch_size\x18\x06 \x01(\r\x12\x35\n\x0eoperation_tree\x18\x04 \x03(\x0b\x32\x1d.innpv.protocol.BreakdownNode\x12\x32\n\x0bweight_tree\x18\x05 \x03(\x0b\x32\x1d.innpv.protocol.BreakdownNode\"\xca\x01\n\rProtocolError\x12;\n\nerror_code\x18\x01 \x01(\x0e\x32\'.innpv.protocol.ProtocolError.ErrorCode\"|\n\tErrorCode\x12\x0b\n\x07UNKNOWN\x10\x00\x12 \n\x1cUNSUPPORTED_PROTOCOL_VERSION\x10\x01\x12\x1c\n\x18UNINITIALIZED_CONNECTION\x10\x02\x12\"\n\x1e\x41LREADY_INITIALIZED_CONNECTION\x10\x03\"\x1a\n\x04Path\x12\x12\n\ncomponents\x18\x01 \x03(\t\"M\n\rFileReference\x12\'\n\tfile_path\x18\x01 \x01(\x0b\x32\x14.innpv.protocol.Path\x12\x13\n\x0bline_number\x18\x02 \x01(\r\"\xce\x01\n\rBreakdownNode\x12\x0c\n\x04name\x18\x01 \x01(\t\x12\x14\n\x0cnum_children\x18\x02 \x01(\r\x12/\n\x08\x63ontexts\x18\x03 \x03(\x0b\x32\x1d.innpv.protocol.FileReference\x12\x32\n\toperation\x18\x04 \x01(\x0b\x32\x1d.innpv.protocol.OperationDataH\x00\x12,\n\x06weight\x18\x05 \x01(\x0b\x32\x1a.innpv.protocol.WeightDataH\x00\x42\x06\n\x04\x64\x61ta\"{\n\x0b\x43ontextInfo\x12.\n\x07\x63ontext\x18\x01 \x01(\x0b\x32\x1d.innpv.protocol.FileReference\x12\x13\n\x0brun_time_ms\x18\x02 \x01(\x02\x12\x12\n\nsize_bytes\x18\x03 \x01(\x04\x12\x13\n\x0binvocations\x18\x04 \x01(\r\"\x83\x01\n\rOperationData\x12\x12\n\nforward_ms\x18\x01 \x01(\x02\x12\x13\n\x0b\x62\x61\x63kward_ms\x18\x02 \x01(\x02\x12\x12\n\nsize_bytes\x18\x03 \x01(\x04\x12\x35\n\x10\x63ontext_info_map\x18\x04 \x03(\x0b\x32\x1b.innpv.protocol.ContextInfo\"9\n\nWeightData\x12\x12\n\nsize_bytes\x18\x01 \x01(\x04\x12\x17\n\x0fgrad_size_bytes\x18\x02 \x01(\x04\"*\n\x0bLinearModel\x12\r\n\x05slope\x18\x01 \x01(\x01\x12\x0c\n\x04\x62ias\x18\x02 \x01(\x01\":\n\x0cHardwareInfo\x12\x10\n\x08hostname\x18\x01 \x01(\t\x12\n\n\x02os\x18\x02 \x01(\t\x12\x0c\n\x04gpus\x18\x03 \x03(\t\"\x1b\n\x13MemoryUsageResponseJ\x04\x08\x01\x10\x65\"\x17\n\x0fRunTimeResponseJ\x04\x08\x01\x10\x65\"\x17\n\x0f\x41\x63tivationEntryJ\x04\x08\x01\x10\x65\"\x13\n\x0bWeightEntryJ\x04\x08\x01\x10\x65\"\x14\n\x0cRunTimeEntryJ\x04\x08\x01\x10\x65\x62\x06proto3' ) @@ -54,8 +54,8 @@ ], containing_type=None, serialized_options=None, - serialized_start=1803, - serialized_end=1927, + serialized_start=1846, + serialized_end=1970, ) _sym_db.RegisterEnumDescriptor(_PROTOCOLERROR_ERRORCODE) @@ -172,6 +172,20 @@ message_type=None, enum_type=None, containing_type=None, is_extension=False, extension_scope=None, serialized_options=None, file=DESCRIPTOR, create_key=_descriptor._internal_create_key), + _descriptor.FieldDescriptor( + name='project_root', full_name='innpv.protocol.InitializeRequest.project_root', index=1, + number=2, type=9, cpp_type=9, label=1, + has_default_value=False, default_value=b"".decode('utf-8'), + message_type=None, enum_type=None, containing_type=None, + is_extension=False, extension_scope=None, + serialized_options=None, file=DESCRIPTOR, create_key=_descriptor._internal_create_key), + _descriptor.FieldDescriptor( + name='entry_point', full_name='innpv.protocol.InitializeRequest.entry_point', index=2, + number=3, type=9, cpp_type=9, label=1, + has_default_value=False, default_value=b"".decode('utf-8'), + message_type=None, enum_type=None, containing_type=None, + is_extension=False, extension_scope=None, + serialized_options=None, file=DESCRIPTOR, create_key=_descriptor._internal_create_key), ], extensions=[ ], @@ -185,7 +199,7 @@ oneofs=[ ], serialized_start=305, - serialized_end=350, + serialized_end=393, ) @@ -216,8 +230,8 @@ extension_ranges=[], oneofs=[ ], - serialized_start=352, - serialized_end=392, + serialized_start=395, + serialized_end=435, ) @@ -295,8 +309,8 @@ create_key=_descriptor._internal_create_key, fields=[]), ], - serialized_start=395, - serialized_end=808, + serialized_start=438, + serialized_end=851, ) @@ -334,8 +348,8 @@ extension_ranges=[], oneofs=[ ], - serialized_start=810, - serialized_end=876, + serialized_start=853, + serialized_end=919, ) @@ -366,8 +380,8 @@ extension_ranges=[], oneofs=[ ], - serialized_start=878, - serialized_end=957, + serialized_start=921, + serialized_end=1000, ) @@ -412,8 +426,8 @@ extension_ranges=[], oneofs=[ ], - serialized_start=960, - serialized_end=1100, + serialized_start=1003, + serialized_end=1143, ) @@ -451,8 +465,8 @@ extension_ranges=[], oneofs=[ ], - serialized_start=1102, - serialized_end=1193, + serialized_start=1145, + serialized_end=1236, ) @@ -518,8 +532,8 @@ extension_ranges=[], oneofs=[ ], - serialized_start=1196, - serialized_end=1485, + serialized_start=1239, + serialized_end=1528, ) @@ -585,8 +599,8 @@ extension_ranges=[], oneofs=[ ], - serialized_start=1488, - serialized_end=1722, + serialized_start=1531, + serialized_end=1765, ) @@ -618,8 +632,8 @@ extension_ranges=[], oneofs=[ ], - serialized_start=1725, - serialized_end=1927, + serialized_start=1768, + serialized_end=1970, ) @@ -650,8 +664,8 @@ extension_ranges=[], oneofs=[ ], - serialized_start=1929, - serialized_end=1955, + serialized_start=1972, + serialized_end=1998, ) @@ -689,8 +703,8 @@ extension_ranges=[], oneofs=[ ], - serialized_start=1957, - serialized_end=2034, + serialized_start=2000, + serialized_end=2077, ) @@ -754,8 +768,8 @@ create_key=_descriptor._internal_create_key, fields=[]), ], - serialized_start=2037, - serialized_end=2243, + serialized_start=2080, + serialized_end=2286, ) @@ -807,8 +821,8 @@ extension_ranges=[], oneofs=[ ], - serialized_start=2245, - serialized_end=2368, + serialized_start=2288, + serialized_end=2411, ) @@ -860,8 +874,8 @@ extension_ranges=[], oneofs=[ ], - serialized_start=2371, - serialized_end=2502, + serialized_start=2414, + serialized_end=2545, ) @@ -899,8 +913,8 @@ extension_ranges=[], oneofs=[ ], - serialized_start=2504, - serialized_end=2561, + serialized_start=2547, + serialized_end=2604, ) @@ -938,8 +952,8 @@ extension_ranges=[], oneofs=[ ], - serialized_start=2563, - serialized_end=2605, + serialized_start=2606, + serialized_end=2648, ) @@ -984,8 +998,8 @@ extension_ranges=[], oneofs=[ ], - serialized_start=2607, - serialized_end=2665, + serialized_start=2650, + serialized_end=2708, ) @@ -1009,8 +1023,8 @@ extension_ranges=[], oneofs=[ ], - serialized_start=2667, - serialized_end=2694, + serialized_start=2710, + serialized_end=2737, ) @@ -1034,8 +1048,8 @@ extension_ranges=[], oneofs=[ ], - serialized_start=2696, - serialized_end=2719, + serialized_start=2739, + serialized_end=2762, ) @@ -1059,8 +1073,8 @@ extension_ranges=[], oneofs=[ ], - serialized_start=2721, - serialized_end=2744, + serialized_start=2764, + serialized_end=2787, ) @@ -1084,8 +1098,8 @@ extension_ranges=[], oneofs=[ ], - serialized_start=2746, - serialized_end=2765, + serialized_start=2789, + serialized_end=2808, ) @@ -1109,8 +1123,8 @@ extension_ranges=[], oneofs=[ ], - serialized_start=2767, - serialized_end=2787, + serialized_start=2810, + serialized_end=2830, ) _FROMCLIENT.fields_by_name['initialize'].message_type = _INITIALIZEREQUEST