Tin tức tiếng Việt
Mới nhất
AI & Công nghệ

CUDA Graphs, mô hình suy luận và phục vụ tách rời

Cáp quang viễn thông trong hố kỹ thuật dưới đất mang tính minh họa, không phải phần cứng GPU.
Cáp quang viễn thông trong hố kỹ thuật dưới đất mang tính minh họa, không phải phần cứng GPU.

Hạ tầng AI hiện đại đẩy hiệu năng đến giới hạn vật lý của silicon và cụm máy thông qua loại bỏ overhead CPU, vòng lặp suy luận lúc suy diễn và định tuyến cụm GPU chuyên biệt theo giai đoạn. Ba kỹ thuật này vận hành các hệ thống AI sản xuất nhanh nhất, thông minh nhất hiện nay.

1. CUDA Graphs và hợp nhất kernel: Loại bỏ overhead CPU & bộ nhớ

Khi các GPU hiện đại (như H100 và B200) ngày càng nhanh theo cấp số nhân, việc thực thi một kernel GPU nhẹ có thể chỉ mất 2 đến 5 micro giây. Tuy nhiên, CPU thường mất 10 đến 20 micro giây chỉ để chuẩn bị, kiểm tra và khởi chạy kernel đó qua driver PCIe - khiến GPU triệu đô ngồi hoàn toàn không làm gì chờ lệnh của CPU.

  • Hợp nhất kernel (kết hợp các phép toán để tiết kiệm bộ nhớ & số lần khởi chạy).
  • Nút thắt khi không hợp nhất. Một layer Transformer tiêu chuẩn thực thi hàng chục phép toán nhỏ tuần tự (ví dụ LayerNorm → Linear → Add Residual → GeLU). Không hợp nhất, GPU khởi chạy các kernel riêng cho từng bước, ghi tensor trung gian ra HBM (VRAM) chậm rồi đọc lại ngay cho bước tiếp theo.
  • Thực thi hợp nhất. Các trình biên dịch như torch.compile (TorchInductor) và TensorRT-LLM hợp nhất nhiều phép toán element-wise và reduction thành một kernel CUDA/Triton tùy biến duy nhất. Giá trị được nạp từ HBM một lần, biến đổi bên trong thanh ghi/SRAM trên chip siêu nhanh, và chỉ ghi trở lại HBM ở cuối cùng - cắt giảm đáng kể cả lưu lượng băng thông bộ nhớ lẫn số lần khởi chạy kernel.
  • CUDA Graphs (phát lại toàn bộ pipeline thực thi trong một lần).
  • Ghi và phát lại. Ngay cả sau khi hợp nhất kernel, một lượt forward của LLM vẫn đòi hỏi hàng trăm lần khởi chạy kernel cho mỗi token được tạo. CUDA Graphs giải quyết điều này bằng cách ghi lại toàn bộ chuỗi thao tác GPU - kernel, sao chép bộ nhớ và phụ thuộc - trong một lần chạy khởi động và biên dịch chúng thành một đồ thị thực thi tĩnh lưu trực tiếp trong bộ nhớ GPU.
  • Không cần CPU can thiệp. Trong suy luận thời gian thực, thay vì CPU khởi chạy 300 kernel riêng lần lượt, CPU phát một lệnh gọi API duy nhất (cudaGraphLaunch) kích hoạt toàn bộ lượt forward trên GPU một cách tự chủ.
  • Xử lý hình dạng động. Vì CUDA Graphs đòi hỏi địa chỉ bộ nhớ và hình dạng tensor tĩnh, các engine suy luận đệm các batch đến vào kích thước bucket cố định (ví dụ kích thước batch 1, 2, 4, 8, 16) và cập nhật con trỏ đầu vào tại chỗ trước khi phát lại đồ thị đã ghi sẵn.

2. Test-Time Compute & Mô hình suy luận (o1/o3 & DeepSeek-R1)

