XLA পতাকা নির্দেশিকা

এই নির্দেশিকা XLA এর ক্ষমতাগুলি কার্যকরভাবে নেভিগেট করতে এবং ব্যবহার করতে ব্যবহারকারীদের সহায়তা করার জন্য মূল XLA পতাকার একটি কিউরেটেড নির্বাচন অফার করে। নিম্নলিখিত বিভাগগুলি বিস্তারিত পতাকাগুলি যা রানটাইম কর্মক্ষমতা এবং মেমরি ব্যবহারকে উল্লেখযোগ্যভাবে প্রভাবিত করতে পারে। একটি পতাকা সক্ষম করার পরে ক্র্যাশের মতো কোনও সমস্যা দেখা দিলে, এটি ডিফল্ট সেটিংয়ে ফিরে যাওয়ার এবং একটি গিটহাব সমস্যা তৈরি করার পরামর্শ দেওয়া হয়।

শুদ্ধতা পতাকা

পতাকা বর্ণনা ডিফল্ট মান প্রস্তাবিত মান প্রার্থীর মান
xla_mosaic_on_device_checks এই পতাকাটি মোজাইক কোডজেনের জন্য অন-ডিভাইস চেক সক্ষম করে। বর্তমানে, সমর্থিত চেকগুলি সীমানায় রয়েছে, অর্থাত্, যদি একটি সীমার বাইরের মেমরি স্পর্শ করা হয়, তাহলে সংকলন/সম্পাদনা তা ধরবে৷ xla_mosaic_on_device_checks=bounds xla_mosaic_on_device_checks=bounds xla_mosaic_on_device_checks=bounds

কর্মক্ষমতা পতাকা

নিম্নলিখিত ফ্ল্যাগগুলি রানটাইম কর্মক্ষমতা বৃদ্ধিতে সহায়ক। এই সেটিংসের সাথে পরীক্ষা করার ফলে যথেষ্ট কর্মক্ষমতা লাভ হতে পারে।

