Home Arrow Icon Knowledge base Arrow Icon Global Arrow Icon JAXメモリの割り当ての構成に使用される環境変数は何ですか


JAXメモリの割り当ての構成に使用される環境変数は何ですか


JAXメモリの割り当てを構成するには、いくつかの環境変数を使用できます。

1。 `xla_python_client_preallocate`:この変数は、jaxがGPUメモリを事前に導入するかどうかを制御します。それを「false」に設定すると、Preallocationが無効になり、Jaxが必要に応じてメモリを割り当てます。ただし、これはメモリの断片化につながる可能性があり、Jax [1] [3] [5]の一部のバージョンでは常に期待どおりに機能するとは限りません。

2。 `xla_python_client_mem_fraction`:この変数は、Jaxが事前に表現する総GPUメモリの割合を指定します。たとえば、 `.10`に設定すると、GPUメモリの10%をpreallocateします。これは、メモリ外のエラーを回避するのに役立ちますが、適切に管理されていないとOOMの警告につながる可能性があります[1] [3] [5]。

3。 `xla_python_client_alocator = platform`:この設定により、Jaxは必要なものを正確に割り当て、不要なメモリを扱います。パフォーマンスが遅いため、一般的な使用は推奨されませんが、GPUメモリの使用量をデバッグまたは最小化するのに役立ちます[1] [3]。

これらの変数は、JAXアプリケーションを実行してメモリ割り当て動作をカスタマイズする前に設定できます。ただし、一部のユーザーは、JAX [5] [9]の特定のバージョンでこれらの設定で一貫性のない動作を報告しています。

引用:
[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-allocation