لتكوين تخصيص ذاكرة 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