Beispiel #1
0
 def handle(self):
     """
     Communicate with remote client.
     Reference protocol between them at PR#3821 and PR#3935
     """
     arg = self.get_message()
     if arg.startswith('TBE'):
         self.tbe_handle(arg)
     elif arg.startswith('AKG'):
         self.akg_builder.handle(self, arg, "ASCEND")
     elif arg == 'FORMAT':
         self.send_ack()
         json = self.get_message()
         self.send_res(op_select_format(json))
     elif arg == 'SUPPORT':
         self.send_ack()
         json = self.get_message()
         get_logger().debug(f"[SUPPORT] {json}")
         try:
             res = check_supported(json)
         except json.decoder.JSONDecodeError:
             self.send_ack(False)
             self.exit()
         finally:
             pass
         self.send_res(res)
     else:
         self.send_ack(False)
         self.exit()
Beispiel #2
0
 def tbe_handle(self, arg):
     """
     Handle arg start with TBE
     """
     if arg == 'TBE/PRE':
         ans = self.tbe_builder.create()
         self.send_res(ans)
     elif arg == "TBE/TUNE":
         self.send_ack()
         tune_mode = self.get_message()
         ans = self.tbe_builder.init_auto_tune_env(tune_mode)
         self.send_res(ans)
     elif arg == 'TBE/START':
         self.send_ack()
         json = self.get_message()
         res = self.tbe_builder.start(json)
         self.send_res(res)
     elif arg == 'TBE/WAIT':
         self.send_ack()
         task_id, res, pre = self.tbe_builder.wait()
         get_logger().debug(
             f"[TRACE] {str(task_id)} / {str(res)} / {str(pre)}")
         if self.get_message() != 'CONTINUE':
             self.send_ack(False)
             self.exit()
         self.send_res(task_id)
         if self.get_message() != 'CONTINUE':
             self.send_ack(False)
             self.exit()
         self.send_res(res)
         if self.get_message() != 'CONTINUE':
             self.send_ack(False)
             self.exit()
         self.send_res(pre)
     elif arg == 'TBE/RESET':
         self.tbe_builder.reset()
         self.send_ack()
     else:
         self.send_ack(False)
         self.exit()
Beispiel #3
0
 def exit(self):
     get_logger().info("[TRACE] GPU Messager Exit...")
     exit()
Beispiel #4
0
 def __init__(self, fdin, fdout):
     super().__init__(fdin, fdout)
     get_logger().info("[TRACE] GPU Messager init...")
     self.akg_builder = AkgBuilder()
Beispiel #5
0
    '''

    def __init__(self, fdin, fdout):
        super().__init__(fdin, fdout)
        get_logger().info("[TRACE] GPU Messager init...")
        self.akg_builder = AkgBuilder()

    def handle(self):
        """
        Communicate with remote client.
        Reference protocol between them at PR#4063
        """
        arg = self.get_message()
        if "AKG" in arg:
            self.akg_builder.handle(self, arg, "GPU")
        else:
            self.send_ack(False)
            self.exit()

    def exit(self):
        get_logger().info("[TRACE] GPU Messager Exit...")
        exit()

if __name__ == '__main__':
    warnings.simplefilter("ignore")
    if len(sys.argv) != 3:
        raise Exception('Incorrect argv: {}'.format(sys.argv))
    get_logger().debug(f"[TRACE] argv: {str(sys.argv)}")
    messager = GpuMessager(int(sys.argv[1]), int(sys.argv[2]))
    messager.run()
Beispiel #6
0
 def handle(self):
     """
     Communicate with remote client.
     Reference protocol between them at PR#3821 and PR#3935
     """
     arg = self.get_message()
     if arg == 'TBE/PRE':
         ans = self.tbe_builder.create()
         self.send_res(ans)
     elif arg == "TBE/TUNE":
         self.send_ack()
         tune_mode = self.get_message()
         ans = self.tbe_builder.init_auto_tune_env(tune_mode)
         self.send_res(ans)
     elif arg == 'TBE/START':
         self.send_ack()
         json = self.get_message()
         res = self.tbe_builder.start(json)
         self.send_res(res)
     elif arg == 'TBE/WAIT':
         self.send_ack()
         task_id, res, pre = self.tbe_builder.wait()
         get_logger().debug(
             f"[TRACE] {str(task_id)} / {str(res)} / {str(pre)}")
         if self.get_message() != 'CONTINUE':
             self.send_ack(False)
             self.exit()
         self.send_res(task_id)
         if self.get_message() != 'CONTINUE':
             self.send_ack(False)
             self.exit()
         self.send_res(res)
         if self.get_message() != 'CONTINUE':
             self.send_ack(False)
             self.exit()
         self.send_res(pre)
     elif arg == 'TBE/RESET':
         self.tbe_builder.reset()
         self.send_ack()
     elif arg == 'AKG/START':
         self.send_ack()
         process_num_str = self.get_message()
         self.send_ack()
         wait_time_str = self.get_message()
         self.akg_builder.create(int(process_num_str), int(wait_time_str),
                                 "ASCEND")
         self.send_ack()
     elif arg == 'AKG/DATA':
         self.send_ack()
         while True:
             req = self.get_message()
             if req.startswith('{'):
                 self.akg_builder.accept_json(req)
                 self.send_ack()
             elif req == 'AKG/WAIT':
                 res = self.akg_builder.compile()
                 self.send_res(res)
                 break
             else:
                 self.send_ack(False)
                 break
     elif arg == 'FORMAT':
         self.send_ack()
         json = self.get_message()
         self.send_res(op_select_format(json))
     elif arg == 'SUPPORT':
         self.send_ack()
         json = self.get_message()
         get_logger().debug(f"[SUPPORT] {json}")
         try:
             res = check_supported(json)
         except json.decoder.JSONDecodeError:
             self.send_ack(False)
             self.exit()
         finally:
             pass
         self.send_res(res)
     else:
         self.send_ack(False)
         self.exit()
Beispiel #7
0
 def __init__(self, fdin, fdout):
     super().__init__(fdin, fdout)
     get_logger().info("[TRACE] Ascend Messager init...")
     self.tbe_builder = TbeBuilder()
     self.akg_builder = AkgBuilder()
Beispiel #8
0
 def exit(self):
     self.tbe_builder.reset()
     self.tbe_builder.exit()
     get_logger().info("[TRACE] Ascend Messager Exit...")
     exit()
Beispiel #9
0
            self.send_res(op_select_format(json))
        elif arg == 'SUPPORT':
            self.send_ack()
            json = self.get_message()
            get_logger().debug('[SUPPORT]', json)
            try:
                res = check_supported(json)
            except json.decoder.JSONDecodeError:
                self.send_ack(False)
                self.exit()
            finally:
                pass
            self.send_res(res)
        else:
            self.send_ack(False)
            self.exit()

    def exit(self):
        self.tbe_builder.reset()
        self.tbe_builder.exit()
        get_logger().info('[TRACE]', 'Ascend Messager Exit...')
        exit()


if __name__ == '__main__':
    if len(sys.argv) != 3:
        raise Exception('Incorrect argv: {}'.format(sys.argv))
    get_logger().debug('[TRACE]', 'argv: ' + str(sys.argv))
    messager = AscendMessager(int(sys.argv[1]), int(sys.argv[2]))
    messager.run()
Beispiel #10
0
 def __init__(self, fdin, fdout):
     super().__init__(fdin, fdout)
     get_logger().info("[TRACE] GPU Messager init...")