减少内存消耗

目录

基于共享内存池的分配器

通过配置基于共享内存池的分配,可以减少多个会话之间的内存消耗。请参阅 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 预构建二进制文件。