পতাকা বর্ণনা ডিফল্ট মান প্রস্তাবিত মান প্রার্থীর মান
পাইপলাইনিং
1. xla_should_allow_loop_variant_parameter_in_chain
2. xla_should_add_loop_invariant_op_in_chain
3. xla_tpu_enable_ici_ag_pipelining
এই 3টি পতাকা ICI(ইন্টারচিপ-ইন্টারকানেক্ট) অল-গেদার অপারেশনগুলির যৌথ পাইপলাইনিং সক্ষম করার জন্য একত্রে ব্যবহার করা উচিত, যা ওভারল্যাপিং সম্পাদনের জন্য আরও সুযোগ তৈরি করে। 1. xla_should_allow_loop_variant_parameter_in_chain=kDisabled
2. xla_should_add_loop_invariant_op_in_chain=kDisabled
3. xla_tpu_enable_ici_ag_pipelining=false
1. xla_should_allow_loop_variant_parameter_in_chain=kEnabled
2. xla_should_add_loop_invariant_op_in_chain=kEnabled
3. xla_tpu_enable_ici_ag_pipelining=true
1. xla_should_allow_loop_variant_parameter_in_chain=kDisabled/kEnabled/kAuto
2. xla_should_add_loop_invariant_op_in_chain=kDisabled/kEnabled/kAuto
3. xla_tpu_enable_ici_ag_pipelining=true/false
v5e/Async
xla_enable_async_all_gather
xla_tpu_enable_async_collective_fusion
xla_tpu_enable_async_collective_fusion_fuse_all_gather
এই 3টি পতাকা v5e-এ অ্যাসিঙ্ক্রোনাস অল-গেদার অপারেশন সক্রিয় করতে একযোগে ব্যবহার করা উচিত। xla_enable_async_all_gather=kAuto
xla_tpu_enable_async_collective_fusion=true
xla_tpu_enable_async_collective_fusion_fuse_all_gather=true
xla_enable_async_all_gather=kAuto
xla_tpu_enable_async_collective_fusion=true
xla_tpu_enable_async_collective_fusion_fuse_all_gather=true
xla_enable_async_all_gather=kDisabled/kEnabled/kAuto
xla_tpu_enable_async_collective_fusion=true/false
xla_tpu_enable_async_collective_fusion_fuse_all_gather=true/false
v5e/Async
xla_tpu_enable_async_collective_fusion
xla_tpu_enable_async_collective_fusion_fuse_all_reduce
এই 2টি পতাকা v5e-এ অ্যাসিঙ্ক্রোনাস অল-রিডুস ক্রিয়াকলাপ সক্রিয় করতে একযোগে ব্যবহার করা উচিত। xla_tpu_enable_async_collective_fusion=true
xla_tpu_enable_async_collective_fusion_fuse_all_reduce=false
xla_tpu_enable_async_collective_fusion=true
xla_tpu_enable_async_collective_fusion_fuse_all_reduce=true
xla_tpu_enable_async_collective_fusion=true/false
xla_tpu_enable_async_collective_fusion_fuse_all_reduce=true/false
অ্যাসিঙ্ক
xla_tpu_enable_async_all_to_all
এই পতাকাটি অ্যাসিঙ্ক্রোনাস অল-টু-অল যোগাযোগ সক্ষম করে। xla_tpu_enable_async_all_to_all=false xla_tpu_enable_async_all_to_all=true xla_tpu_enable_async_all_to_all=true/false
লেটেন্সি-বাউন্ড
xla_all_gather_latency_bound_threshold_in_bytes
এই পতাকাটি লেটেন্সি-বাউন্ড (অর্থাৎ, ছোট আকারের) অল-গেদার অপারেশনের জন্য তৈরি। এটি সক্রিয় করা নির্দিষ্ট অপ্টিমাইজেশানগুলিকে ট্রিগার করে যা বিলম্ব-বাউন্ড সমস্ত-সংগ্রহকারীদের জন্য কার্যকর করার সময় কমাতে পারে। সাধারণত এটি অনুমান কাজের চাপে ব্যবহৃত হয়। xla_all_gather_latency_bound_threshold_in_bytes=-1
(যা সক্ষম নয়)
4~16Mb(ie 4~16 * 1024 * 1024) [0, 9223372036854775807]
লেটেন্সি-বাউন্ড
xla_all_reduce_latency_bound_threshold_in_bytes
এই পতাকাটি লেটেন্সি-বাউন্ড (অর্থাৎ, ছোট আকারের) অল-গেদার অপারেশনের জন্য তৈরি। এটি সক্ষম করা নির্দিষ্ট অপ্টিমাইজেশানগুলিকে ট্রিগার করে যা বিলম্ব-বাউন্ড সমস্ত-হ্রাসগুলির জন্য কার্যকর করার সময় কমাতে পারে৷ সাধারণত এটি অনুমান কাজের চাপে ব্যবহৃত হয়। xla_all_reduce_latency_bound_threshold_in_bytes=-1
(যা সক্ষম নয়)
4~16Mb(ie 4~16 * 1024 * 1024) [0, 9223372036854775807]
লেটেন্সি-বাউন্ড
xla_collective_permute_latency_bound_threshold_in_bytes
এই পতাকাটি লেটেন্সি-বাউন্ড (অর্থাৎ, ছোট আকারের) অল-গেদার অপারেশনের জন্য তৈরি। এটি সক্রিয় করা নির্দিষ্ট অপ্টিমাইজেশানগুলিকে ট্রিগার করে যা লেটেন্সি-বাউন্ড যৌথ-পারমিউটের জন্য কার্যকর করার সময় কমাতে পারে। সাধারণত এটি অনুমান কাজের চাপে ব্যবহৃত হয়। xla_collective_permute_latency_bound_threshold_in_bytes=-1
(যা সক্ষম নয়)
4~16Mb(ie 4~16 * 1024 * 1024) [0, 9223372036854775807]
লেটেন্সি-বাউন্ড
xla_all_to_all_latency_bound_threshold_in_bytes
এই পতাকাটি লেটেন্সি-বাউন্ড (অর্থাৎ, ছোট আকারের) অল-গেদার অপারেশনের জন্য তৈরি। এটি সক্ষম করা নির্দিষ্ট অপ্টিমাইজেশানগুলিকে ট্রিগার করে যা লেটেন্সি-বাউন্ড অল-টু-অল-এর জন্য কার্যকর করার সময় কমাতে পারে। সাধারণত এটি অনুমান কাজের চাপে ব্যবহৃত হয়। xla_all_to_all_latency_bound_threshold_in_bytes=-1
(যা সক্ষম নয়)
4~16Mb(ie 4~16 * 1024 * 1024) [0, 9223372036854775807]
xla_enable_async_collective_permute সমস্ত যৌথ-পারমিউট অপারেশনগুলিকে তাদের অ্যাসিঙ্ক্রোনাস ভেরিয়েন্টে পুনর্লিখন করে। auto সেট করা হলে, XLA স্বয়ংক্রিয়ভাবে অন্যান্য কনফিগারেশন বা শর্তের উপর ভিত্তি করে অ্যাসিঙ্ক কালেকটিভ চালু করতে পারে। xla_enable_async_collective_permute=kAuto xla_enable_async_collective_permute=kAuto xla_enable_async_collective_permute=kAuto/kEnabled/kDisabled
গণনা কেন্দ্রিক
xla_tpu_enable_dot_strength_reduction
এই পতাকাটি অ-কম্পিউট নিবিড় বিন্দুগুলিকে গুণিত + হ্রাস অপারেশন হিসাবে পুনর্লিখন করে। গণনা কেন্দ্রিক
xla_tpu_enable_dot_strength_reduction=true
xla_tpu_enable_dot_strength_reduction=true xla_tpu_enable_dot_strength_reduction=true/false
গণনা কেন্দ্রিক
xla_tpu_dot_dot_fusion
এই পতাকাটি ডট-ডট ফিউশন সক্ষম করে, যা একটি প্রযোজক-ডট অপারেশনকে ভোক্তা-ডট অপারেশনের সাথে ফিউজ করে। এটি করার সময়, প্রযোজক-ডটের আউটপুট ধীর/প্রধান মেমরিতে প্রকাশ পায় না যা মেমরির পদচিহ্নকে ড্রাইভ করে। xla_tpu_dot_dot_fusion=true xla_tpu_dot_dot_fusion=true xla_tpu_dot_dot_fusion=true/false
গণনা কেন্দ্রিক
xla_jf_enable_multi_output_fusion
এই পতাকা ফিউশনকে সক্ষম করে যা একাধিক ভোক্তাকে ফিউজ করে (অর্থাৎ ফলস্বরূপ ফিউশনে একাধিক আউটপুট থাকবে) xla_jf_enable_multi_output_fusion=true xla_jf_enable_multi_output_fusion=true xla_jf_enable_multi_output_fusion=true/false
গণনা কেন্দ্রিক
xla_tpu_scoped_vmem_limit_kib
এই পতাকা কিলোবাইটে স্থানীয় ব্যবহারের জন্য প্রতি অপশনে উপলব্ধ স্ক্র্যাচপ্যাড VMEM এর পরিমাণ সেট করে। বাকি VMEM বাফার স্পেস হিসাবে ব্যবহৃত হয়। xla_tpu_scoped_vmem_limit_kib=16384 xla_tpu_scoped_vmem_limit_kib=16384 xla_tpu_scoped_vmem_limit_kib=[4096, VMEM size of the architecture - 1024]
গণনা কেন্দ্রিক
xla_tpu_async_copy_bandwidth_scaling_factor
অ্যাসিঙ্ক কপিগুলির জন্য কার্যকর ব্যান্ডউইথ স্কেল করে। প্রিফেচ সিদ্ধান্ত নেওয়ার সময় এবং VMEM-এ কোন টেনসর থাকা উচিত তা নির্ধারণ করার সময় এটি ব্যবহার করা হয়। xla_tpu_async_copy_bandwidth_scaling_factor=1 xla_tpu_async_copy_bandwidth_scaling_factor=1 xla_tpu_async_copy_bandwidth_scaling_factor=(0, 1]
গণনা কেন্দ্রিক
xla_msa_enable_cross_program_prefetch_freeing
ক্রস-প্রোগ্রাম-প্রিফেচড বাফারের জন্য অপ্টিমাইজেশান ফ্রি করা সক্ষম করে। xla_msa_enable_cross_program_prefetch_freeing=enabled xla_msa_enable_cross_program_prefetch_freeing=enabled xla_msa_enable_cross_program_prefetch_freeing=enabled/disabled
গণনা কেন্দ্রিক
xla_tpu_msa_inefficient_use_to_copy_ratio
একটি প্রদত্ত বরাদ্দ সাইটের জন্য বাইট অনুলিপি করতে বাইট ব্যবহারের অনুপাত যার নীচে আমরা সাইটটিকে অদক্ষ বলে বিবেচনা করি। VMEM বসানোর সিদ্ধান্ত নেওয়ার সময় এটি ব্যবহার করা হয়। 0-এর একটি মান সমস্ত সাইটকে দক্ষ হিসাবে বিবেচনা করবে এবং 1-এর মানটির জন্য সাইটে ব্যবহৃত বাইটের পরিমাণ কমপক্ষে async কপি বাইটের মতো হতে হবে। xla_tpu_msa_inefficient_use_to_copy_ratio=0.5 xla_tpu_msa_inefficient_use_to_copy_ratio=0.5 xla_tpu_msa_inefficient_use_to_copy_ratio=[0, 1]

