jxt1234
jxt1234
./disk_model_script.pt 这个模型文件可以发一下?
这个模型貌似导出有问题,没看到 switch / case
1. 模型中的静态内存(与模型大小相等权重)是无法复用的,只能累加 2. 共享 runtime 是共享线程池与内存池,不是共享内存,各session所使用的内存还是需要分配的
内存池是用于分配内存的,但模型中的静态内存(卷积的权重)是不能共用的,这部分无法共用。动态部分可以共用,就是通过共享运行时方式
先看下你的模型有多大,是否量化过(量化过实际所需内存需要乘以 4)
模型发一下吧
diff --git a/source/backend/cpu/CPUBackend.cpp b/source/backend/cpu/CPUBackend.cpp index e96a2d10a..06df56dfb 100644 --- a/source/backend/cpu/CPUBackend.cpp +++ b/source/backend/cpu/CPUBackend.cpp @@ -273,6 +273,8 @@ bool CPUBackend::onSelectDynamicAllocator(int index, int maxIndex) { ErrorCode CPUBackend::onResizeEnd() { getCache()->release(); + FUNC_PRINT((float)mStaticAllocator->totalSize() / 1024.0f /...
最新代码上两个模型 getSessionInfo memory 是多少,共享 runtime 之后 getSessionInfo memory 是多少?
确实动态内存部分没有复用,还在解决中
1. mali 上面用 buffer 即可。MNN 默认配置也会在 mali gpu 上走 buffer .