Lai konfigurētu Jax atmiņas sadalījumu, var izmantot vairākus vides mainīgos:
1. `XLA_PYTHON_CLIENT_PREALLOCATE`: šis mainīgais kontrolē to, vai JAX PrealLocates GPU atmiņa. Iestatot to uz “viltus”, atspējo preallocation, liekot Džeksam pēc vajadzības piešķirt atmiņu. Tomēr tas var izraisīt atmiņas sadrumstalotību un ne vienmēr var darboties, kā paredzēts dažās Jax versijās [1] [3] [5].
2. `xla_python_client_mem_fraction`: šis mainīgais norāda kopējās GPU atmiņas procentuālo daudzumu, kas JAX vajadzētu būt prealLocate. Piemēram, iestatot to uz `.10`, pirms 10% GPU atmiņas. Tas var palīdzēt izvairīties no kļūdām ārpus atmiņas, bet var izraisīt OOM brīdinājumus, ja tie netiek pareizi pārvaldīti [1] [3] [5].
3. `XLA_PYTHON_CLIENT_Allocator = platforma`: šis iestatījums liek Jax piešķir tieši to, kas vajadzīgs pēc pieprasījuma, un DealLocate atmiņa, kas vairs nav nepieciešama. Lai gan tas nav ieteicams vispārējai lietošanai tā lēnās veiktspējas dēļ, tas var būt noderīgs, lai atkļūdotu vai samazinātu GPU atmiņas izmantošanu [1] [3].
Šos mainīgos var iestatīt pirms Jax lietojumprogrammas palaišanas, lai pielāgotu tā atmiņas sadales izturēšanos. Tomēr daži lietotāji ir ziņojuši par nekonsekventu izturēšanos ar šiem iestatījumiem noteiktās Jax versijās [5] [9].
Atsauces:[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-alation