- Là thư viện thực hiện phép nhân ma trận FP8 (GEMM) hiệu quả, hỗ trợ phương pháp fine-grained scaling được đề xuất trong DeepSeek-V3
- Hỗ trợ cả GEMM thông thường và GEMM được nhóm cho Mix-of-Experts (MoE)
- Được triển khai dựa trên CUDA, và khi cài đặt sẽ biên dịch kernel trong lúc chạy bằng mô-đun Just-In-Time (JIT) gọn nhẹ mà không cần biên dịch riêng
- Hiện chỉ hỗ trợ tensor core NVIDIA Hopper
- Để bù đắp cho phép tích lũy thiếu chính xác của tensor core FP8, sử dụng tích lũy kép (promotion) dựa trên CUDA core
- Có sử dụng một số khái niệm từ CUTLASS và CuTe, nhưng giảm sự phụ thuộc vào template phức tạp để có thiết kế đơn giản chỉ khoảng 300 dòng mã kernel
- Phù hợp để học về phép toán ma trận FP8 trên Hopper và các kỹ thuật tối ưu hóa
- Dù có thiết kế gọn nhẹ, vẫn cho thấy hiệu năng tương đương hoặc tốt hơn các thư viện được tinh chỉnh ở mức chuyên gia trên nhiều kích thước ma trận khác nhau
Đánh giá hiệu năng
Hiệu năng GEMM thông thường (mô hình dense)
- Tiến hành đánh giá hiệu năng trong môi trường suy luận DeepSeek-V3/R1 với nhiều kích thước ma trận khác nhau
- Thử nghiệm trong môi trường GPU NVIDIA H800 (NVCC 12.8)
- Chỉ số tăng tốc (Speedup) được tính bằng cách so sánh với phiên bản tối ưu hóa nội bộ dựa trên CUTLASS 3.6
- Tóm tắt hiệu năng chính
- Ở kích thước ma trận nhỏ, tăng tốc tối đa 2,7 lần
- Với một số kích thước ma trận lớn, duy trì hiệu năng ở mức 1,0~1,2 lần
- Tối ưu băng thông bộ nhớ và hiệu năng tính toán để phát huy hiệu năng tối ưu cho kiến trúc Hopper
Hiệu năng GEMM được nhóm cho mô hình MoE
- GEMM được nhóm với bố cục contiguous
- Nhóm theo trục M, trong khi N và K được giữ nguyên
- Cho thấy tăng tốc tối đa 1,2 lần, và trong một số cấu hình cụ thể duy trì ở mức khoảng 1,1 lần
- GEMM được nhóm với bố cục masked
- Được thiết kế cho trường hợp CPU không thể biết số token của từng expert khi sử dụng CUDA Graph
- Cung cấp tensor mask làm đầu vào để chỉ thực hiện các phép toán cần thiết
- Mức cải thiện hiệu năng vào khoảng 1,1 lần~1,2 lần
Chưa có bình luận nào.