Home Arrow Icon Knowledge base Arrow Icon Global Arrow Icon Jakie są zmienne środowiskowe używane do konfigurowania alokacji pamięci JAX


Jakie są zmienne środowiskowe używane do konfigurowania alokacji pamięci JAX


Aby skonfigurować alokacja pamięci JAX, można użyć kilku zmiennych środowiskowych:

1. `XLA_PYTHON_CLIENT_PREALLOCATE`: Ta zmienna kontroluje, czy JAX Preallocuje pamięć GPU. Ustawienie go na „false” wyłącza preallokację, powodując, że Jax przydziela pamięć w razie potrzeby. Może to jednak prowadzić do fragmentacji pamięci i nie zawsze może działać zgodnie z oczekiwaniami w niektórych wersjach JAX [1] [3] [5].

2. `XLA_PYTHON_CLIENT_MEM_FRACTION`: Ta zmienna określa procent całkowitej pamięci GPU, którą JAX powinien prealokować. Na przykład ustawienie go na „.10” zaprzeczy 10% pamięci GPU. Może to pomóc w uniknięciu błędów poza pamięcią, ale może prowadzić do ostrzeżeń OOM, jeśli nie jest właściwie zarządzane [1] [3] [5].

3. `XLA_PYTHON_CLIENT_ALLOCATOR = Platform`: To ustawienie sprawia, że ​​JAX przydziela dokładnie to, co jest potrzebne na żądanie i pamięć, która nie jest już potrzebna. Chociaż nie jest to zalecane do ogólnego użytku ze względu na powolną wydajność, może być przydatny do debugowania lub minimalizacji użycia pamięci GPU [1] [3].

Zmienne te można ustawić przed uruchomieniem aplikacji JAX w celu dostosowania zachowania alokacji pamięci. Jednak niektórzy użytkownicy zgłosili niespójne zachowanie z tymi ustawieniami w niektórych wersjach JAX [5] [9].

Cytaty:
[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-allocation