Home Arrow Icon Knowledge base Arrow Icon Global Arrow Icon ما هي المتغيرات البيئية المستخدمة لتكوين تخصيص ذاكرة JAX


ما هي المتغيرات البيئية المستخدمة لتكوين تخصيص ذاكرة JAX


لتكوين تخصيص ذاكرة Jax ، يمكن استخدام العديد من متغيرات البيئة:

1. يعطل وضعه على "FALSE" Preallocation ، مما تسبب في تخصيص Jax للذاكرة حسب الحاجة. ومع ذلك ، يمكن أن يؤدي ذلك إلى تجزئة الذاكرة وقد لا يعمل دائمًا كما هو متوقع في بعض إصدارات Jax [1] [3] [5].

2. `xla_python_client_mem_fraction`: يحدد هذا المتغير النسبة المئوية لذاكرة وحدة معالجة الرسومات الإجمالية التي يجب على jax preallocate. على سبيل المثال ، سيؤدي إعداده إلى ".10" إلى توضيح 10 ٪ من ذاكرة GPU. يمكن أن يساعد ذلك في تجنب الأخطاء خارج الذاكرة ولكن قد يؤدي إلى تحذيرات OOM إذا لم تتم إدارتها بشكل صحيح [1] [3] [5].

3. `xla_python_client_allocator = 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-mpu-memory-usage-even-with-cpu-location