Tối ưu hóa hiệu quả bộ nhớ để chạy các mô hình lớn trên NVIDIA Jetson
Tối ưu hóa hiệu quả bộ nhớ để chạy các mô hình lớn trên NVIDIA Jetson
Khám phá các chiến lược tối ưu hóa từ phần cứng đến phần mềm giúp triển khai các mô hình AI đa tỷ tham số trên các thiết bị edge có tài nguyên hạn chế như NVIDIA Jetson.
Thách thức về bộ nhớ khi triển khai AI tại biên (Edge AI)
Sự bùng nổ của các mô hình AI tạo sinh mã nguồn mở đang mở rộng từ các trung tâm dữ liệu sang các thiết bị vận hành trong thế giới vật lý. Các nhà phát triển đang nỗ lực triển khai những mô hình này tại biên để vận hành các tác nhân AI vật lý và robot tự hành. Tuy nhiên, thách thức chính là làm sao chạy hiệu quả các mô hình có hàng tỷ tham số trên các thiết bị edge với bộ nhớ hạn chế.
Khác với môi trường đám mây, thiết bị edge hoạt động dưới giới hạn bộ nhớ nghiêm ngặt, nơi CPU và GPU chia sẻ tài nguyên chung. Việc sử dụng bộ nhớ không hiệu quả có thể dẫn đến nghẽn cổ chai, tăng độ trễ hoặc gây treo hệ thống. Tối ưu hóa bộ nhớ không chỉ giúp cải thiện hiệu suất trên cùng một phần cứng mà còn cho phép chạy các tác vụ phức tạp hơn như LLM, hệ thống đa camera và hợp nhất cảm biến (sensor fusion).


Chiến lược tối ưu hóa 5 lớp cho NVIDIA Jetson
NVIDIA đề xuất một khung tham chiếu gồm 5 lớp để tối ưu hóa bộ nhớ, từ nền tảng phần cứng đến kỹ thuật lượng tử hóa mô hình.
1. Lớp Jetson BSP và NVIDIA JetPack
Đây là lớp cơ bản giao tiếp với phần cứng, bao gồm kernel Linux, driver thiết bị và firmware. Để tiết kiệm bộ nhớ ở lớp này, nhà phát triển có thể tắt các dịch vụ không sử dụng và thu hồi các vùng carveout (vùng nhớ dự phòng).
Các vùng carveout trên Jetson Orin NX và Orin Nano là bộ nhớ vật lý được dành riêng lúc khởi động cho các engine phần cứng và firmware. Tùy vào nhu cầu ứng dụng, một số vùng carveout có thể bị vô hiệu hóa để giải phóng DRAM cho ứng dụng. Ví dụ, nếu hệ thống không cần hiển thị (display) hoặc camera, các node tương ứng trong cấu hình bootloader có thể được tắt đi.
2. Tối ưu hóa Kernel và User-space
Vì Jetson sử dụng bộ nhớ thống nhất (unified memory) cho cả CPU và GPU, việc tối ưu hóa một bên sẽ có lợi cho bên còn lại. Nhà phát triển nên xác định các tiến trình tiêu tốn nhiều bộ nhớ CPU nhất (sử dụng PSS – Proportional Set Size) và tắt các dịch vụ nền không cần thiết như GUI hoặc âm thanh trong môi trường triển khai headless.
Ngoài ra, việc kiểm tra các phân bổ bộ nhớ GPU và multimedia thông qua NvMap giúp xác định các tiến trình chiếm dụng tài nguyên lớn, từ đó giải phóng thêm không gian cho các tác vụ AI.
3. Pipeline suy luận (Inference Pipeline)
Lớp này quản lý luồng dữ liệu từ tiền xử lý, suy luận đến hậu xử lý. Các framework như NVIDIA DeepStream cung cấp pipeline tăng tốc GPU cho dữ liệu streaming (video, cảm biến), giúp tối ưu hóa việc di chuyển dữ liệu và sử dụng tài nguyên tính toán.
4. Framework phục vụ suy luận (Inference-serving Framework)
Đối với LLM, các framework như vLLM, SGLang và Llama.cpp giúp tối ưu hóa thông qua các kỹ thuật như continuous batching và quản lý KV cache, giúp tối đa hóa thông lượng và giảm độ trễ khi triển khai cục bộ tại biên.
5. Lượng tử hóa mô hình (Model Quantization)
Lượng tử hóa là kỹ thuật then chốt để giảm dấu chân bộ nhớ bằng cách biểu diễn trọng số và kích hoạt bằng các kiểu dữ liệu độ chính xác thấp hơn. Quy trình khuyến nghị là đánh giá dần từ mức độ chính xác cao nhất xuống thấp hơn cho đến khi mô hình không còn đáp ứng được ngưỡng chất lượng yêu cầu.


