Za konfiguriranje dodelitve pomnilnika JAX je mogoče uporabiti več spremenljivk okolja:
1. `Xla_python_client_preallocate`: ta spremenljivka nadzoruje, ali Jax prealloctes GPU pomnilnik. Nastavitev na `false` onemogoči preallokacijo, zaradi česar je Jax po potrebi dodelil spomin. Vendar to lahko privede do razdrobljenosti spomina in v nekaterih različicah JAX [1] [3] [5] ne deluje vedno, kot je bilo pričakovano.
2. `xla_python_client_mem_fraction`: ta spremenljivka določa odstotek celotnega pomnilnika GPU, ki bi ga moral Jax predhodno določiti. Na primer, nastavitev na `.10` bo predhodno prezrla 10% pomnilnika GPU -ja. To lahko pomaga preprečiti napake v pobočju, vendar lahko privede do opozoril OOM, če se ne upravlja pravilno [1] [3] [5].
3. `Xla_python_client_allocator = platforma`: Zaradi te nastavitve je Jax dodelil točno tisto, kar je potrebno na zahtevo, in pomnilnik onemogočite pomnilnik, ki ni več potreben. Čeprav ga zaradi počasne zmogljivosti ne priporočajo za splošno uporabo, je lahko uporaben za odpravljanje napak ali zmanjšanje uporabe pomnilnika GPU [1] [3].
Te spremenljivke lahko nastavite, preden zaženete aplikacijo JAX, da prilagodite njegovo dodelitev pomnilnika. Vendar so nekateri uporabniki poročali o nedoslednem vedenju s temi nastavitvami v določenih različicah JAX [5] [9].
Navedbe:[1] https://kolonist26-jax-kr.readthedocs.io/sl/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/sl/latest/gpu_memory_allocation.html
[4] https://docs.jax.dev/sl/latest/installation.html
[5] https://github.com/google/jax/isissue/19267
[6] https://www.maplesoft.com/support/help/maple/view.aspx?path=envvar
[7] https://docs.jax.dev/sl/latest/faq.html
[8] https://github.com/google/jax/isissue/1491
[9] https://github.com/google/jax/isissue/19035
[10] https://stackoverflow.com/questions/73322760/jax-gpu-memory-usage-even-with-cpu-allocation