MCPcopy Create free account
hub / github.com/alibaba/MNN / onAcquire

Method onAcquire

source/backend/vulkan/buffer/backend/VulkanBackend.cpp:218–237  ·  view source on GitHub ↗

Source from the content-addressed store, hash-verified

216}
217
218Backend::MemObj* VulkanBackend::onAcquire(const Tensor* tensor, StorageType storageType) {
219 MNN_ASSERT(tensor->getType().code == halide_type_float || tensor->getType().code == halide_type_int);
220 //FUNC_PRINT_ALL(tensor, p);
221 auto alignSize = getTensorSize(tensor);
222 auto MTensor = const_cast<Tensor*>(tensor);
223 auto des = TensorUtils::getDescribeOrigin(tensor);
224 if (Backend::STATIC == storageType) {
225 auto newBuffer = mRuntime->mBufferPool->alloc(alignSize);
226 auto mem = new VulkanMemRelease(mRuntime->mBufferPool.get(), newBuffer, alignSize);
227 MTensor->buffer().device = (uint64_t)(newBuffer.first);
228 des->offset = newBuffer.second;
229 return mem;
230 }
231 bool seperate = storageType == Backend::DYNAMIC_SEPERATE;
232 auto newBuffer = mCurrentDynamicBufferPool->alloc(alignSize, seperate);
233 auto mem = new VulkanMemRelease(mCurrentDynamicBufferPool, newBuffer, alignSize);
234 MTensor->buffer().device = (uint64_t)(newBuffer.first);
235 des->offset = newBuffer.second;
236 return mem;
237}
238bool VulkanBackend::onSelectDynamicAllocator(int index, int maxIndex) {
239 if (maxIndex > 2 || index >= 2 || index < 0) {
240 return false;

Callers

nothing calls this directly

Calls 4

getTypeMethod · 0.45
allocMethod · 0.45
getMethod · 0.45
bufferMethod · 0.45

Tested by

no test coverage detected