Beispiel #1
0
 def InsertRemoveForeignCallbackInstruction(self, object_id, callback):
     unique_callback_id = python_callback.GetIdForRegisteredCallback(callback)
     instruction = instr_util.InstructionProto()
     instruction.instr_type_name = "RemoveForeignCallback"
     instruction.operand.append(_DelObjectOperand(object_id))
     instruction.operand.append(_Int64Operand(unique_callback_id))
     self.instruction_list_.instruction.append(instruction)
Beispiel #2
0
 def _StatefulCallOpKernel(
     self,
     instr_name,
     parallel_desc_sym,
     opkernel_object,
     op_node_signature_sym,
     const_operand_blob_objects,
     mut1_operand_blob_objects,
     mut2_operand_blob_objects,
 ):
     instruction = instr_util.InstructionProto()
     instruction.instr_type_name = "%s.%s" % (
         parallel_desc_sym.device_tag,
         instr_name,
     )
     instruction.parallel_desc_symbol_id = parallel_desc_sym.symbol_id
     instruction.operand.append(_MutOperand(opkernel_object.object_id))
     instruction.operand.append(_SymbolOperand(op_node_signature_sym.symbol_id))
     instruction.operand.append(_OperandSeparator())
     for ibn_sym, _ in const_operand_blob_objects:
         instruction.operand.append(_SymbolOperand(ibn_sym.symbol_id))
     for _, blob_object in const_operand_blob_objects:
         instruction.operand.append(_ConstOperand(blob_object.object_id))
     instruction.operand.append(_OperandSeparator())
     for obn_sym, _ in mut1_operand_blob_objects:
         instruction.operand.append(_SymbolOperand(obn_sym.symbol_id))
     for _, blob_object in mut1_operand_blob_objects:
         instruction.operand.append(_MutOperand(blob_object.object_id))
     instruction.operand.append(_OperandSeparator())
     for obn_sym, _ in mut2_operand_blob_objects:
         instruction.operand.append(_SymbolOperand(obn_sym.symbol_id))
     for _, blob_object in mut2_operand_blob_objects:
         instruction.operand.append(_Mut2Operand(blob_object.object_id))
     self.instruction_list_.instruction.append(instruction)
Beispiel #3
0
 def _NewSymbolId(self):
     symbol_id = self.id_generator_.NewSymbolId()
     instruction = instr_util.InstructionProto()
     instruction.instr_type_name = "NewSymbol"
     instruction.operand.append(_Int64Operand(symbol_id))
     self.instruction_list_.instruction.append(instruction)
     return symbol_id
Beispiel #4
0
 def _NewObjectId(self, parallel_desc_sym):
     object_id = self.id_generator_.NewObjectId()
     instruction = instr_util.InstructionProto()
     instruction.instr_type_name = "NewObject"
     instruction.parallel_desc_symbol_id = parallel_desc_sym.symbol_id
     instruction.operand.append(_Int64Operand(object_id))
     self.instruction_list_.instruction.append(instruction)
     return object_id
Beispiel #5
0
 def _NewScopeSymbol(self, scope_proto):
     instruction = instr_util.InstructionProto()
     instruction.instr_type_name = "InitScopeSymbol"
     instruction.operand.append(_InitSymbolOperand(scope_proto.symbol_id))
     self.instruction_list_.instruction.append(instruction)
     eager_symbol = eager_symbol_util.EagerSymbol()
     eager_symbol.symbol_id = scope_proto.symbol_id
     eager_symbol.scope_symbol.CopyFrom(scope_proto)
     self.eager_symbol_list_.eager_symbol.append(eager_symbol)
Beispiel #6
0
 def _NewParallelConfSymbol(self, symbol_id, parallel_conf):
     instruction = instr_util.InstructionProto()
     instruction.instr_type_name = "NewParallelDescSymbol"
     instruction.operand.append(_Int64Operand(symbol_id))
     self.instruction_list_.instruction.append(instruction)
     eager_symbol = eager_symbol_util.EagerSymbol()
     eager_symbol.symbol_id = symbol_id
     eager_symbol.parallel_conf_symbol.CopyFrom(parallel_conf)
     self.eager_symbol_list_.eager_symbol.append(eager_symbol)
Beispiel #7
0
 def _InitOpNodeSignatureDescSymbol(self, symbol_id, op_node_signature):
     instruction = instr_util.InstructionProto()
     instruction.instr_type_name = "InitOpNodeSignatureDescSymbol"
     instruction.operand.append(_InitSymbolOperand(symbol_id))
     self.instruction_list_.instruction.append(instruction)
     eager_symbol = eager_symbol_util.EagerSymbol()
     eager_symbol.symbol_id = symbol_id
     eager_symbol.op_node_signature_symbol.CopyFrom(op_node_signature)
     self.eager_symbol_list_.eager_symbol.append(eager_symbol)
Beispiel #8
0
 def FeedBlob(self, blob_object, feeder):
     unique_callback_id = python_callback.GetIdForRegisteredCallback(feeder)
     instruction = instr_util.InstructionProto()
     device_tag = blob_object.parallel_desc_symbol.device_tag
     instruction.instr_type_name = "%s.%s" % (device_tag, "FeedBlob")
     instruction.parallel_desc_symbol_id = blob_object.parallel_desc_symbol.symbol_id
     instruction.operand.append(_Mut2Operand(blob_object.object_id))
     instruction.operand.append(_Int64Operand(unique_callback_id))
     self.instruction_list_.instruction.append(instruction)
