内存管理优化的思路主要是:
- 调整分配、释放的时间点和次数,减少分配、释放内存给运行时带来的时间开销
- 优化分配过程,尽可能减少总的内存占用。例如,通过跟踪计算图,只分配 peak 所需的内存
常规的做法的话,一般跑两次:
- 第一次是 AI Compiler 进行模拟推理,在模拟的时候跟踪张量和计算图,跟踪内存的分配、释放、对齐和回收。收集总够信息后分配 peak memory
- 第二次则是直接推理阶段,当运行时申请内存时,根据 AI Compiler 收集到的信息,计算张量的实际地址.
内存管理优化的思路主要是:
常规的做法的话,一般跑两次: