OpenArchLabOpen Architecture — From Models to Systems

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.

LESSON ID backend GROUP Kiến trúc Inference
Mục lục bài học

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

Sơ đồ luồng (4 bước)
  1. Liệt kê operator của model

    Xác định shape và dtype cần có.

  2. Lower hoặc chọn kernel

    Dùng compiler/kernel của chip.

  3. Tích hợp runtime

    Buffers, streams và collectives chạy đúng.

  4. 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.

7Bài liên quan

8Nguồn