减少内存消耗
目录
基于共享 arena 的分配器
通过配置基于共享 arena 的分配,可以在多个会话之间减少内存消耗。 请参阅 C API 文档中 在会话之间共享分配器
部分。
mimalloc 分配器用法
ONNX Runtime 支持使用 mimalloc(一种快速的通用分配器)覆盖内存分配。
根据您的模型和用法,它可以实现个位数或两位数的性能提升。 GitHub README 页面描述了关于如何利用 mimalloc 进行性能调优的各种场景。
mimalloc 是 ONNX Runtime 源代码树中的一个子模块。 在 Windows 上,可以使用 --use_mimalloc
构建标志,该标志构建 mimalloc 的静态版本并将其链接到 ONNX Runtime。 这会将 ONNX Runtime 分配器和所有 new/delete 调用重定向到 mimalloc。 目前,在 Linux 上使用 mimalloc 没有任何特殊规定。 建议使用 LD_PRELOAD 机制,使用您可以单独构建/获取的 mimalloc 预构建二进制文件。