Trải nghiệm AMD ROCm và APU Strix Halo: Thiết lập và chạy các mô hình AI

18 tháng 4, 2026·4 phút đọc

Bài viết chia sẻ những ấn tượng ban đầu khi làm việc với nền tảng ROCm và APU Strix Halo của AMD, nổi bật với dung lượng bộ nhớ 128GB được chia sẻ giữa CPU và GPU. Tác giả hướng dẫn chi tiết cách tinh chỉnh BIOS, cấu hình Grub và cài đặt PyTorch cũng như Llama.cpp trên Ubuntu 24.04 để khai thác tối đa sức mạnh của phần cứng mới này.

Trải nghiệm AMD ROCm và APU Strix Halo: Thiết lập và chạy các mô hình AI

Trong thế giới phần cứng hiện nay, APU Strix Halo của AMD đang thu hút sự chú ý lớn nhờ kiến trúc kết hợp CPU và GPU mạnh mẽ. Điểm đặc biệt nhất khiến nhiều nhà phát triển quan tâm là khả năng chia sẻ linh hoạt 128GB bộ nhớ giữa CPU và GPU, mở ra cơ hội to lớn cho các tác vụ AI và học máy cục bộ.

Dưới đây là những trải nghiệm thực tế và quy trình thiết lập để đưa hệ thống này vào vận hành, từ cài đặt driver đến chạy thành công các mô hình AI như PyTorch và Llama.cpp.

Htop trên hệ thống Strix HaloHtop trên hệ thống Strix Halo

Hệ điều hành và cài đặt Driver

Vì quen thuộc với môi trường Linux, tôi đã chọn Ubuntu phiên bản 24.04 LTS - một bản được hỗ trợ chính thức. Quy trình cài đặt khá trực quan khi tuân theo các hướng dẫn cài đặt driver chính thức từ AMD. Tuy nhiên, có một số lưu ý quan trọng cần đặc biệt chú ý ở tầng thấp hơn (firmware và kernel).

Cập nhật BIOS và tinh chỉnh cài đặt

Đây là bước then chốt. Ban đầu, PyTorch không thể nhận diện GPU cho đến khi tôi thực hiện cập nhật BIOS. May mắn thay, BIOS của máy này cho phép kết nối Wi-Fi để tự động tải và cài đặt bản cập nhật mới.

Ngoài ra, trong cài đặt BIOS, bạn cần điều chỉnh "Reserved Video Memory" (Bộ nhớ video dự phòng) xuống mức thấp nhất (tôi chọn là 512MB) và để phần bộ nhớ còn lại được chia sẻ giữa CPU và GPU thông qua cơ chế GTT (Graphics Translation Table).

Việc này mang lại những hệ quả nhất định:

  • CPU không thể sử dụng phần bộ nhớ GPU đã được dự phòng.
  • GPU có thể truy cập tổng bộ nhớ (Reserved + GTT), nhưng việc sử dụng đồng thời cả hai đôi khi kém hiệu quả hơn so với một vùng nhớ GTT lớn duy nhất do vấn đề phân mảnh.
  • Một số phần mềm hoặc game cũ có thể chỉ nhìn thấy GPU có 512MB bộ nhớ và từ chối chạy (tuy nhiên, tôi chưa gặp tình trạng này).

Cấu hình Grub

Để tối ưu hóa việc quản lý bộ nhớ trên Linux, cần sửa file /etc/default/grub. Tôi thêm dòng sau:

GRUB_CMDLINE_LINUX_DEFAULT="quiet splash ttm.pages_limit=32768000 amdgpu.gttsize=114688"

Sau đó chạy lệnh sudo update-grub.

Một lưu ý quan trọng: amdgpu.gttsize không nên chiếm hết toàn bộ bộ nhớ hệ thống. Bạn nên dành từ 4GB đến 12GB cho CPU riêng biệt (Tổng bộ nhớ trừ đi GPU Reserved và GTT) để đảm bảo sự ổn định của kernel Linux.

Cài đặt PyTorch với UV

Cài đặt PyTorch trên nền tảng ROCm đôi khi phức tạp do đồ thị phụ thuộc (dependency graph) rắc rối. Công cụ quản lý package uv đã giúp giải quyết vấn đề này một cách nhẹ nhàng. Dưới đây là cấu hình pyproject.toml mẫu:

[project]
name = "myproject"
version = "0.1.0"
description = "Add your description here"
readme = "README.md"
requires-python = ">=3.13"
dependencies = [
"torch==2.11.0+rocm7.2",
"triton-rocm",
]

[tool.uv]
environments = ["sys_platform == 'linux'"]

[[tool.uv.index]]
name = "pytorch-rocm"
url = "https://download.pytorch.org/whl/rocm7.2"
explicit = true

[tool.uv.sources]
torch = { index = "pytorch-rocm" }
torchvision = { index = "pytorch-rocm" }
triton-rocm = { index = "pytorch-rocm" }

Bạn cũng có thể thêm alias vào .bashrc để kiểm tra nhanh cấu hình PyTorch và GPU.

Chạy Llama.cpp với Podman

Để chạy các mô hình ngôn ngữ lớn (LLM) cục bộ, tôi sử dụng Llama.cpp thông qua container Podman. Lệnh chạy như sau:

podman run --rm -it --name qwen-coder --device /dev/kfd --device /dev/dri \
--security-opt label=disable --group-add keep-groups -e HSA_OVERRIDE_GFX_VERSION=11.5.0 \
-p 8080:8080 -v /some_path/models:/models:z  ghcr.io/ggml-org/llama.cpp:server-rocm \
-m /models/qwen3.6/model.gguf -ngl 99 -c 327680 --host 0.0.0.0 --port 8080 \
--flash-attn on --no-mmap

Việc sử dụng flash-attn giúp tăng tốc đáng kể suy luận. Bạn có thể dễ dàng tải mô hình Qwen và chuyển đổi sang định dạng gguf bằng các script hỗ trợ có sẵn trong repo llama.cpp kết hợp với PyTorch ROCm đã cài ở trên.

Tổng kết

Những ấn tượng đầu tiên của tôi về Strix Halo và ROCm khá tích cực: "cho đến lúc này, mọi thứ đang hoạt động tốt". Tôi đã có thể chạy thử PyTorch và vận hành mô hình Qwen3.6 trên Llama.cpp với cửa sổ ngữ cảnh (context window) lớn. Dù vẫn còn một số góc cạnh cần mài mòn về mặt cấu hình và driver, nhưng tiềm năng mà hệ thống này mang lại cho các lập trình viên và kỹ sư AI là hoàn toàn xứng đáng.

Bài viết được tổng hợp và biên soạn bằng AI từ các nguồn tin tức công nghệ. Nội dung mang tính tham khảo. Xem bài gốc ↗