رمز الخطأ: E2002

الفئة: وقت التجميع: عدم تطابق البلاطات والكتل في الإدخال/الإخراج في Mosaic

يحدث هذا الخطأ عندما لا يتوافق شكل الحظر الخاص بمدخلات أو مخرجات النواة مع التقطيع التلقائي لنوع البيانات على أجهزة TPU المحدّدة المستخدَمة.

أمثلة على رسائل الخطأ:

UNIMPLEMENTED: Mosaic failed to compile TPU kernel: Failed to set window params
for input 0: Operand of shape (..., 256, 8192) has tiling (16, 128), but its
block shape (..., 8, 8192) is not divisible by tiling evenly nor matches the
full shape.

البرامج الخلفية في XLA: وحدة معالجة الموتّرات (TPU)

نظرة عامة

تحتوي نوى Tensor (TC) في وحدات معالجة الموتّرات على سجلّات متّجهات ثنائية الأبعاد. يُطلق على السمتَين اسم المسار الفرعي والمسار. بما أنّ وحدات الحوسبة في TPU (مثل تعمل وحدات MXU) بدقة سجلات المتجهات، ويتم ترتيب مصفوفات XLA في ذاكرة TPU على شكل مربعات.

هذه التجانب (مثل 8x128) تقليل عمليات تحويل البيانات عند إدخالها إلى وحدات الحوسبة تعتمد أبعاد التقسيم الدقيق (المسارات الفرعية × المسارات) على جيل الجهاز ونوع البيانات. على سبيل المثال، التقطيع الشائع لمعظم الأنواع هو 8×128.

في وقت الترجمة البرمجية، تفرض XLA القيود التالية على البُعدَين الثانوي والثاني من الثانوي لكل إدخال/إخراج للنواة:

  1. قابلية القسمة: يجب أن يكون حجم الحظر من مضاعفات حجم المربّع في الموتر الأساسي، أو
  2. استثناء الشكل الكامل: إذا لم يكن حجم الحظر قابلاً للقسمة، يجب أن يكون مساويًا للحجم الكامل لهذا الحجم في الموتر الأساسي.

يحدث هذا الخطأ عندما يخالف أحد الحظرَين الشرطَين. على سبيل المثال، يتعذّر تحميل مجموعة من الأشكال (8, 100) من إدخال للأشكال (8, 1024) على أجهزة ذات أشكال (8, 128) متجانبة لأنّ 100 لا يمكن قسمتها على 128 و100 != 1024. ولكن سيُسمح بذلك إذا كان شكل الإدخال هو (32, 100).

تصحيح الأخطاء

لحلّ هذا الخطأ، تأكَّد من أنّ أشكال الحظر في النواة تتوافق مع التجانب الحالي للأجهزة. عدِّل رمز النواة لمحاذاة حجم الحظر بحيث يكون مضاعفًا للتجانب المطلوب.

  • مثال: إذا كان الخطأ يشير إلى أنّ التجانب هو (16, 128) ولكن شكل المربّع هو (8, 128)، غيِّر مواصفات المربّع بحيث يتطابق الشكل مع (16, 128).