Um die JAX -Speicherzuweisung zu konfigurieren, können mehrere Umgebungsvariablen verwendet werden:
1. `xla_python_client_prealLocate Wenn Sie es auf "False" einstellen, deaktiviert es die Preallocation und veranlasst JAX, den Speicher nach Bedarf zuzuweisen. Dies kann jedoch zu Gedächtnisfragmentierung führen und funktioniert möglicherweise nicht immer wie in einigen Versionen von JAX [1] [3] [5].
2. `xla_python_client_mem_fraction`: Diese Variable gibt den Prozentsatz des gesamten GPU -Speichers an, den JAX preallokieren sollte. Wenn Sie es beispielsweise auf `.10` festlegen, werden 10% des GPU -Speichers vorhanden. Dies kann dazu beitragen, Fehler außerhalb des Memorys zu vermeiden, kann jedoch zu OOM-Warnungen führen, wenn sie nicht ordnungsgemäß verwaltet werden [1] [3] [5].
3. `xla_python_client_allocator = plattform Es wird zwar nicht für den allgemeinen Gebrauch aufgrund seiner langsamen Leistung empfohlen, kann jedoch zum Debugieren oder Minimieren der GPU -Speicherverwendung nützlich sein [1] [3].
Diese Variablen können festgelegt werden, bevor Ihre JAX -Anwendung ausgeführt wird, um das Verhalten der Speicherzuweisung anzupassen. Einige Benutzer haben jedoch in bestimmten Versionen von JAX ein inkonsistentes Verhalten bei diesen Einstellungen berichtet [5] [9].
Zitate:[1] https://kolonist26-jax-kr.readthedocs.io/en/latest/gpu_memory_allocation.html
[2] https://docs.nvidia.com/deeplearning/dali/user-guide/docs/advanced_topics_performance_tuning.html
[3] https://jax.readthedocs.io/en/latest/gpu_memory_allocation.html
[4] https://docs.jax.dev/en/latest/installation.html
[5] https://github.com/google/jax/issues/19267
[6] https://www.maplesoft.com/support/help/maple/view.aspx?path=envvar
[7] https://docs.jax.dev/en/latest/faq.html
[8] https://github.com/google/jax/issues/1491
[9] https://github.com/google/jax/issues/19035
[10] https://stackoverflow.com/questions/73322760/jax-gpu-memory-usage-even-with-cpu-location