Beispiel #9
0
 def _BroadcastObjectReference(self, sole_mirrored_object, parallel_desc_sym):
     object_id = self.id_generator_.NewObjectId()
     instruction = instr_util.InstructionProto()
     instruction.instr_type_name = "BroadcastObjectReference"
     instruction.parallel_desc_symbol_id = parallel_desc_sym.symbol_id
     instruction.operand.append(_Int64Operand(object_id))
     instruction.operand.append(_Int64Operand(sole_mirrored_object.object_id))
     self.instruction_list_.instruction.append(instruction)
     return object_id
Beispiel #10
0
 def _InitOpConfSymbol(self, symbol_id, op_conf):
     instruction = instr_util.InstructionProto()
     instruction.instr_type_name = "InitOperatorConfSymbol"
     instruction.operand.append(_InitSymbolOperand(symbol_id))
     self.instruction_list_.instruction.append(instruction)
     eager_symbol = eager_symbol_util.EagerSymbol()
     eager_symbol.symbol_id = symbol_id
     eager_symbol.op_conf_symbol.CopyFrom(op_conf)
     self.eager_symbol_list_.eager_symbol.append(eager_symbol)
Beispiel #11
0
 def _InitStringSymbol(self, symbol_id, string):
     instruction = instr_util.InstructionProto()
     instruction.instr_type_name = "InitStringSymbol"
     instruction.operand.append(_InitSymbolOperand(symbol_id))
     self.instruction_list_.instruction.append(instruction)
     eager_symbol = eager_symbol_util.EagerSymbol()
     eager_symbol.symbol_id = symbol_id
     eager_symbol.string_symbol = string
     self.eager_symbol_list_.eager_symbol.append(eager_symbol)
Beispiel #12
0
 def _NewOpKernelObject(self, parallel_desc_symbol, job_desc_sym, op_conf_sym):
     object_id = self._NewObjectId(parallel_desc_symbol)
     instruction = instr_util.InstructionProto()
     instruction.instr_type_name = "InitOpKernelObject"
     instruction.parallel_desc_symbol_id = parallel_desc_symbol.symbol_id
     instruction.operand.append(_SymbolOperand(job_desc_sym.symbol_id))
     instruction.operand.append(_SymbolOperand(op_conf_sym.symbol_id))
     instruction.operand.append(_MutOperand(object_id))
     self.instruction_list_.instruction.append(instruction)
     return object_id
Beispiel #13
0
 def _ReplaceMirrored(self, parallel_desc_sym, lhs_objects, rhs_objects):
     instruction = instr_util.InstructionProto()
     instruction.instr_type_name = "ReplaceMirrored"
     instruction.parallel_desc_symbol_id = parallel_desc_sym.symbol_id
     for lhs_object in lhs_objects:
         instruction.operand.append(_Int64Operand(lhs_object.object_id))
     instruction.operand.append(_OperandSeparator())
     for rhs_object in rhs_objects:
         instruction.operand.append(_Int64Operand(rhs_object.object_id))
     self.instruction_list_.instruction.append(instruction)
Beispiel #14
0
 def _LazyReference(self, blob_object, interface_op_name):
     instruction = instr_util.InstructionProto()
     device_tag = blob_object.parallel_desc_symbol.device_tag
     instruction.instr_type_name = "{}.LazyReference".format(device_tag)
     instruction.parallel_desc_symbol_id = blob_object.parallel_desc_symbol.symbol_id
     instruction.operand.append(_MutOperand(blob_object.object_id))
     interface_op_name_sym = self.GetSymbol4String(
         blob_object.op_arg_blob_attr.logical_blob_name)
     instruction.operand.append(
         _SymbolOperand(interface_op_name_sym.symbol_id))
     self.instruction_list_.instruction.append(instruction)
Beispiel #15
0
 def _BuildRecvInstruction(
     self, src_parallel_desc_symbol, dst_blob_object, token_ids
 ):
     instruction = instr_util.InstructionProto()
     instruction.instr_type_name = "ReceiveBlob"
     instruction.parallel_desc_symbol_id = (
         dst_blob_object.parallel_desc_symbol.symbol_id
     )
     instruction.operand.append(_SymbolOperand(src_parallel_desc_symbol.symbol_id))
     instruction.operand.append(_Mut2Operand(dst_blob_object.object_id))
     instruction.operand.append(_OperandSeparator())
     for token_id in token_ids[0]:
         instruction.operand.append(_Uint64Operand(token_id))
     instruction.operand.append(_OperandSeparator())
     for token_id in token_ids[1]:
         instruction.operand.append(_Uint64Operand(token_id))
     self.instruction_list_.instruction.append(instruction)
Beispiel #16
0
 def _DeleteObject(self, blob_object):
     instruction = instr_util.InstructionProto()
     instruction.instr_type_name = "DeleteObject"
     instruction.operand.append(_DelObjectOperand(blob_object.object_id))
     self.instruction_list_.instruction.append(instruction)
Beispiel #17
0
 def _TryClearObject(self, obj):
     instruction = instr_util.InstructionProto()
     instruction.instr_type_name = "TryClearObject"
     instruction.parallel_desc_symbol_id = obj.parallel_desc_symbol.symbol_id
     instruction.operand.append(_MutOperand(obj.object_id))
     self.instruction_list_.instruction.append(instruction)
Beispiel #18
0
 def _CudaHostUnregisterBlob(self, blob_object):
     instruction = instr_util.InstructionProto()
     instruction.instr_type_name = "CudaHostUnregisterBlob"
     instruction.parallel_desc_symbol_id = blob_object.parallel_desc_symbol.symbol_id
     instruction.operand.append(_MutOperand(blob_object.object_id))
     self.instruction_list_.instruction.append(instruction)