OpenArchLabOpen Architecture — From Models to Systems

L4 · Network

Trao đổi dữ liệu giữa các worker

Hạ tầng kết nối (NVLink, InfiniBand, RoCE) và các phép gom dữ liệu tập thể giữa các GPU khi chạy mô hình phân tán.

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

1Định nghĩa

Trong hệ thống suy luận hoặc huấn luyện phân tán (parallelism), khi một lớp của mô hình bị chia ra nhiều thiết bị, các worker phải liên tục trao đổi các mảng số (tensors) với nhau giữa chừng bước tính toán. Hạ tầng truyền dẫn này gồm liên kết tốc độ cao giữa các GPU trong cùng máy (như NVLink) và mạng giữa các máy chủ (như InfiniBand hoặc RoCE).

Việc đồng bộ dữ liệu được thực hiện qua các phép toán tập thể (collectives): All-Reduce cộng gộp kết quả từ mọi GPU rồi phát lại cho cả nhóm (dùng liên tục trong Tensor Parallelism), All-Gather ghép các mảnh thành tensor đầy đủ, và All-to-All định tuyến từng token tới đúng thiết bị chứa chuyên gia trong mô hình MoE. Vì bước tính toán tiếp theo thường phải đợi dữ liệu mạng về đủ, độ trễ và băng thông mạng ảnh hưởng trực tiếp tới thời gian chạy mỗi lớp.

Ví dụ đời thường: Hạ tầng mạng giữa các GPU giống như hệ thống băng chuyền và cầu nối giữa các phân xưởng khi cùng lắp ráp một chiếc ô tô. Dù mỗi phân xưởng làm việc nhanh đến mấy, nếu băng chuyền nối giữa các xưởng bị hẹp hoặc tắc nghẽn khi chuyển linh kiện qua lại, toàn bộ các xưởng phía sau đều phải dừng tay đứng đợi.

2Luồng

Sơ đồ luồng (4 bước)
  1. Worker có dữ liệu cục bộ

    Kết quả một phần hoặc gradients.

  2. Phát thao tác trao đổi

    Chọn nhóm và loại collective.

  3. Link vận chuyển dữ liệu

    Đi qua liên kết trong máy hoặc network.

  4. Worker tiếp tục tính

    Chờ kết quả cần thiết hoặc overlap công việc khác.

Mã Mermaid
flowchart TD
  step1["Worker có dữ liệu cục bộ"]
  step2["Phát thao tác trao đổi"]
  step3["Link vận chuyển dữ liệu"]
  step4["Worker tiếp tục tính"]
  step1 --> step2
  step2 --> step3
  step3 --> step4

3Giải pháp

Đặt các workers trao đổi nhiều gần nhau trên topology tốt. Có thể xen communication với compute nếu phụ thuộc dữ liệu cho phép.

Benchmark link riêng hữu ích, nhưng message sizes của model và network contention thực tế mới quyết định latency production.

4Profiling

  • Thời gian collective

    Đo theo message size và số workers; xem cả tail latency.

  • Timeline overlap

    Kiểm tra computation có thực sự che được communication hay chỉ tạo thêm cạnh tranh.

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ụ

Tensor parallel trong một node

Liên kết thiết bị nhanh có thể giúp tổng hợp kết quả các lớp ít tốn hơn cross-node.

Huấn luyện data parallel

Gradients cần được kết hợp để workers cập nhật nhất quán; serving replicas thường không có bước này.

6Thuật ngữ

All-reduce
Kết hợp dữ liệu của nhóm, thường bằng tổng, rồi đưa kết quả về từng thành viên.
All-gather
Gom các phần dữ liệu riêng để mỗi thành viên có bản đầy đủ.
Reduce-scatter
Kết hợp dữ liệu rồi chia kết quả thành các phần cho thành viên.
Peripheral Component Interconnect Express (PCI Express)
Chuẩn liên kết thiết bị với hệ thống máy; tốc độ thực tế phụ thuộc thế hệ và cấu hình đường truyền.
Remote Direct Memory Access
Cơ chế đọc hoặc ghi dữ liệu trong bộ nhớ máy khác mà giảm việc bộ xử lý trung tâm tham gia vào đường vận chuyển; thường gọi RDMA.
NVLink
Tên công nghệ liên kết của NVIDIA cho các thiết bị tương thích; không phải mọi accelerator đều có liên kết này.
Glossary (5)
Graphics Processing Unit
Bộ xử lý đồ họa, thường dùng cho phép tính tensor song song.
Tensor
Mảng số nhiều chiều, như một vector, ma trận hoặc nhóm ma trận.
Runtime
Phần mềm quản lý việc thực thi, buffers và phụ thuộc giữa phép toán.
Latency
Thời gian chờ để nhận một kết quả hoặc một bước kết quả.
Worker
Tiến trình hoặc máy thực hiện một phần công việc của hệ thống.

7Bài liên quan

8Nguồn