XLA: سطح بهینه سازی GPU (-روشن).

برخی از پاس‌ها وجود دارند که اجرای آن‌ها را مفید می‌دانیم (مخصوصاً در مقیاس)، اما اندازه HLO و در نتیجه زمان کامپایل را افزایش می‌دهند. به همین دلیل به طور پیش فرض فعال نیستند. برای راحتی، ما آنها را تحت یک گزینه واحد ادغام می کنیم.

تنظیم optimization_level روی O1 یا بالاتر منجر به رفتار زیر می شود:

  • مجموعه هایی که معمولاً برای ارتباطات موازی داده استفاده می شوند، خط لوله خواهند شد. این رفتار همچنین می‌تواند با فعال کردن پرچم‌های فردی به‌طور دقیق‌تر هدایت شود.
    • xla_gpu_enable_pipelined_all_gather
    • xla_gpu_enable_pipelined_all_reduce
    • xla_gpu_enable_pipelined_reduce_scatter
  • باز کردن حلقه‌های while با ضریب دو. مانع حلقه را از بین می برد که به طور بالقوه منجر به همپوشانی ارتباط محاسباتی بهتر و کپی کمتر می شود.
    • xla_gpu_enable_while_loop_double_buffering
  • Latency Hiding Scheduler بیشترین کار را برای پنهان کردن تأخیر ارتباط انجام می دهد.
    • xla_gpu_enable_latency_hiding_scheduler
  • برای به حداکثر رساندن پهنای باند شبکه، پاس های ترکیبی، مجموعه های خط لوله را به حداکثر حافظه موجود ترکیب می کنند. اگر حلقه از قبل در ورودی HLO باز شده باشد، بهینه سازی شروع نمی شود.