摘要:
在深度学习模型训练中,每次迭代过程中都涉及到Tensor的创建和销毁,伴随着的是内存的频繁 `malloc`和`free`操作,可能对模型训练带来不必要的 overhead。
在主流的深度学习框架中,会借助 chunk 机制的内存池管理技术来避免这一点。通过实事先统一申请不同 chunk size 的内存,并记录到内存池中。创建一个Tensor时,若内存池中存在满足需求的可用内存,则直接分配。销毁一个Tensor时,并不马上`free`掉还给系统,而是标记为可用状态,放在内存池供下个Tensor使用。 阅读全文