ত্রুটি কোড: E0200

বিভাগ: রানটাইম: কোর অপ্রত্যাশিতভাবে বন্ধ হয়ে গেছে

এই ত্রুটিটি ইঙ্গিত দেয় যে একটি TPU কোর অকাল আগে নির্দেশাবলী কার্যকর করা বন্ধ করে দিয়েছে। এটি একটি মারাত্মক ত্রুটির অবস্থা যেখানে হার্ডওয়্যার একটি অপ্রত্যাশিত ত্রুটি, হার্ডওয়্যার সীমাবদ্ধতার লঙ্ঘন, অথবা কম্পাইলার-জেনারেটেড রানটাইম অ্যাসারেন্সের দ্বারা উদ্ভূত ইচ্ছাকৃত বাধার কারণে থামতে বাধ্য করে।

নমুনা ত্রুটি বার্তা:

INTERNAL: Accelerator device halted prematurely, perhaps due to an on-device check-failure. Node 0 halted unexpectedly at tag:pc TensorCoreSequencer:1:0x1d9 ...

XLA ব্যাকএন্ড: TPU

সংক্ষিপ্ত বিবরণ

XLA JAX প্রোগ্রামগুলিকে নিম্ন-স্তরের অ্যাসেম্বলি নির্দেশাবলীর একটি ক্রমানুসারে কম্পাইল করে। রানটাইমের সময়, TPU ডিভাইসটি এই নির্দেশাবলী ক্রমানুসারে কার্যকর করে। TPU হার্ডওয়্যার যখন একটি অপ্রত্যাশিত অবস্থার সম্মুখীন হয় যা পরবর্তী কার্যকরীকরণকে বাধা দেয়, তখন একটি "কোর অপ্রত্যাশিতভাবে বন্ধ" ত্রুটি ঘটে, যার ফলে কোরটি একটি মারাত্মক "স্থগিত" অবস্থায় চলে যায়।

যেহেতু এই ত্রুটিটি শারীরিক হার্ডওয়্যার ব্যর্থতা, কম্পাইলার বাগ, অথবা ব্যবহারকারীর কোড সমস্যা (বিশেষ করে কাস্টম কার্নেলগুলিতে) থেকে উদ্ভূত হতে পারে, তাই নির্দিষ্ট কারণ সনাক্ত করার জন্য আপনাকে লগ বার্তাগুলি সাবধানে বিশ্লেষণ করতে হবে।

ডিবাগিং

এই ত্রুটিটি সমাধান করার জন্য, আপনাকে প্রথমে তিনটি নির্দিষ্ট পরিস্থিতির মধ্যে কোনটি অপ্রত্যাশিতভাবে থামার কারণ হয়েছিল তা সনাক্ত করতে হবে। নিচে বর্ণিত নির্দিষ্ট টেক্সট স্বাক্ষরগুলির জন্য আপনার লগগুলি পরীক্ষা করুন।

দৃশ্যপট ১: অবকাঠামোগত ব্যর্থতা (হার্ডওয়্যার/নেটওয়ার্ক/পাওয়ার)

স্বাক্ষর: লগগুলিতে স্পষ্টভাবে উল্লেখ করা হয়েছে যে observed errors are: [Network] অথবা observed errors are: [Power] অথবা observed errors are: [Hardware]

এটি আপনার সফ্টওয়্যার বা মডেল লজিকের সাথে সম্পর্কিত নয় এমন একটি ভৌত ​​অবকাঠামোগত ব্যর্থতা নির্দেশ করে। TPU চিপ, চিপগুলিকে সংযুক্তকারী নেটওয়ার্ক ফ্যাব্রিক, অথবা পাওয়ার সাপ্লাই ব্যর্থ হয়েছে।

  • কাজটি পুনরায় চেষ্টা করুন: যদি সমস্যাটি একটি ক্ষণস্থায়ী ভোল্টেজ ডিপ বা নেটওয়ার্ক ফ্ল্যাপের হয়ে থাকে, তাহলে একটি সহজ পুনরায় চেষ্টা কাজ করতে পারে।
  • খারাপ নোডগুলি সনাক্ত করুন এবং অপসারণ করুন: যদি একই নির্দিষ্ট টাস্ক বা হোস্টে ত্রুটিটি অব্যাহত থাকে, তাহলে হার্ডওয়্যারটি সম্ভবত ত্রুটিপূর্ণ। আপনার ক্লাস্টার ম্যানেজমেন্ট টুলগুলি ব্যবহার করে প্রভাবিত নোডটিকে "ড্রেন"/"কর্ডন" করুন এবং সুস্থ নোডগুলিতে আপনার কাজ পুনরায় শুরু করুন।

