专栏算法工具链模型在板上预测时能否实现内存共享?

模型在板上预测时能否实现内存共享?

已解决
ArthurThomas2020-11-10
138
3

遇到一个问题,就是发现输入张量大小对推理时间影响很大

当输入张量大的时候,即使模型非常小推理速度还是很慢

但是根据源码程序在推理之前已经把输入张量调加载了

所以想请教一下是不是在推理时又重新加载了一次输入。如果是,有没有方法实现内存共享

这是我相同模型不同大小输入的推理耗时,average是50次infer_watch的平均时间(ms)

算法工具链
评论1
0/1000
  • chenze
    Lv.1

    您好

    从芯片架构上来说,CPU和BPU(模型加速器)之间是共享内存的,但是CPU层面是有Cache,而BPU输入是没有Cache,会有一次Cache Flush操作。

    关于你这边提到针对不同的输入大小,是在模型转换环节将模型编译成不同输入的尺寸模型?原理上我们尺寸不一一样,计算开销肯定会不一样,在模型转换的model_output目录里面有一个静态perf信息,可以查看编译后模型的有效计算量和预期的延迟信息,可以和你这边上板数据做一个对比,来判断上述上板性能的一致性。

    2020-11-10
    0
    2
    • ArthurThomas回复chenze:

      是三个独立的模型(模型除了输入层张量大小,其他结构、参数数量等完全一样)分别进行完整的转换和板上验证操作。我先看看perf

      2020-11-10
      0
    • ArthurThomas回复chenze:

      模型的perf耗时如图所示,模型是预测视差图的,两384*768*3的输入,在内部进行concat

      按照预计耗时应该是100ms左右,但是实测400ms左右。stopwatch只考察infer

      麻烦再看一下呢?

      2020-11-11
      0