D · Accelerator enablement
Đưa operator của mô hình lên accelerator mới
Quy trình tích hợp trình biên dịch, thư viện kernel và runtime để đưa một kiến trúc mô hình chạy hoàn chỉnh trên dòng phần cứng mới.
1Định nghĩa
Accelerator enablement (xây dựng backend cho phần cứng) là công việc nối ghép mô tả toán học của mô hình với một dòng chip tăng tốc cụ thể (như GPU mới, TPU hoặc NPU chuyên dụng). Backend bao gồm trọn bộ trình biên dịch (compiler), thư viện kernels, bộ quản lý HBM và trình điều khiển giao tiếp mạng.
Kỹ sư bắt đầu bằng việc rà soát danh sách toán tử mà mô hình cần (operator coverage): nếu thiếu một toán tử trên thiết bị, hệ thống buộc phải đẩy dữ liệu ngược về CPU để tính tạm (host fallback), tạo ra nút thắt cổ chai cực lớn làm tê liệt toàn bộ bước prefill hoặc decode. Một backend hoàn chỉnh phải chạy toàn bộ đồ thị trên thiết bị và vượt qua bài kiểm tra tương đương số học.
Ví dụ đời thường: Xây dựng backend cho thiết bị mới giống như việc chuyển một vở kịch sang biểu diễn ở một nhà hát mới có hệ thống âm thanh và ánh sáng khác hẳn. Nếu đạo diễn quên chuẩn bị một công tắc đèn trên bàn điều khiển mới (thiếu operator trên GPU), mỗi lần đến cảnh đó nhân viên lại phải chạy bộ ra cầu dao tổng ngoài hành lang để bật (fallback về CPU), làm cả vở diễn bị ngắt quãng.
2Luồng
- Liệt kê operator của model
Xác định shape và dtype cần có.
- Lower hoặc chọn kernel
Dùng compiler/kernel của chip.
- Tích hợp runtime
Buffers, streams và collectives chạy đúng.
- Kiểm tra toàn model
So logits, performance và fallback.
Mã Mermaid
flowchart TD
step1["Liệt kê operator của model"]
step2["Lower hoặc chọn kernel"]
step3["Tích hợp runtime"]
step4["Kiểm tra toàn model"]
step1 --> step2
step2 --> step3
step3 --> step4 3Giải pháp
Làm coverage matrix trước rồi port từng hot operator, có reference tests. Giữ thiết kế runtime đáp ứng memory và execution model của accelerator.
Theo dõi mọi transfer về host hoặc backend khác; một fallback nhỏ có thể gây synchronization lớn.
4Profiling
- Coverage và fallback count
Ghi phần chưa hỗ trợ, tần suất xuất hiện và chi phí chuyển dữ liệu.
- End-to-end speed
Đo request thật sau tích hợp, không chỉ microbenchmark của kernel đã port.
Mẹo đo lường: ghim số liệu trên workload thật, ghi cả p50/p95/p99 thay vì chỉ trung bình, và luôn ghi lại điều kiện chạy (batch, cache, đồng thời, phần cứng) trước và sau khi tối ưu. Số đo thiếu điều kiện chạy thì không so sánh được.
5Ví dụ
Attention kernel mới trên chip khác
Phải hiểu cách KV block table và memory layout nối với engine hiện có.
Model dùng activation chưa hỗ trợ
Backend cần kernel tương ứng hoặc fallback rõ; không bỏ qua operator để đạt con số tốc độ.
6Thuật ngữ
- Operator coverage
- Mức đầy đủ các phép toán, shapes và dtypes mà backend hỗ trợ.
- Fallback
- Đường thực thi thay thế khi backend không hỗ trợ một phần model.
Glossary (5)
- Logits
- Điểm số chưa chuẩn hóa cho các token ứng viên trước khi chọn token.
- Activation
- Giá trị trung gian được tạo ra trong forward của mạng neural.
- Kernel
- Hàm tính toán chạy trên thiết bị; thường xử lý nhiều phần tử song song.
- Runtime
- Phần mềm quản lý việc thực thi, buffers và phụ thuộc giữa phép toán.
- Host
- Phần chương trình điều khiển thiết bị, thường chạy trên bộ xử lý trung tâm.