দৃশ্যপট ২: হার্ডওয়্যার সীমাবদ্ধতা লঙ্ঘন

স্বাক্ষর: লগের অবস্থায় observed errors are: [User]

এটি ইঙ্গিত করে যে XLA কম্পাইলার এমন একটি নির্দেশনা তৈরি করেছে যা একটি অলঙ্ঘনীয় হার্ডওয়্যার সীমাবদ্ধতা লঙ্ঘন করেছে (যেমন, HBM বা স্ক্র্যাচপ্যাড মেমরিতে একটি বহির্মুখী মেমরি ঠিকানা অ্যাক্সেস করার চেষ্টা করা একটি নির্দেশনা)। "ব্যবহারকারী" লেবেলযুক্ত হলেও, এটি খুব কমই উচ্চ-স্তরের ব্যবহারকারী কোডের কারণে ঘটে।

  • একটি XLA বাগ ফাইল করুন: এটি সম্ভবত একটি কম্পাইলার বাগ, কম্পাইলার কখনই এমন নির্দেশাবলী প্রকাশ করবে না যা হার্ডওয়্যার স্পেসিফিকেশন লঙ্ঘন করে। অনুগ্রহ করে একটি বাগ রিপোর্ট ফাইল করুন।

দৃশ্যপট ৩: XLA কম্পাইলার-জেনারেটেড অ্যাসারশন ব্যর্থতা

স্বাক্ষর: ত্রুটি বার্তায় কম্পাইলার-জেনারেটেড অ্যাসারশনের নির্দিষ্ট বিবরণ রয়েছে যা ব্যর্থ হচ্ছে। নিম্নলিখিত কীওয়ার্ডগুলির জন্য অনুসন্ধান করুন:

  • BoundsCheck , scheckne , scheckeq , schecklt , scheckge , scheckbetween

এটি ইঙ্গিত দেয় যে কম্পাইল করা প্রোগ্রামে একটি কম্পাইলার-জেনারেটেড অ্যাসারশন কার্যকর করার সময় ব্যর্থ হয়েছে। সাব-টাইপ নির্ধারণ করতে নির্দিষ্ট ত্রুটি বার্তাটি বিশ্লেষণ করুন:

দৃশ্যপট ৩.ক: গ্রুপের মিল না থাকা চালু করুন

নমুনা ত্রুটি বার্তা:

Core halted unexpectedly: INTERNAL: Accelerator device halted prematurely, perhaps due to an on-device check-failure. Node 0 halted unexpectedly at tag:pc TensorCoreSequencer:1:0x1d9 (from TensorCoreSequencer:1:0x309): scheckne: An unexpected leader shows up in the launch group with a different launch id than the current group leader.

কারণ: এই ত্রুটিটি সাধারণত মাল্টি-হোস্ট TPU পরিবেশে ঘটে। এটি ইঙ্গিত দেয় যে TPU কোরগুলি, যা একই প্রোগ্রামটি একটি সিঙ্ক্রোনাইজড পদ্ধতিতে ("লঞ্চ গ্রুপ" এর অংশ হিসাবে) চালানোর আশা করা হয়, সিঙ্কের বাইরে চলে গেছে। বিশেষ করে, একটি TPU কোর বর্তমান গ্রুপ লিডারের চেয়ে ভিন্ন প্রোগ্রাম শনাক্তকারীর সাথে একটি সিঙ্ক্রোনাইজেশন গ্রুপে যোগদান করেছে, যা হোস্ট জুড়ে অসঙ্গত প্রোগ্রামগুলির ইঙ্গিত দেয়।

  • XLA ফ্ল্যাগ যাচাই করুন: নিশ্চিত করুন যে সমস্ত হোস্ট একই XLA_FLAGS ব্যবহার করছে।
  • ধারাবাহিক জ্যাক্স প্রোগ্রাম: সমস্ত হোস্ট একই জ্যাক্স প্রোগ্রাম চালাচ্ছে কিনা তা পরীক্ষা করুন। ডকার ইমেজ, libtpu সংস্করণ ইত্যাদি যাচাই করুন।

