Home Arrow Icon Knowledge base Arrow Icon Global Arrow Icon Czy mogę wyłączyć preallokokację w JAX bez użycia zmiennych środowiskowych


Czy mogę wyłączyć preallokokację w JAX bez użycia zmiennych środowiskowych


Obecnie nie ma bezpośredniego sposobu na wyłączenie prealokacji pamięci GPU w JAX bez użycia zmiennych środowiskowych. Zalecana metoda polega na ustawianiu zmiennej środowiska `XLA_PYTHON_CLIENT_PREALLOCOCE` to` 'FAIX' 'przed zaimportowaniem JAX. Można to zrobić albo w skrypcie Python za pomocą `OS.environ ['xla_python_client_preallocate'] = 'false'' lub ustawiając go zewnętrznie przed uruchomieniem skryptu z` Eksportuj xla_python_client_preallocate = false` (na systemach podobnych do unix) lub „ustaw hodowlanie unik) lub„ ustawić systemy unik) lub ” XLA_PYTHON_CLIENT_PREALLOCOTE = FALSE` (w systemie Windows).

Jednak kluczowe jest ustawienie tych zmiennych środowiskowych przed zaimportowaniem Jaxa, ponieważ ustawianie ich później nie będzie miało wpływu [1] [3]. Nie ma wbudowanych funkcji ani konfiguracji JAX, które pozwalają wyłączyć preallokokację bez użycia zmiennych środowiskowych.

Jeśli napotkasz problemy z wyłączeniem preallokacji w nowszych wersjach JAX, może to wynikać z błędu, a wskazane jest sprawdzenie najnowszej dokumentacji lub notatek z wydania aktualizacji [9].

Cytaty:
[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