Trước đây, các phòng thí nghiệm AI mở rộng trí tuệ hoàn toàn bằng cách dồn thêm tính toán vào tiền huấn luyện (mô hình lớn hơn huấn luyện trên nhiều văn bản internet hơn). Các mô hình suy luận như o1/o3 của OpenAI và DeepSeek-R1 đã mở khóa trục mở rộng thứ hai: Test-Time Compute (mở rộng lúc suy diễn), cho phép mô hình "suy nghĩ" lâu hơn trước khi trả lời.

  • Học tăng cường cho Chain-of-Thought (CoT).
  • Thay vì chỉ dựa vào các ví dụ suy luận từng bước do con người viết, các mô hình này được huấn luyện qua Học tăng cường quy mô lớn (RL) (như GRPO - Group Relative Policy Optimization trong DeepSeek-R1) trên các lĩnh vực kiểm chứng được như toán, lập trình và logic hình thức.
  • Mô hình tạo nhiều đường suy luận ứng viên, chỉ nhận phần thưởng khách quan khi câu trả lời cuối cùng vượt qua unit test hoặc kiểm chứng toán học, và tự khám phá các hành vi nhận thức nổi lên - bao gồm tự kiểm chứng, quay lui khi gặp ngõ cụt và chia bài toán phức tạp thành các mục tiêu con.
  • Cách tính toán suy luận mở rộng.
  • Khi nhận một prompt khó, mô hình tạo hàng nghìn "token suy nghĩ" nội bộ trong một scratchpad ẩn trước khi đưa ra câu trả lời cuối. Độ chính xác tăng theo hàm logarit khi mô hình dùng nhiều token suy luận hơn để khám phá giả thuyết.
  • Dịch chuyển đánh đổi tính toán. Trong LLM truyền thống, suy luận rẻ và nhanh (tạo ~50 token đầu ra). Trong các mô hình suy luận, một truy vấn đơn có thể tạo 10.000 đến 50.000 token suy nghĩ, biến suy luận thành khối lượng công việc tạo batch kéo dài lớn, bị chi phối bởi sự tăng trưởng KV cache và hiệu quả attention ngữ cảnh dài.

3. Prefill và Decode tách rời

Phục vụ một LLM gồm hai giai đoạn tính toán đối lập căn bản. Chạy cả hai giai đoạn trên cùng một GPU tạo ra xung đột lập lịch nghiêm trọng và sử dụng phần cứng kém.

Giai đoạnBản chất khối lượng công việcNút thắt phần cứngChỉ số độ trễ
Prefill (xử lý prompt)Xử lý tất cả token của prompt (ví dụ 10.000 token) song song trong một lượt forward duy nhất.Giới hạn tính toán (làm bão hòa Tensor Core của GPU với các phép nhân ma trận khổng lồ).TTFT (Time-To-First-Token)
Decode (tạo token)Tạo token đầu ra từng cái một tuần tự, đọc toàn bộ KV cache mỗi bước.Giới hạn băng thông bộ nhớ (Tensor Core hầu như ngồi không chờ đọc VRAM).TPOT (Time-Per-Output-Token)
  • Vấn đề nhiễu do đặt chung.
  • Trong phục vụ thống nhất truyền thống, nếu một người dùng gửi tài liệu khổng lồ 32.000 token để Prefill trong khi 50 người dùng khác đang giữa chừng stream token Decode, phép toán ma trận prefill khổng lồ chiếm dụng Tensor Core của GPU - gây đứng hình đáng kể và đột biến độ trễ ("giật") cho cả 50 người dùng đang stream.
  • Hơn nữa, Prefill cần FLOPs tính toán cao, trong khi Decode cần băng thông bộ nhớ HBM khổng lồ và dung lượng để chứa KV cache của batch lớn.
  • Chia cụm (kiến trúc tách rời).
  • Các hệ thống suy luận hyperscale hiện đại (như Mooncake, DistServe và NVIDIA Dynamo) chia cụm GPU thành hai pool chuyên dụng:
  • 1. Pool Prefill: Tối ưu cho thông lượng tính toán thô (mức sử dụng Tensor Core cao, song song tensor nhỏ hơn) để xử lý nhanh các prompt dài và đạt mục tiêu Time-To-First-Token (TTFT) khắt khe.
  • 2. Pool Decode: Tối ưu cho băng thông bộ nhớ cao và dung lượng KV cache lớn (song song tensor/expert rộng hơn, kích thước batch lớn) để stream token mượt mà ở mức token mỗi giây đỉnh.
  • Truyền KV Cache tốc độ cao. Khi một GPU Prefill xử lý xong prompt và xây dựng KV Cache ban đầu, nó stream KV Cache đó trực tiếp qua các liên kết NVLink siêu nhanh hoặc InfiniBand RDMA vào VRAM của một GPU Decode, GPU này lập tức tiếp quản việc tạo token mà không có bất kỳ nhiễu nào.

Tin tức khác: AI & Công nghệ