alibaba / MNN

MNN is a blazing fast, lightweight deep learning framework, battle-tested by business-critical use cases in Alibaba
http://www.mnn.zone/
8.71k stars 1.67k forks source link

mnn getsessioninfo获取的memory是申请的总内存吗? #2642

Closed xin486946 closed 9 months ago

xin486946 commented 1 year ago

mnn getsessioninfo获取的memory是申请的总内存吗? 在MNN/source/core/MNNMemoryUtils.cpp里统计malloc的总size,会比getsessioninfo获取的memory要大,这是为什么?

jxt1234 commented 1 year ago

getSessionInfo 是 MNN 统计的内存,具体统计方式见 source/core/BufferAllocator.cpp MNN 在创建网络过程中有可能会对一些算子做权重重排、常量折叠等操作,此时会申请临时内存,用完即释放,所以统计的 malloc 的 size 会比这个值大

xin486946 commented 11 months ago

getSessionInfo 是 MNN 统计的内存,具体统计方式见 source/core/BufferAllocator.cpp MNN 在创建网络过程中有可能会对一些算子做权重重排、常量折叠等操作,此时会申请临时内存,用完即释放,所以统计的 malloc 的 size 会比这个值大

createfrombuffer里会再申请块模型buffer,且这个并没有算在getsessioninfo统计内存里对吗? 若要统计所有内存,如何修改? source/core/BufferAllocator.cpp里的#define DUMP_USAGE是否是?

jxt1234 commented 11 months ago
  1. createfrombuffer 里面的没有统计
  2. 一般建议用 releaseModel 等释放掉 net buffer 等大块内存,其他的小内存目前没有方案统计
github-actions[bot] commented 9 months ago

Marking as stale. No activity in 60 days.