Altifigence Academy

18 / 24 · Khái niệm

Khối, vùng bao và tổng riêng

Với Th=Tw=2,Tc=1,Tm=2,kernel 3×3,bước trượt hai,độ giãn một, tính byte bộ đệm đơn cho đầu vào/trọng số/tổng 32 bit/bias.

Chia tensor để vừa lưu trữ

Chọn chiều cao đầu ra Th,chiều rộng Tw,số kênh đầu vào Tc và số kênh đầu ra Tm cho một khối. Vùng bao đầu vào mở rộng ngoài khối đầu ra. Với bước trượt S,độ giãn D và kernel R, chiều cao đầu vào cần là (Th−1)S+(R−1)D+1; áp dụng công thức ngang cho chiều rộng. Đệm biên có thể được tạo thay vì tải.

Chia kênh đầu vào đòi hỏi giữ mỗi tổng riêng đầu ra qua tất cả khối kênh. Làm tròn sớm mỗi khối thay đổi phép toán. Thêm bias một lần trong khối kênh đầu đầu tiên, rồi tiếp tục cùng tổng. Đổi khối kênh đầu ra cũng đổi trọng số và bias.

Tính ngân sách lưu trữ

Với phép toán 3×3,bước trượt một,độ giãn một, cho Th=Tw=2,Tc=2,Tm=2. Vùng bao là 4×4, cần 32 byte đầu vào int8. Trọng số dùng 2×2×3×3=36 byte. Tám tổng riêng 32 bit dùng 32 byte, hai bias 32 bit dùng tám. Tổng:108 byte. Chưa gồm thang, địa chỉ, tính hợp lệ và lưu trữ điều khiển; cần phần cho phép riêng.

Bộ đệm kép đầu vào và trọng số cần 2×(32+36)+32+8=176 byte, vượt ngân sách 128 byte. Giảm Tc về một cho đầu vào mười sáu và trọng số mười tám byte. Lưu trữ bộ đệm kép thành 2×34+32+8=108 byte. Giữ tổng riêng qua hai khối kênh đầu vào. Vừa bộ đệm không chứng minh truyền có thể chồng lấp tính toán; kiểm tra riêng lịch.

Bước trượt hai mở vùng đầu vào cùng khối đầu ra 2×2 thành 5×5. Khối lân cận có thể chia sẻ vùng bao, nhưng tải lại độc lập vẫn lặp lưu lượng. Phân biệt byte tensor duy nhất, là giới hạn dưới, với lần truyền khối thực.

Nếu M=5 và Tm=2, khối cuối có một kênh đầu ra hợp lệ. Che truy cập trọng số và đầu ra dư. Áp dụng mặt nạ tương đương cho khối không gian và kênh đầu vào cuối. Tài liệu NVIDIA CUTLASS mô tả cách implicit-GEMM thực tạo khối mà không có toàn bộ ma trận mở rộng. Ta tính lưu trữ và tổng riêng ở đây thay vì chạy triển khai CUDA đó.

Tự thử

Với Th=Tw=2,Tc=1,Tm=2,kernel 3×3,bước trượt hai,độ giãn một, tính byte bộ đệm đơn cho đầu vào/trọng số/tổng 32 bit/bias.

Đọc giải thích

Đầu vào 5×5 dùng 25 byte. Cộng mười tám byte trọng số,32 byte tổng và tám byte bias:83 byte, không tính điều khiển và thang.

Lựa chọn áp dụng cho trình duyệt này. Có thể đổi ở chân trang bất cứ lúc nào.