MCPcopy Create free account
hub / github.com/Oneflow-Inc/oneflow / InitEagerBlobObject

Method InitEagerBlobObject

oneflow/core/framework/tensor_impl.cpp:120–142  ·  view source on GitHub ↗

Source from the content-addressed store, hash-verified

118}
119
120Maybe<void> EagerLocalTensorImpl::InitEagerBlobObject(
121 const Symbol<one::LocalTensorMeta>& local_tensor_meta,
122 const std::shared_ptr<const one::MutLocalTensorMeta>& mut_local_tensor_meta,
123 const intrusive::shared_ptr<LocalDepObject>& dep_object) {
124 CHECK_OR_RETURN(static_cast<bool>(local_tensor_meta->device())); // NOLINT
125 const auto& mem_case = local_tensor_meta->device()->mem_case();
126
127 if (tensor_storage_) {
128 auto tensor_storage = tensor_storage_->storage();
129 eager_blob_object_ = std::make_shared<vm::EagerBlobObject>(
130 mem_case, local_tensor_meta, mut_local_tensor_meta, local_tensor_meta->dtype(),
131 local_tensor_meta->memory_format(), tensor_storage, dep_object);
132 } else {
133 auto device = local_tensor_meta->device();
134 auto storage = device->rematable() ? std::make_shared<vm::RematableTensorStorage>(device)
135 : std::make_shared<vm::TensorStorage>(true, device);
136 const auto& eager_blob_object = std::make_shared<vm::EagerBlobObject>(
137 mem_case, local_tensor_meta, mut_local_tensor_meta, local_tensor_meta->dtype(),
138 local_tensor_meta->memory_format(), storage, dep_object);
139 JUST(set_eager_blob_object(eager_blob_object));
140 }
141 return Maybe<void>::Ok();
142}
143
144Maybe<bool> EagerLocalTensorImpl::is_pinned() const {
145 if (this->device() == JUST(Device::New("meta"))) { return false; }

Callers 8

MakeTensorMethod · 0.45
BasicViewFunction · 0.45
InplaceViewFunction · 0.45
NewMethod · 0.45
NaiveInterpretFunction · 0.45
operator()Method · 0.45
fromDLPackFunction · 0.45
operator()Method · 0.45

Calls 5

storageMethod · 0.80
rematableMethod · 0.80
deviceMethod · 0.45
dtypeMethod · 0.45
memory_formatMethod · 0.45

Tested by

no test coverage detected