For at konfigurere JAX -hukommelsesallokering kan der bruges flere miljøvariabler:
1. `XLA_PYTHON_CLIENT_PREALLocate`: Denne variabel kontrollerer, om JAX Preallocates GPU -hukommelse. Indstilling af det til 'falsk' deaktiverer preallocation, hvilket får JAX til at tildele hukommelse efter behov. Dette kan imidlertid føre til hukommelsesfragmentering og fungerer muligvis ikke altid som forventet i nogle versioner af JAX [1] [3] [5].
2. `xla_python_client_mem_fraction`: Denne variabel specificerer procentdelen af den samlede GPU -hukommelse, som Jax skal forhøje. For eksempel vil indstilling af det til `.10` Preallocate 10% af GPU -hukommelsen. Dette kan hjælpe med at undgå fejl uden for hukommelsen, men kan føre til OOM-advarsler, hvis de ikke styres korrekt [1] [3] [5].
3. `xla_python_client_allocator = platform`: Denne indstilling får Jax til at tildele nøjagtigt, hvad der er behov for efter behov og omlægning af hukommelse, som ikke længere er nødvendig. Selvom det ikke anbefales til generel brug på grund af dens langsomme ydelse, kan det være nyttigt til fejlsøgning eller minimering af GPU -hukommelsesbrug [1] [3].
Disse variabler kan indstilles, før du kører din JAX -applikation for at tilpasse dens hukommelsesallokeringsadfærd. Nogle brugere har imidlertid rapporteret inkonsekvent opførsel med disse indstillinger i visse versioner af JAX [5] [9].
Citater:[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-ven-with-cpu-allocation