def LazyRemoteBlob(lbi, **kw): job_name = c_api_util.JobBuildAndInferCtx_GetCurrentJobName() lbn = lbi.op_name + "/" + lbi.blob_name blob_type = LazyConsistentBlob if c_api_util.JobBuildAndInferCtx_IsMirroredBlob(job_name, lbn): blob_type = LazyMirroredBlob return blob_type(lbi, **kw)
def EagerLogicalBlob(lbi, **kw): job_name = c_api_util.JobBuildAndInferCtx_GetCurrentJobName() lbn = lbi.op_name + "/" + lbi.blob_name if c_api_util.JobBuildAndInferCtx_IsMirroredBlob(job_name, lbn): return EagerMirroredBlob(lbi, **kw) else: return EagerConsistentBlob(lbi, **kw)
def LazyRemoteBlob(lbi, **kw): job_name = oneflow_api.JobBuildAndInferCtx_GetCurrentJobName() lbn = lbi.op_name + "/" + lbi.blob_name blob_type = oneflow_api.LazyConsistentBlob if c_api_util.JobBuildAndInferCtx_IsMirroredBlob(job_name, lbn): blob_type = oneflow_api.LazyMirroredBlob if not isinstance(lbi, lbi_util.LogicalBlobId): cfg_lbi = lbi_util.LogicalBlobId() cfg_lbi.set_op_name(lbi.op_name) cfg_lbi.set_blob_name(lbi.blob_name) lbi = cfg_lbi job_name = "" if ("job_name" in kw) and (kw["job_name"] is not None): job_name = kw["job_name"] distribute = oneflow_api.distribute.auto() if "distribute" in kw: distribute = kw["distribute"] return blob_type(lbi, job_name, distribute)
def EagerLogicalBlob(lbi, **kw): job_name = oneflow_api.JobBuildAndInferCtx_GetCurrentJobName() lbn = lbi.op_name + "/" + lbi.blob_name if not isinstance(lbi, lbi_util.LogicalBlobId): cfg_lbi = lbi_util.LogicalBlobId() cfg_lbi.set_op_name(lbi.op_name) cfg_lbi.set_blob_name(lbi.blob_name) lbi = cfg_lbi blob_type = oneflow_api.EagerConsistentBlob if c_api_util.JobBuildAndInferCtx_IsMirroredBlob(job_name, lbn): blob_type = oneflow_api.EagerMirroredBlob job_name = "" if ("job_name" in kw) and (kw["job_name"] is not None): job_name = kw["job_name"] blob_object = None if "blob_object" in kw: blob_object = kw["blob_object"] distribute = oneflow_api.distribute.auto() if "distribute" in kw: distribute = kw["distribute"] return blob_type(lbi, blob_object, blob_register, job_name, distribute)