Para configurar la asignación de memoria de Jax, se pueden usar varias variables de entorno:
1. `Xla_python_client_preallocate`: Esta variable controla si Jax preelloca la memoria GPU. Configurarlo en `False` deshabilita la pre -sellocación, lo que hace que Jax asigne la memoria según sea necesario. Sin embargo, esto puede conducir a la fragmentación de la memoria y no siempre puede funcionar como se esperaba en algunas versiones de Jax [1] [3] [5].
2. `XLA_PYTHON_CLIENT_MEM_FRACTION`: Esta variable especifica el porcentaje de memoria total de la GPU que Jax debería preallocarse. Por ejemplo, configurarlo en `.10` preallocará el 10% de la memoria de la GPU. Esto puede ayudar a evitar errores fuera de memoria, pero puede conducir a advertencias de OOM si no se administra correctamente [1] [3] [5].
3. `Xla_python_client_allocator = Plataforma`: Esta configuración hace que Jax asigne exactamente lo que se necesita a pedido y la memoria de desasos que ya no se necesita. Si bien no se recomienda para uso general debido a su rendimiento lento, puede ser útil para depurar o minimizar el uso de la memoria de GPU [1] [3].
Estas variables se pueden configurar antes de ejecutar su aplicación JAX para personalizar su comportamiento de asignación de memoria. Sin embargo, algunos usuarios han informado un comportamiento inconsistente con estas configuraciones en ciertas versiones de Jax [5] [9].
Citas:[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-leatation