RTX 4090 với 24GB VRAM GDDR6X hiện là "tiêu chuẩn vàng" cho người dùng cá nhân và các kỹ sư hệ thống muốn triển khai LLM (Large Language Model) tại chỗ. Tuy nhiên, việc tính toán VRAM không chỉ đơn giản là lấy kích thước file model chia cho số lượng tham số; nó là bài toán tối ưu hóa giữa độ chính xác (quantization), context length (độ dài ngữ cảnh) và băng thông bộ nhớ. Tại VietITPro, chúng tôi thường xuyên tiếp nhận các bộ workstation chạy AI bị quá nhiệt hoặc tràn VRAM (OOM - Out of Memory) do thiết lập sai thông số. Bài viết này sẽ phân tích chuyên sâu cách tính toán VRAM cho Llama 3 và Mistral trên nền tảng RTX 4090.
Hiểu đúng về VRAM: Tại sao 24GB của RTX 4090 không phải là con số cố định?
Khi nói về VRAM trên card đồ họa, chúng ta cần phân biệt rõ ba thành phần tiêu thụ tài nguyên:
1. Model Weights (Trọng số mô hình): Chiếm dung lượng cố định dựa trên định dạng quantization (FP16, Q8, Q4_K_M...).
2. KV Cache (Key-Value Cache): Vùng nhớ động lưu trữ các token đã xử lý trước đó. Đây là nơi "ngốn" VRAM kinh khủng nhất khi bạn tăng context length (ví dụ: từ 4k lên 32k hoặc 128k).
3. CUDA Overhead: Phần VRAM mà driver NVIDIA và các thư viện (cuBLAS, PyTorch) chiếm dụng để vận hành.
Với RTX 4090, bạn có 24GB thực tế. Tuy nhiên, đừng bao giờ kỳ vọng sử dụng hết 24GB. Hệ điều hành và trình quản lý cửa sổ (Windows DWM) thường chiếm từ 0.5GB đến 1.5GB. Do đó, ngưỡng an toàn để chạy model là khoảng 22GB.
Phân tích dung lượng VRAM cho Llama 3 (8B và 70B)
Llama 3 hiện có hai phiên bản phổ biến nhất là 8B và 70B. Đây là bảng tính toán dung lượng VRAM tối thiểu (chỉ tính model weights) ở các định dạng quantization khác nhau:
Chiến lược chạy Llama 3 70B trên 24GB VRAM
Nhiều người dùng lầm tưởng RTX 4090 không chạy được Llama 3 70B. Thực tế, bạn có thể chạy nó thông qua kỹ thuật GPU Offloading (sử dụng llama.cpp hoặc Ollama). Bằng cách nạp một phần layer vào VRAM (khoảng 30-40 layer) và phần còn lại vào RAM hệ thống, bạn vẫn có thể sử dụng model này dù tốc độ inference sẽ giảm đáng kể do băng thông của RAM DDR5/DDR4 thấp hơn rất nhiều so với GDDR6X.
Mistral: Tối ưu hóa cho các tác vụ chuyên biệt
Mistral 7B (và các biến thể như Mistral-Nemo 12B) là những model cực kỳ hiệu quả. Với kiến trúc Sliding Window Attention, Mistral có khả năng tối ưu VRAM tốt hơn Llama 3 trong cùng một kích thước tham số.
- Mistral 7B (v0.3): Ở định dạng Q4_K_M, nó chỉ chiếm khoảng 4.5GB VRAM. Trên RTX 4090, bạn có thể chạy tới 4 instance cùng lúc mà vẫn chưa chạm ngưỡng 24GB.
- Mixtral 8x7B (MoE): Đây là model "quốc dân" cho RTX 4090. Dù có 47 tỷ tham số, nhưng nhờ cơ chế MoE (Mixture of Experts), chỉ một phần nhỏ tham số được kích hoạt trên mỗi token. Model này ở định dạng Q4_K_M chiếm khoảng 26GB VRAM. Để chạy trên 24GB của RTX 4090, bạn buộc phải dùng quantization Q3_K_M hoặc Q3_K_S để nén nó xuống dưới 22GB.
Những yếu tố "sát thủ" gây tràn VRAM (OOM)
Trong quá trình bảo trì hệ thống cho khách hàng tại VietITPro, chúng tôi nhận thấy 3 nguyên nhân chính khiến người dùng bị crash khi chạy LLM:
1. Context Length quá lớn: Nếu bạn đặt n_ctx lên 32.768 token, KV Cache sẽ phình to khủng khiếp. Với Llama 3 8B, nếu chạy ở FP16 với context 32k, VRAM tiêu thụ có thể tăng thêm 4-6GB so với context 4k.
2. Sử dụng Backend không tối ưu: Việc sử dụng giao diện web (UI) quá nặng như Text-Generation-WebUI với nhiều extension cài sẵn (như các bộ lọc, bộ đếm token) sẽ ngốn thêm tài nguyên VRAM không cần thiết. Hãy ưu tiên dùng các CLI tool như llama.cpp hoặc Ollama để kiểm soát tài nguyên chặt chẽ.
3. Phân mảnh VRAM: Khi bạn chạy nhiều model cùng lúc và tắt đi mở lại liên tục, bộ nhớ VRAM có thể bị phân mảnh, dẫn đến việc không cấp phát được block bộ nhớ lớn dù tổng VRAM còn trống. Khởi động lại service hoặc driver thường xuyên là cách xử lý thủ công hiệu quả nhất.
Hướng dẫn đo đạc và tối ưu thực tế
Để kiểm soát VRAM, bạn cần công cụ theo dõi thời gian thực. Đối với kỹ sư tại VietITPro, chúng tôi sử dụng lệnh nvidia-smi kết hợp với watch trên Linux hoặc Task Manager (tab Performance) trên Windows.
Lệnh kiểm tra nhanh trên Windows (PowerShell):
Các bước tối ưu hóa cho RTX 4090:
- Bước 1: Luôn ưu tiên định dạng GGUF (dùng llama.cpp). Nó cho phép bạn tùy chỉnh số lượng layer đẩy vào GPU (
n-gpu-layers). - Bước 2: Với model 70B, hãy thử nghiệm bắt đầu từ 30 layer, sau đó tăng dần cho đến khi thấy
Out of Memorytrong log thì lùi lại 2 layer. - Bước 3: Sử dụng
flash attentionnếu model hỗ trợ. Đây là kỹ thuật giảm thiểu bộ nhớ cho cơ chế attention, giúp tăng context length mà không tốn thêm quá nhiều VRAM.
Giải đáp các câu hỏi thường gặp (FAQ)
1. Tại sao tôi đã dùng model Q4_K_M (5GB) nhưng chạy trên RTX 4090 vẫn báo lỗi Full VRAM?
Có thể bạn đang thiết lập n_ctx (context window) quá cao. Ví dụ, nếu bạn set n_ctx = 128000, KV cache sẽ chiếm dụng cực kỳ nhiều VRAM. Hãy thử giảm n_ctx xuống 8192 hoặc 4096 để kiểm tra.
2. Có nên dùng RTX 4090 để train (Fine-tune) model không?
RTX 4090 chạy tốt LoRA/QLoRA (Fine-tuning hiệu quả). Tuy nhiên, nếu bạn định full-parameter fine-tune Llama 3 70B, 24GB VRAM là bất khả thi. Với Llama 3 8B, bạn có thể thực hiện fine-tune với LoRA trong khoảng 16-20GB VRAM.
3. Việc chạy LLM liên tục ở 90-95% VRAM có hại cho GPU không?
Về mặt điện tử, chip GPU được thiết kế để hoạt động ở trạng thái tải cao. Tuy nhiên, vấn đề nằm ở nhiệt độ. Khi VRAM đầy, các chip nhớ GDDR6X sẽ nóng lên rất nhanh (thường vượt ngưỡng 90-95 độ C). Tại VietITPro, chúng tôi khuyến cáo khách hàng nên undervolt GPU và tăng tốc độ quạt (fan curve) khi chạy LLM lâu dài để tránh lỗi bong chân chip nhớ BGA do sốc nhiệt.
4. Liệu có nên ghép 2 card RTX 4090 để chạy LLM lớn hơn?
Đây là giải pháp tối ưu nhất cho người dùng chuyên nghiệp. 2x RTX 4090 sẽ cho bạn 48GB VRAM, đủ để chạy Llama 3 70B ở định dạng Q8 hoặc FP16 với context length lớn. Lưu ý: Cần nguồn công suất thực (PSU) ít nhất 1200W-1500W đạt chuẩn Platinum/Titanium để đảm bảo ổn định dòng điện cho cả hai card.
Lời khuyên từ Kỹ Sư Phần Cứng
Việc chạy LLM trên RTX 4090 là một nghệ thuật cân bằng. Đừng cố gắng nhồi nhét model lớn nhất vào VRAM bằng mọi giá nếu nó khiến hệ thống không ổn định. Một model 70B ở mức Q3_K_M chạy chậm (do offload sang RAM) thường cho kết quả tệ hơn một model 8B ở mức Q8 chạy hoàn toàn trên VRAM với tốc độ phản hồi nhanh.
Nếu bạn đang gặp sự cố về nhiệt độ hoặc cần tư vấn nâng cấp dàn workstation để phục vụ AI Computing chuyên sâu, hãy đảm bảo hệ thống tản nhiệt khí hoặc nước của bạn được vệ sinh định kỳ 6 tháng/lần. Bụi bẩn bám vào dàn lá nhôm tản nhiệt là nguyên nhân hàng đầu gây sụt giảm hiệu năng khi GPU đang thực hiện các phép tính ma trận nặng nề.
Hy vọng bài phân tích này giúp bạn hiểu rõ giới hạn và tiềm năng của RTX 4090. Hãy bắt đầu với các bản quantization nhỏ để làm quen trước khi tiến tới các cấu hình phức tạp hơn.




