开启f16后,set_network_algo_workspace_limit不起作用?

开启f16后,set_network_algo_workspace_limit不起作用。

代码设置lite::Runtime::set_network_algo_workspace_limit(network_, 0),运行后,
在 AlgoChooser::setup_algo 中 mgb_opr->m_policy.workspace_limit还时默认最大值,f32下没问题。

收到你的反馈了,我们内部先分析一下。

我进一步跟踪源码,发现启用f16后,在进行f32转f16优化(ConvertF32ToF16Pass)时,新的算子替换旧的算子后,没有被设置workspace为0,代码太复杂了,具体逻辑暂时看不出来

  • 可尝试离线先 dump 成 fp16 是否能绕过去, 离线dump 也能节省在线部署时模式初始化时间
  • 离线 dump fp16 参考 文档
    ,其中dump fp16 的关键行修改成
fun.dump("resnet18.mge", arg_names=["data"], enable_ioc16=True)