L3 · Execution software
Tầng thực thi nối bộ điều phối với thiết bị tính toán
Tầng thực thi điều phối bộ nhớ đệm, xếp hàng các lệnh tính toán (streams/graphs) và gọi kernel xuống thiết bị phần cứng.
1Định nghĩa
Runtime là tầng thực thi nằm giữa bộ lập lịch (scheduler) và các hàm tính toán (kernels) trên thiết bị. Sau khi scheduler chốt danh sách token cho bước hiện tại, runtime chịu trách nhiệm chuẩn bị tensor đầu vào, ánh xạ địa chỉ KV cache và phát lệnh chạy mô hình xuống phần cứng.
Để GPU hoạt động liên tục không bị ngắt quãng bởi CPU, runtime phát lệnh bất đồng bộ qua các luồng thực thi (execution streams), tái sử dụng vùng nhớ tạm (workspace buffers) và dùng kỹ thuật ghi sẵn đồ thị lệnh (như CUDA Graph) để phát cả chuỗi hàng trăm thao tác chỉ bằng một lời gọi từ host.
Ví dụ đời thường: Runtime giống như người quản đốc đứng điều hành trực tiếp dưới sàn nhà máy. Sau khi phòng kế hoạch (scheduler) gửi danh sách đơn hàng của ca xuống, quản đốc lo việc dọn sẵn mặt bằng chứa hàng, xếp lịch từng dây chuyền chạy nối tiếp nhau không nghỉ để dàn máy móc đắt tiền không bao giờ phải đứng không chờ người bấm nút.
2Luồng
- Nhóm công việc đã chọn
Có token và bảng ánh xạ cache.
- Chuẩn bị buffers
Sắp dữ liệu đúng shape và vị trí.
- Phát kernels và chờ phụ thuộc
Cho thiết bị tính theo thứ tự đúng.
- Trả điểm số
Chuyển kết quả tới phần chọn token.
Mã Mermaid
flowchart TD
step1["Nhóm công việc đã chọn"]
step2["Chuẩn bị buffers"]
step3["Phát kernels và chờ phụ thuộc"]
step4["Trả điểm số"]
step1 --> step2
step2 --> step3
step3 --> step4 3Giải pháp
Dùng lại buffers thay vì cấp phát mỗi bước và dùng graph replay khi shapes phù hợp giúp giảm khoảng trống giữa kernels. Phải có đường chạy linh hoạt cho shapes chưa được capture.
Tránh các lần chuyển dữ liệu hoặc đồng bộ toàn thiết bị không cần thiết. Kiểm tra lifetime: không tái dùng buffer trước khi tác vụ cũ đã xong.
4Profiling
- Timeline host và thiết bị
Tìm khoảng trống giữa kernels; xem host đang chuẩn bị, phát lệnh hay chờ kết quả.
- Warmup và trạng thái ổn định
Báo riêng capture/khởi động với chi phí mỗi bước khi đã sẵn sàng.
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ụ
Decode với nhóm ổn định
Graph replay có thể giảm việc host phát lại nhiều lệnh nhỏ mỗi token.
Nhóm request thay đổi liên tục
Runtime dùng các nhóm shape đã chuẩn bị hoặc đường fallback; cần đo tần suất fallback.
6Thuật ngữ
- Buffer
- Vùng bộ nhớ giữ dữ liệu đầu vào, trung gian hoặc kết quả.
- Stream
- Hàng lệnh trên thiết bị, có quy tắc thứ tự thực thi.
- Graph replay
- Chạy lại một chuỗi thao tác đã được ghi trước để giảm chi phí phát lệnh từ host.
Glossary (7)
- Model weights
- Các tham số số học được học và lưu trong checkpoint.
- Cache
- Bộ nhớ giữ kết quả có thể dùng lại; trong attention thường giữ key/value vectors.
- Logits
- Điểm số chưa chuẩn hóa cho các token ứng viên trước khi chọn token.
- Runtime
- Phần mềm quản lý việc thực thi, buffers và phụ thuộc giữa phép toán.
- Warmup
- Chạy chuẩn bị để hoàn tất khởi tạo, compilation/capture hoặc ổn định execution trước đo.
- Batch
- Nhóm công việc hoặc mẫu được xử lý trong một lượt tính.
- Tensor shape
- Kích thước các chiều của tensor; ảnh hưởng layout, kernel và memory.