Chuyển đến nội dung
tinAI
Quay lại

Multi-GPU tại nhà: thêm VRAM không đồng nghĩa thêm tốc độ

jdagostino.github.io · Loại nguồn: web 2026-08-20T20:08:18.915Z
Bản dịch tiếng Việt của tinAI · Từ AI At Home Part 2: Multi GPU Drifting (jdagostino.github.io) · Ngày gốc: · Dịch ngày:

và giữ bối cảnh từ bản tin tinAI đã giới thiệu bài này .

Bài gốc: AI At Home Part 2: Multi GPU Drifting (jdagostino.github.io)

Tác giả: J. D'Agostino

Ngày đăng: Dịch ngày:

TL;DR

Một server bốn AMD V620 32GB chạy LLM nhanh hay chậm phụ thuộc vào memory bandwidth, interconnect và CPU spill chứ không chỉ tổng VRAM. Bài viết đo Gemma, Deepseek V4 Flash và Qwen3.8-27B qua llama.cpp để rút ra checklist tối ưu thực tế.

Ước tính đọc: 3 phút

Tóm tắt

Bài viết ghi lại quá trình tối ưu một server tại nhà gồm bốn AMD Radeon Pro V620 32GB để chạy LLM bằng llama.cpp. Mục tiêu không phải viết kernel mới mà là dùng cấu hình hiện có để lấy thêm throughput từ phần cứng cũ.

Kết quả thực dụng: layer parallel giúp nhét model lớn vào VRAM tổng, nhưng có thể làm token generation chậm vì GPU thay nhau làm việc. Muốn nhanh hơn phải hiểu memory bandwidth, interconnect, CPU spill, speculative decoding và tensor parallel.

Bối cảnh phần cứng

Server có bốn GPU chung bus PCIe 3.0, phần lớn card chỉ chạy 8 lane. Mỗi AMD V620 có khoảng 512 GB/s memory bandwidth. Với layer parallel, model được chia theo layer qua nhiều GPU; mỗi token vẫn đi tuần tự qua các layer, nên băng thông hiệu dụng gần với một card, trừ thêm overhead chuyển dữ liệu.

Với tensor parallel, mỗi layer được chia cho nhiều GPU để cộng băng thông, nhưng phải đồng bộ dữ liệu nhiều lần. Trên card có interconnect tốt như NVLink hoặc Infinity Fabric, tradeoff này có thể ổn. Trên dàn V620 qua PCIe, overhead có thể ăn hết lợi ích.

Phát hiện chính

Gemma4 31B ở 4-bit quant nặng khoảng 18 GiB, đủ nằm trong một card. Đây là case tốt để đo penalty của layer parallel: một card đạt 19-20 tok/s, hai card còn 15-16 tok/s, bốn card còn 12-13 tok/s.

Deepseek V4 Flash là MoE 284B-A13B. Bản quant tác giả dùng khoảng 81 GiB, vừa đủ lấp VRAM của bốn card. Chạy default layer parallel ban đầu chỉ đạt 9-10 tok/s. Sau khi thêm draft model DSpark, chỉnh tensor split, batch, microbatch và đảm bảo mọi thứ nằm trong VRAM, tốc độ UI/OpenCode lên khoảng 19-20 tok/s.

Một lỗi lớn nằm ở PCIe peer-to-peer transfer. Khi sửa BIOS/MMIO và thêm iommu=pt, tensor parallel trên model nhỏ hơn thay đổi rõ: hai card lên khoảng 47 tok/s và bốn card khoảng 37 tok/s trong phép thử Gemma. Với Qwen3.8-27B, hai card tensor parallel đạt khoảng 35 tok/s, nhanh hơn khoảng 30% so với một card.

Ý nghĩa với Dev

Nếu bạn tự host model cho coding agent, đừng chỉ cộng tổng VRAM rồi kỳ vọng latency tốt. CPU spill có thể kéo model xuống dưới 8 tok/s; interconnect hỏng có thể biến tensor parallel thành thảm họa; layer parallel có thể làm nhiều GPU nhàn rỗi.

Checklist thực tế: ép model và draft model nằm hoàn toàn trong VRAM, đo single-card trước, đo layer parallel và tensor parallel riêng, kiểm tra PCIe P2P, khóa context size thay vì tin auto-fit, rồi benchmark bằng workload giống agent thật. Tối ưu inference tại nhà là bài toán hệ thống, không phải chỉ là mua thêm card.


Đường dẫn nguồn

tinAI dịch bài này sang tiếng Việt từ AI At Home Part 2: Multi GPU Drifting (jdagostino.github.io) · Loại nguồn: web và giữ bối cảnh từ bản tin tinAI đã giới thiệu bài này .

Bản tin này có 3 bài dịch liên quan từ cùng bản tin.

Đọc tiếp từ đây

Bạn có thể quay lại bản tin nguồn hoặc mở kho bài dịch để đọc tiếp.

Các bài bên dưới cùng xuất hiện trong bản tin nguồn, nên giữ chung bối cảnh đọc với bài này.

Các bài liên quan trong cùng bản tin trải trên 1 loại nguồn (2 bài). Loại nguồn: web 2