Các định dạng như FP16 và FP8 cân bằng giữa độ chính xác và hiệu suất. Các phương pháp quyết liệt hơn như W4A16 hoặc NVFP4 (tính toán 4-bit thân thiện với phần cứng) giúp giảm đáng kể nhu cầu bộ nhớ và băng thông.
Tận dụng các bộ tăng tốc phi GPU
Jetson tích hợp nhiều bộ tăng tốc chuyên dụng để giảm tải cho CPU và GPU, bao gồm ISP cho xử lý camera, NVENC/NVDEC cho mã hóa/giải mã video và NVIDIA Programmable Vision Accelerator (PVA). PVA đặc biệt phù hợp cho các tác vụ thị giác tiêu thụ điện năng thấp, luôn bật (always-on) như phát hiện chuyển động hoặc theo dõi đối tượng, giúp giải phóng GPU cho các tác vụ suy luận phức tạp hơn.


Kết quả thực tế: Robot trợ lý Reachy Mini
Để minh chứng, robot trợ lý hội thoại Reachy Mini chạy trên Jetson Orin Nano (8 GB bộ nhớ) mà không cần đám mây. Nhờ áp dụng tối ưu hóa toàn diện: tắt quản lý hiển thị, chạy headless, sử dụng Llama.cpp thay cho framework Python nặng nề, và lượng tử hóa 4-bit cho mô hình Cosmos-Reason2-2B, hệ thống có thể chạy đồng thời nhiều pipeline:
- Mô hình thị giác-ngôn ngữ (VLM) Cosmos-Reason2-2B (4-bit).
- Nhận dạng giọng nói faster-whisper (small.en).
- Chuyển văn bản thành giọng nói Kokoro TTS.
- SDK robot Reachy Mini và dashboard web.
Kết hợp lượng tử hóa 4-bit với các runtime hiệu quả như Llama.cpp và TensorRT-Edge-LLM, các thiết bị Jetson có thể hỗ trợ các LLM lên đến ~10 tỷ tham số và VLM lên đến ~4 tỷ tham số trong ngân sách bộ nhớ hạn chế.
Nguon tham khao
Maximizing Memory Efficiency to Run Bigger Models on NVIDIA Jetson | NVIDIA Technical Blog – developer.nvidia.com
Memory Efficiency for Edge AI on NVIDIA Jetson
Deploying multi-billion parameter AI models on edge devices is challenging due to strict memory constraints. Unlike the cloud, edge devices share memory between CPU and GPU, making efficient management critical to avoid bottlenecks and system failures.
Five-Layer Optimization Strategy
NVIDIA proposes a framework to maximize performance on Jetson platforms:
- BSP & JetPack: Disable unused services and reclaim memory from carveout regions (e.g., disabling display or camera drivers when not needed).
- Kernel & User-space: Identify high-memory processes using PSS and disable unnecessary background services (GUI, audio) for headless deployments.
- Inference Pipeline: Use GPU-accelerated frameworks like NVIDIA DeepStream to optimize data movement.
- Serving Frameworks: Leverage vLLM, SGLang, or Llama.cpp for efficient KV cache management and continuous batching.
- Quantization: Use lower-precision formats (FP8, W4A16, NVFP4) to reduce memory footprint while maintaining acceptable accuracy.
Hardware Acceleration
Offloading specialized tasks to non-GPU accelerators like the Programmable Vision Accelerator (PVA) for always-on vision tasks frees up GPU resources for complex inference.
Real-world Application: Reachy Mini Robot
The Reachy Mini assistant demonstrates these optimizations on a Jetson Orin Nano (8GB). By using 4-bit quantization (Cosmos-Reason2-2B), Llama.cpp, and disabling the GUI, it concurrently runs a VLM, speech recognition (faster-whisper), and TTS (Kokoro) without cloud dependency. This approach enables LLMs up to ~10B and VLMs up to ~4B parameters on limited memory budgets.
Reference
Maximizing Memory Efficiency to Run Bigger Models on NVIDIA Jetson | NVIDIA Technical Blog – developer.nvidia.com

