এই নির্দেশিকা 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_chain2. xla_should_add_loop_invariant_op_in_chain3. xla_tpu_enable_ici_ag_pipelining | এই 3টি পতাকা ICI(ইন্টারচিপ-ইন্টারকানেক্ট) অল-গেদার অপারেশনগুলির যৌথ পাইপলাইনিং সক্ষম করার জন্য একত্রে ব্যবহার করা উচিত, যা ওভারল্যাপিং সম্পাদনের জন্য আরও সুযোগ তৈরি করে। | 1. xla_should_allow_loop_variant_parameter_in_chain=kDisabled2. xla_should_add_loop_invariant_op_in_chain=kDisabled3. xla_tpu_enable_ici_ag_pipelining=false | 1. xla_should_allow_loop_variant_parameter_in_chain=kEnabled2. xla_should_add_loop_invariant_op_in_chain=kEnabled3. xla_tpu_enable_ici_ag_pipelining=true | 1. xla_should_allow_loop_variant_parameter_in_chain=kDisabled/kEnabled/kAuto2. xla_should_add_loop_invariant_op_in_chain=kDisabled/kEnabled/kAuto3. xla_tpu_enable_ici_ag_pipelining=true/false |
v5e/Asyncxla_enable_async_all_gatherxla_tpu_enable_async_collective_fusionxla_tpu_enable_async_collective_fusion_fuse_all_gather | এই 3টি পতাকা v5e-এ অ্যাসিঙ্ক্রোনাস অল-গেদার অপারেশন সক্রিয় করতে একযোগে ব্যবহার করা উচিত। | xla_enable_async_all_gather=kAutoxla_tpu_enable_async_collective_fusion=truexla_tpu_enable_async_collective_fusion_fuse_all_gather=true | xla_enable_async_all_gather=kAutoxla_tpu_enable_async_collective_fusion=truexla_tpu_enable_async_collective_fusion_fuse_all_gather=true | xla_enable_async_all_gather=kDisabled/kEnabled/kAutoxla_tpu_enable_async_collective_fusion=true/falsexla_tpu_enable_async_collective_fusion_fuse_all_gather=true/false |
v5e/Asyncxla_tpu_enable_async_collective_fusionxla_tpu_enable_async_collective_fusion_fuse_all_reduce | এই 2টি পতাকা v5e-এ অ্যাসিঙ্ক্রোনাস অল-রিডুস ক্রিয়াকলাপ সক্রিয় করতে একযোগে ব্যবহার করা উচিত। | xla_tpu_enable_async_collective_fusion=truexla_tpu_enable_async_collective_fusion_fuse_all_reduce=false | xla_tpu_enable_async_collective_fusion=truexla_tpu_enable_async_collective_fusion_fuse_all_reduce=true | xla_tpu_enable_async_collective_fusion=true/falsexla_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 | বুলিয়ান (সত্য/মিথ্যা) | রিডুড-স্ক্যাটার অপসকে একই মাত্রার সাথে বা তাদের মাত্রা নির্বিশেষে একত্রিত করুন। |