দৃশ্যপট ৩.খ: সীমানা পরীক্ষা ব্যর্থতা

নমুনা ত্রুটি বার্তা:

Core halted unexpectedly: INTERNAL: Accelerator device halted prematurely, perhaps due to an on-device check-failure. Node 0 halted unexpectedly at tag:pc TensorCoreSequencer:23:0x292 (from TensorCoreSequencer:23:0xd74a): BoundsCheck 92 [deref of %s931] for %937 = dma.hbm_to_vmem [thread:$0]  /*hbm=*/%s931, /*size_in_granules=*/16384, /*vmem=*/%s935, /*dst_syncflagno=*/%s860, /*src_stride=*/512, /*dst_stride=*/128, /*steps_per_stride=*/8

কারণ: প্রোগ্রামটি বরাদ্দকৃত সীমার বাইরে মেমরি অ্যাক্সেস করার চেষ্টা করেছিল। ত্রুটি বার্তায় প্রায়শই মেমরি অ্যাক্সেসের ধরণ (যেমন, dma.hbm_to_vmem) এবং ঠিকানা গণনা সম্পর্কে বিশদ অন্তর্ভুক্ত থাকে।

  • কাস্টম কার্নেল ডিবাগ করুন: যদি প্যালাস ব্যবহার করেন, তাহলে আপনার সূচক গণনা পরীক্ষা করুন। টেনসর সূচক যাচাই করতে pl.debug_print অথবা checkify ব্যবহার করুন।
  • শেডিং পরীক্ষা করুন: নিশ্চিত করুন যে শেডিং টীকাগুলি টেনসর আকারের সাথে সামঞ্জস্যপূর্ণ।

দৃশ্যপট ৩.গ: মোজাইক/প্যালাস সিঙ্ক্রোনাইজেশন

নমুনা ত্রুটি বার্তা:

Core halted unexpectedly: INTERNAL: Accelerator device halted prematurely, perhaps due to an on-device check-failure. Node 0 halted unexpectedly at tag:pc TensorCoreSequencer:21:0xae5 (from TensorCoreSequencer:21:0x54c5): Semaphore (scratch argument 1) has a nonzero value upon exit from a Mosaic kernel. Make sure every DMA is awaited, and every semaphore signal is paired with a wait.

কারণ: এই ত্রুটিটি মোজাইক কম্পাইলার (প্যালাস জ্যাক্স দ্বারা ব্যবহৃত) দ্বারা তৈরি কোডের জন্য নির্দিষ্ট। এটি একটি কাস্টম কার্নেলের মধ্যে একটি সিঙ্ক্রোনাইজেশন সমস্যা নির্দেশ করে। TPU গুলি নির্ভরতা পরিচালনা করার জন্য সেমাফোর ব্যবহার করে (যেমন, ব্যবহারের আগে একটি DMA সম্পূর্ণ হয়েছে কিনা তা নিশ্চিত করা)। এই ত্রুটিটি ইঙ্গিত দেয় যে একটি সেমাফোরে একটি সংকেত সঠিকভাবে অপেক্ষা করা হয়নি।

  • অডিট সিঙ্ক্রোনাইজেশন: নিশ্চিত করুন যে প্রতিটি dma_start একটি সংশ্লিষ্ট dma_wait আছে।
  • সেমাফোর পরীক্ষা করুন: যাচাই করুন যে সেমাফোর সিগন্যাল এবং অপেক্ষাগুলি কঠোরভাবে জোড়া হয়েছে।

অশ্রেণীবদ্ধ সমস্যা

যদি আপনার ত্রুটি লগ দৃশ্যকল্প ১, ২, অথবা ৩ এর সাথে মেলে না (অর্থাৎ, কোন "পর্যবেক্ষিত ত্রুটি" নেই, কোন "স্কেক" ট্যাগ নেই, এবং কোন নির্দিষ্ট সীমানা/সেমাফোর বার্তা নেই):

  • পদক্ষেপ: এটি সম্ভবত একটি অভ্যন্তরীণ XLA বাগ। অনুগ্রহ করে একটি বাগ রিপোর্ট ফাইল করুন।