def BuildAssignInstruction(builder): new_parallel_desc_symbol = boxing_util.TryReplaceDeviceTag( builder, var_blob_object.parallel_desc_symbol, "cpu") consumer_op_arg_parallel_attr = op_arg_util.OpArgParallelAttribute( new_parallel_desc_symbol, var_blob_object.op_arg_parallel_attr.sbp_parallel, var_blob_object.op_arg_parallel_attr.opt_mirrored_parallel, ) tmp_blob_object = boxing_util.BoxingTo(builder, value_blob_object, consumer_op_arg_parallel_attr) boxing_util.Assign(builder, var_blob_object, tmp_blob_object)
def NoBoxingCudaD2HStatelessCall( self, op_attribute, in_parallel_conf, bn_in_op2blob_object={} ): op_parallel_desc_sym = self.GetParallelDescSymbol(in_parallel_conf) blob_parallel_desc_sym = boxing_util.TryReplaceDeviceTag( self, op_parallel_desc_sym, "cpu" ) self._CheckRefInBlobObjectParallelDesc( op_attribute, blob_parallel_desc_sym, bn_in_op2blob_object=bn_in_op2blob_object, ) def GetDirectBlobObject(blob_object, op_arg_parallel_attr): return blob_object self._StatelessCall( "copy_d2h", op_attribute, op_parallel_desc_sym=op_parallel_desc_sym, blob_parallel_desc_sym=blob_parallel_desc_sym, bn_in_op2blob_object=bn_in_op2blob_object, get_delegate_blob_object=GetDirectBlobObject, )