Hata kodu: E2002

Kategori: Derleme Süresi: Mozaik Giriş/Çıkışında Yanlış Hizalanmış Blok ve Döşeme

Bu hata, bir çekirdek girişinin veya çıkışının blok şekli, kullanılan belirli TPU donanımındaki veri türünün varsayılan döşemesiyle eşleşmediğinde meydana gelir.

Örnek Hata Mesajları:

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 Arka Uçları: TPU

Genel Bakış

TPU'lardaki tensör çekirdekleri (TC) iki boyutlu vektör kayıtlarına sahiptir. Bu iki boyut alt kanal ve kanal olarak adlandırılır. TPU işlem birimleri (ör. MXU), vektör kayıtlarının ayrıntı düzeyinde çalışır. XLA dizileri, TPU belleğinde döşemeler halinde düzenlenir.

Bu döşeme (ör. 8x128) Hesaplama birimlerine veri aktarırken veri dönüşümlerini en aza indirir. Tam döşeme boyutları (alt şeritler × şeritler), donanım nesline ve veri türüne bağlıdır. Örneğin, çoğu tür için yaygın bir döşeme 8×128'dir.

XLA, derleme sırasında her çekirdek giriş/çıkışının küçük ve ikinci küçük boyutları için aşağıdaki kısıtlamaları uygular:

  1. Bölünebilirlik: Blok boyutu, temel tensördeki döşeme boyutunun katı olmalıdır veya
  2. Tam Şekil İstisnası: Blok boyutu bölünemiyorsa temel tensördeki bu boyutun tam boyutuna eşit olmalıdır.

Bu hata, bir blok her iki koşulu da ihlal ettiğinde tetiklenir. Örneğin, (8, 100) şeklindeki bir blok, (8, 1024) şeklindeki bir girişten (8, 128) şeklindeki donanımda yüklenirken 100, 128 ve 100 != 1024 ile bölünemediği için başarısız olur. Ancak giriş şekli (32, 100) ise buna izin verilir.

Hata ayıklama

Bu hatayı düzeltmek için çekirdeğinizin blok şekillerinin mevcut donanım döşemesiyle uyumlu olduğundan emin olun. Blok boyutunu, gerekli döşeme boyutunun katı olacak şekilde ayarlamak için çekirdek kodunuzu değiştirin.

  • Örnek: Hata, döşemenin (16, 128) olduğunu belirtiyorsa ancak blok şekliniz (8, 128) ise blok spesifikasyonunu şekil (16, 128) ile eşleşecek şekilde değiştirin.