486946
486946
> 1. 模型中的静态内存(与模型大小相等权重)是无法复用的,只能累加 > 2. 共享 runtime 是共享线程池与内存池,不是共享内存,各session所使用的内存还是需要分配的 内存池不是提前优化分配好的内存吗?想串行的多个模型能够复用内存有什么办法(最好不增加耗时)?
> 先看下你的模型有多大,是否量化过(量化过实际所需内存需要乘以 4) 两个模型都是大约14M ,都是没有量化过的浮点模型,
> 模型发一下吧 请提供下邮箱?还是什么
> 最新代码上两个模型 getSessionInfo memory 是多少,共享 runtime 之后 getSessionInfo memory 是多少? 分别是77M和43M,共享runtime之后分别是77M和120M
> 确实动态内存部分没有复用,还在解决中 期待解决方案
请问是否有patch提前 发我们测试下
> 2. 没明白意思。是指生成 cache 之后,buffer 启动速度慢于image 么? 对,使用model cache时,创建model,创建session等这些初始化耗时buffer慢
> crash 日志是? D91D34 05-15 17:47:37.583 30895 30895 F DEBUG : *** *** *** *** *** *** *** *** *** *** *** *** *** *** *** *** CD91D35 05-15 17:47:37.583...
各模型初始化耗时:244.702 ms,216.000 ms, 52.000 ms,25.000 ms,对应处理耗时164.022 ms,33.000 ms,23.000 ms,21.000 ms 主要是 预留内存,内存占用是问题,另外功能会涉及多个模型,现在是做的多个模型初始化一次如init0->init1->……process0->process1->……->deint0->deinit1->……,这样内存是多个模型内存加和,处理耗时只算process部分即可; 想要优化内存有个方案是把多个模型做成即时初始化去初始化如 init0->process0->deint0->init1->process1->deinit1->……,这样内存取各模型峰值即可,但处理耗时包含初始化会增加 上百ms
另外 多个模型现在是独立的interpret和session,这几个模型是串行,是否有方法让多个模型的内存能复用,且不要增加额外很多耗时?