JAX bellek tahsisini yapılandırmak için birkaç ortam değişkeni kullanılabilir:
1. `xla_python_client_preallocate`: Bu değişken, JAX GPU belleğini önceden hazırlayıp hazırlamadığını kontrol eder. `` Yanlış '' olarak ayarlamak, ön hazırlık devre dışı bırakır ve JAX'in gerektiğinde bellek tahsis etmesine neden olur. Bununla birlikte, bu bellek parçalanmasına yol açabilir ve JAX'ın bazı versiyonlarında her zaman beklendiği gibi çalışmayabilir [1] [3] [5].
2. `xla_python_client_mem_fraksiyon ': Bu değişken, Jax'ın önceden yerleştirilmesi gereken toplam GPU belleğinin yüzdesini belirtir. Örneğin, bunu `.10` olarak ayarlamak GPU belleğinin% 10'unu önceden yerleştirecektir. Bu, bellek dışı hataların önlenmesine yardımcı olabilir, ancak düzgün yönetilmezse OOM uyarılarına yol açabilir [1] [3] [5].
3. Yavaş performansı nedeniyle genel kullanım için önerilmese de, GPU bellek kullanımının hata ayıklanması veya en aza indirilmesi için yararlı olabilir [1] [3].
Bu değişkenler, bellek tahsisi davranışını özelleştirmek için JAX uygulamanızı çalıştırmadan önce ayarlanabilir. Bununla birlikte, bazı kullanıcılar JAX'ın belirli sürümlerinde bu ayarlarla tutarsız davranışlar bildirmişlerdir [5] [9].
Alıntılar:[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-age-peven-with-cpu-allocation