Created by: qili93
Inherit from https://github.com/PaddlePaddle/Paddle-Lite/pull/3775
Differences:
- SubgraphEngine still use "block_desc", not "program_desc"
- Limit code changes in NPU only, not change to "core/program" or "core/mir".
Keeps:
- 优化了subgraph:: Engine的执行逻辑,现在更加简单清晰。
- 完善了npu的离线保存和读取模型的相关功能,可以作为其它需要此功能的硬件的参考
- 新增utils:文件读写,计算md5;优化utils:split string
Remains to do: (test_shared_memory_tensor will fail after fix) 修复hiai-tensor buffer和lite-tensor buffer共享后会导致崩溃的问题。(hiai-tensor buffer共享给lite-tensor buffer,需要注意只可以由hiai-tensor去释放,而且会随着hiai-tensor的init而自动释放)