Exemple #1
0
 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)
Exemple #2
0
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,
    )