Danh mục: Thời gian biên dịch: Khối và lát đầu vào/đầu ra của Mosaic bị lệch
Lỗi này xảy ra khi hình dạng khối của đầu vào hoặc đầu ra của nhân không phù hợp với việc phân ô mặc định của kiểu dữ liệu trên phần cứng TPU cụ thể đang được sử dụng.
Thông báo lỗi mẫu:
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 Backends: TPU
Tổng quan
Các lõi Tensor (TC) trong TPU có các thanh ghi vectơ hai chiều. Hai phương diện này được gọi là làn đường phụ và làn đường. Vì các đơn vị điện toán TPU (ví dụ: MXU) hoạt động ở mức độ chi tiết của các thanh ghi vectơ, mảng XLA được bố trí trong bộ nhớ TPU theo ô.
Việc chia ô này (ví dụ: 8x128) giảm thiểu các phép biến đổi dữ liệu khi cung cấp các đơn vị tính toán. Kích thước lát chính xác (làn phụ × làn) phụ thuộc vào thế hệ phần cứng và loại dữ liệu. Ví dụ: một kiểu lát gạch phổ biến cho hầu hết các loại là 8×128.
Tại thời điểm biên dịch, XLA thực thi các ràng buộc sau đây đối với các phương diện phụ và phương diện phụ thứ 2 của mỗi đầu vào/đầu ra của hạt nhân:
- Khả năng chia hết: Kích thước khối phải là bội số của kích thước ô trong tensor cơ bản, hoặc
- Ngoại lệ về hình dạng đầy đủ: Nếu không chia được kích thước khối, thì kích thước đó phải bằng kích thước đầy đủ của kích thước đó trong tensor cơ bản.
Lỗi này xảy ra khi một khối vi phạm cả hai điều kiện. Ví dụ: việc tải một khối hình dạng (8, 100) từ một đầu vào có hình dạng (8, 1024) trên phần cứng có hình dạng (8, 128) phân ô sẽ không thành công vì 100 không chia hết cho 128 và 100 != 1024. Tuy nhiên, điều này sẽ được cho phép nếu hình dạng đầu vào là (32, 100).
Gỡ lỗi
Để giải quyết lỗi này, hãy đảm bảo các hình dạng khối của nhân phù hợp với việc phân ô phần cứng hiện tại. Sửa đổi mã hạt nhân để điều chỉnh kích thước khối sao cho kích thước này là bội số của việc phân ô bắt buộc.
- Ví dụ: Nếu lỗi cho biết việc lát gạch là
(16, 128)nhưng hình dạng khối của bạn là(8, 128), hãy thay đổi thông số kỹ thuật của khối sao cho hình dạng khớp với(16, 128).