Speicherverbrauch reduzieren
Inhalt
Gemeinsamer Arena-basierter Allokator
Der Speicherverbrauch kann zwischen mehreren Sitzungen reduziert werden, indem die gemeinsame Arena-basierte Allokation konfiguriert wird. Siehe den Abschnitt Allokator(en) zwischen Sitzungen gemeinsam nutzen in der C-API-Dokumentation.
Verwendung des mimalloc-Allokators
ONNX Runtime unterstützt das Überschreiben von Speicherallokationen mithilfe von mimalloc, einem schnellen Allzweck-Allokator.
Abhängig von Ihrem Modell und Ihrer Verwendung kann dies ein- oder zweistellige Leistungssteigerungen erzielen. Die GitHub README-Seite beschreibt verschiedene Szenarien, wie mimalloc zur Leistungsoptimierung genutzt werden kann.
mimalloc ist ein Submodul im ONNX Runtime-Quellcode. Unter Windows kann das Build-Flag --use_mimalloc verwendet werden, das eine statische Version von mimalloc erstellt und mit ONNX Runtime verknüpft. Dies leitet die ONNX Runtime-Allokatoren und alle neuen/delete-Aufrufe an mimalloc um. Derzeit gibt es keine speziellen Vorkehrungen, um mimalloc unter Linux zu verwenden. Es wird empfohlen, den LD_PRELOAD-Mechanismus mit vorab kompilierten Binärdateien von mimalloc zu verwenden, die Sie separat erstellen/erhalten können.