স্মৃতির পতাকা

নীচে তালিকাভুক্ত পতাকাগুলি HBM-সম্পর্কিত সমস্যাগুলির সমাধানের জন্য প্রদান করা হয়েছে৷ মডেল সংকলনের সময় আপনি যদি HBM "মেমরির বাইরে" ত্রুটির সম্মুখীন হন তবেই এগুলি সামঞ্জস্য করা উচিত। অন্যান্য সমস্ত পরিস্থিতিতে, ডিফল্ট মানগুলি সুপারিশ করা হয়, কারণ সেগুলিকে পরিবর্তন করা কর্মক্ষমতাকে বিরূপভাবে প্রভাবিত করতে পারে।

পতাকা বর্ণনা ডিফল্ট মান প্রস্তাবিত মান প্রার্থীর মান
সময়সূচী
xla_latency_hiding_scheduler_rerun
এই সেটিংটি লেটেন্সি-লুকানোর সময়সূচীর আচরণকে সামঞ্জস্য করে। এটি প্রক্রিয়াটির প্রতিটি "পুনরায়" এর সাথে সময়সূচীর জন্য বরাদ্দকৃত মেমরি সীমা ক্রমবর্ধমানভাবে হ্রাস করে কাজ করে। xla_latency_hiding_scheduler_rerun=1 xla_latency_hiding_scheduler_rerun=5 0~10(it doesn't make much sense beyond 10 reruns)
ফিউশন
xla_tpu_rwb_fusion
এই পতাকাটি কমাতে+সম্প্রচারের প্রকারের ফিউশন সক্ষম করে এবং মেমরির ব্যবহার কমাতে পারে। xla_tpu_rwb_fusion=true xla_tpu_rwb_fusion=false xla_tpu_rwb_fusion=true/false
সময়সূচী
xla_memory_scheduler
এই পতাকাটি নির্দিষ্ট করে যে অ্যালগরিদম মেমরির সময়সূচী মেমরি খরচ কমাতে ব্যবহার করবে। একটি আরও উন্নত অ্যালগরিদম ব্যবহার করে দীর্ঘ সংকলন সময়ের খরচে একটি কম মেমরি-গ্রাহী সময়সূচী পেতে পারে। xla_memory_scheduler=kDefault xla_memory_scheduler=kBrkga xla_memory_scheduler=kDefault/kList/kDfs/kPostOrder/kBrkga
সময়সূচী
xla_tpu_enable_latency_hiding_scheduler
এই পতাকাটি লেটেন্সি-লুকানোর সময়সূচীকে সক্ষম করে, যা আমাদের সিঙ্ক্রোনাসগুলির পরিবর্তে অ্যাসিঙ্ক্রোনাস সমষ্টিগত সম্পাদন করতে দেয়। এটি নিষ্ক্রিয় করা এই অ্যাসিঙ্ক্রোনাস অপারেশনগুলি থেকে কর্মক্ষমতা লাভ হারানোর মূল্যে মেমরির ব্যবহার হ্রাস করে। xla_tpu_enable_latency_hiding_scheduler=true xla_tpu_enable_latency_hiding_scheduler=false xla_tpu_enable_latency_hiding_scheduler=true/false
এসপিএমডি
xla_jf_spmd_threshold_for_windowed_einsum_mib
এই পতাকাটি যৌথ মাটমুলকে ট্রিগার করতে বিন্দুর ন্যূনতম আকারের নিম্ন প্রান্তিকে সেট করে। এটিকে উচ্চতর মানতে সেট করলে সমষ্টিগত মাতমুল সম্পাদন করার সুযোগ হারানোর খরচে মেমরি সংরক্ষণ করা হবে। xla_jf_spmd_threshold_for_windowed_einsum_mib=-1 10Mb~1Gb (ie 10*1024*1024 ~ 1024*1024*1024) [0, 9223372036854775807]
সময়সূচী
xla_gpu_enable_analytical_sol_latency_estimator
এই পতাকাটি বিশ্লেষণাত্মক অনুমানকারীকে সক্ষম করে যা GPU-তে গণনা-যোগাযোগ ওভারল্যাপকে সর্বাধিক করে তোলে। xla_gpu_enable_analytical_sol_latency_estimator=true xla_gpu_enable_analytical_sol_latency_estimator=false true/false

অন্যান্য সাধারণভাবে ব্যবহৃত পতাকা

পতাকা টাইপ নোট
xla_dump_to স্ট্রিং (ফাইলপথ) ফোল্ডার যেখানে প্রাক-অপ্টিমাইজেশন HLO ফাইল এবং অন্যান্য শিল্পকর্ম স্থাপন করা হবে ( এক্সএলএ টুলস দেখুন)।

TPU XLA পতাকা

পতাকা টাইপ নোট
xla_tpu_enable_data_parallel_all_reduce_opt বুলিয়ান (সত্য/মিথ্যা) ডেটা সমান্তরাল শার্ডিংয়ের জন্য ব্যবহৃত DCN (ডেটা সেন্টার নেটওয়ার্কিং) সমস্ত-হ্রাসগুলির জন্য ওভারল্যাপ সুযোগগুলি বাড়ানোর জন্য অপ্টিমাইজেশন।
xla_tpu_data_parallel_opt_different_sized_ops বুলিয়ান (সত্য/মিথ্যা) একাধিক পুনরাবৃত্তি জুড়ে ডেটা সমান্তরাল অপের পাইপলাইনিং সক্ষম করে এমনকি যদি তাদের আউটপুট আকারগুলি স্ট্যাক করা ভেরিয়েবলের জায়গায় সংরক্ষণ করা যায় তার সাথে মেলে না৷ স্মৃতির চাপ বাড়াতে পারে।
xla_tpu_spmd_rng_bit_generator_unsafe বুলিয়ান (সত্য/মিথ্যা) RngBitGenerator HLO একটি বিভাজিত উপায়ে চালানো হবে কি না, যেটি অনিরাপদ যদি গণনার বিভিন্ন অংশে বিভিন্ন শার্ডিংয়ের সাথে নির্ধারক ফলাফল প্রত্যাশিত হয়।
xla_tpu_megacore_fusion_allow_ags বুলিয়ান (সত্য/মিথ্যা) কনভল্যুশন/সমস্ত-হ্রাস সহ সমস্ত-সংগ্রহকে ফিউজ করার অনুমতি দেয়।
xla_tpu_enable_ag_backward_pipelining বুলিয়ান (সত্য/মিথ্যা) স্ক্যান লুপের মাধ্যমে পাইপলাইন অল-গেদার (বর্তমানে মেগাস্কেল অল-গাদার) পিছনের দিকে।

GPU XLA পতাকা

পতাকা টাইপ নোট
xla_gpu_enable_latency_hiding_scheduler বুলিয়ান (সত্য/মিথ্যা) এই ফ্ল্যাগটি লেটেন্সি লুকানোর সময়সূচীকে দক্ষতার সাথে গণনার সাথে অ্যাসিঙ্ক্রোনাস যোগাযোগকে ওভারল্যাপ করতে সক্ষম করে। ডিফল্ট মান হল False.
xla_gpu_enable_analytical_sol_latency_estimator বুলিয়ান (সত্য/মিথ্যা) প্ল্যাটফর্ম নির্দিষ্ট সময় নির্ধারণের সিদ্ধান্তগুলিকে সক্ষম করে, যার ফলে কম্পিউট-যোগাযোগ ওভারল্যাপ উন্নত হয়। ডিফল্ট মান সত্য।
xla_gpu_analytical_latency_estimator_options স্ট্রাকচার্ড স্ট্রিং xla_gpu_enable_analytical_sol_latency_estimator এর জন্য প্যারামিটার কনফিগার করে। nic_speed_gbps=$NIC_SPEED,nccl_op_launch_us=$LAUNCH_OVERHEAD,chunk_prep_us=$CHUNK_PREP,rtt_us=$RTT,chunk_size_bytes=$CHUNK_SIZE,gpus_per_node=$GPUS_PER_NODE সেট করে সামঞ্জস্য করুন। ডিফল্ট মান একটি সনাক্ত করা প্ল্যাটফর্মের উপর নির্ভর করে।
xla_gpu_enable_triton_gemm বুলিয়ান (সত্য/মিথ্যা) Triton-ভিত্তিক ম্যাট্রিক্স গুণ ব্যবহার করুন।
xla_gpu_enable_command_buffer CommandBufferCmdType-এর তালিকা কমান্ড বাফারে কোন ধরনের কমান্ড ক্যাপচার করা উচিত।
xla_gpu_all_reduce_combine_threshold_bytes পূর্ণসংখ্যা (বাইট) ক্রস-ডিভাইস যোগাযোগে ব্যয় করা সময় কমাতে একাধিক ছোট AllGather / ReduceScatter / AllReduce কে একটি বড় AllGather / ReduceScatter / AllReduce এ একত্রিত করতে এই ফ্ল্যাগগুলি সুর করে৷ উদাহরণস্বরূপ, ট্রান্সফরমার-ভিত্তিক কাজের চাপে AllGather / ReduceScatter থ্রেশহোল্ডের জন্য, সেগুলিকে যথেষ্ট উচ্চ টিউন করার কথা বিবেচনা করুন যাতে অন্তত একটি ট্রান্সফরমার লেয়ারের ওজন AllGather / ReduceScatter একত্রিত করা যায়। ডিফল্টরূপে, combine_threshold_bytes 256 এ সেট করা আছে।
xla_gpu_all_gather_combine_threshold_bytes পূর্ণসংখ্যা (বাইট) উপরে xla_gpu_all_reduce_combine_threshold_bytes দেখুন।
xla_gpu_reduce_scatter_combine_threshold_bytes পূর্ণসংখ্যা (বাইট) উপরে xla_gpu_all_reduce_combine_threshold_bytes দেখুন।
xla_gpu_enable_pipelined_all_gather বুলিয়ান (সত্য/মিথ্যা) সমস্ত-একত্রিত নির্দেশাবলীর পাইপলাইনিং সক্ষম করুন।
xla_gpu_enable_pipelined_reduce_scatter বুলিয়ান (সত্য/মিথ্যা) কম-স্ক্যাটার নির্দেশাবলীর পাইপলাইনিং সক্ষম করুন।
xla_gpu_enable_pipelined_all_reduce বুলিয়ান (সত্য/মিথ্যা) সমস্ত-কমানোর নির্দেশাবলীর পাইপলাইনিং সক্ষম করুন।
xla_gpu_enable_while_loop_double_buffering বুলিয়ান (সত্য/মিথ্যা) যখন লুপের জন্য ডবল-বাফারিং সক্ষম করুন।
xla_gpu_enable_all_gather_combine_by_dim বুলিয়ান (সত্য/মিথ্যা) একই গ্যাদার ডাইমেনশন বা তাদের ডাইমেনশন নির্বিশেষে অল-গেদার অপসকে একত্রিত করুন।
xla_gpu_enable_reduce_scatter_combine_by_dim বুলিয়ান (সত্য/মিথ্যা) রিডুড-স্ক্যাটার অপসকে একই মাত্রার সাথে বা তাদের মাত্রা নির্বিশেষে একত্রিত করুন।