För närvarande finns det inget direkt sätt att inaktivera GPU -minnesförutställningen i JAX utan att använda miljövariabler. Den rekommenderade metoden involverar att ställa in miljövariabeln `xla_python_client_preallocate` till` 'falsk' 'innan du importerar Jax. Detta kan göras antingen inom ditt Python-skript med hjälp av `OS.Environ ['XLA_PYTHON_CLIENT_PREALLOCER'] = 'FALSE' 'eller genom att ställa in det externt innan du kör ditt skript med` exportera XLA_PYTHON_CLIENT_PREALLOCER = FALSE` (On Unix-Like Systems) eller `set XLA_PYTHON_CLIENT_PREALLOCATE = FALSE` (på Windows).
Det är emellertid avgörande att ställa in dessa miljövariabler innan du importerar JAX, eftersom det inte kommer att ha någon effekt [1] [3]. Det finns inga inbyggda JAX-funktioner eller konfigurationer som gör att du kan inaktivera PrealLocation utan att använda miljövariabler.
Om du stöter på problem med att inaktivera PrealLocation i nyare versioner av JAX, kan det bero på ett fel, och att kontrollera den senaste dokumentationen eller utgivningsanteckningarna för uppdateringar är tillrådligt [9].
Citeringar:[1] https://github.com/jax-ml/jax/discussions/21962
[2] https://learn.microsoft.com/en-us/windows/win32/msi/environment-Table
[3] https://jax.readthedocs.io/en/latest/gpu_memory_allocation.html
[4] https://docs.jax.dev/en/latest/jep/4410-omnistaging.html
[5] https://kolonist26-jax-kr.readthedocs.io/en/latest/gpu_memory_allocation.html
[6] https://developer.jboss.org/thread/215838
[7] https://crikit.science/documentation/ad_systems/
[8] https://docs.nvidia.com/deeplearning/dali/user-guide/docs/advanced_topics_performance_tuning.html
[9] https://github.com/jax-ml/jax/discussions/19014