Ak chcete nakonfigurovať pridelenie pamäte Jax, je možné použiť niekoľko premenných prostredia:
1. `XLA_PYTHON_CLIENT_PREALLOCATE`: Táto premenná ovláda, či Jax predbežuje pamäť GPU. Nastavenie na „false` deaktivuje preallokáciu, čo spôsobí, že Jax podľa potreby pridelí pamäť. To však môže viesť k fragmentácii pamäte a nemusí fungovať vždy, ako sa očakávalo v niektorých verziách Jax [1] [3] [5].
2. `XLA_PYTHON_CLIENT_MEM_FRACTION`: Táto premenná určuje percento celkovej pamäte GPU, ktorú by mal JAX predbehnúť. Napríklad jeho nastavenie na `.10` bude predvídať 10% pamäte GPU. To môže pomôcť vyhnúť sa chybám mimo pamäte, ale môže viesť k varovaniam OOM, ak sa nebude riadne riadiť [1] [3] [5].
3. `XLA_PYTHON_CLIENT_ALLOCATOR = Platform`: Toto nastavenie robí JAX presne prideľuje to, čo je potrebné na požiadanie, a uviesť pamäť, ktorá už nie je potrebná. Aj keď sa neodporúča na všeobecné použitie z dôvodu pomalého výkonu, môže byť užitočné na ladenie alebo minimalizáciu využitia pamäte GPU [1] [3].
Tieto premenné je možné nastaviť pred spustením vašej aplikácie Jax, aby ste prispôsobili správanie prideľovania pamäte. Niektorí používatelia však hlásili nekonzistentné správanie s týmito nastaveniami v určitých verziách Jax [5] [9].
Citácie:[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/maaple/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-cingAcation