Với mục tiêu nâng cấp máy chủ gia đình để đạt hiệu suất cao hơn cùng mức tiêu thụ điện năng thấp hơn khi không hoạt động, tôi đã quyết định thử nghiệm những chiếc card đồ họa khác nhau. Trong khi GTX 1070 Ti vẫn là một lựa chọn đáng tin cậy, sự xuất hiện của Intel Arc A770 và AMD Radeon RX 7900 XTX đã khơi dậy sự tò mò. Đặc biệt, tôi muốn xem liệu Intel Arc A770 trên TrueNAS sẽ thể hiện như thế nào, nhất là khi nhu cầu xử lý các mô hình ngôn ngữ lớn (LLM) ngày càng tăng. Sau một tuần tích hợp A770 vào máy TrueNAS của mình, tôi có nhiều điều để chia sẻ về trải nghiệm này.
Thực tế, không có quá nhiều thay đổi triệt để so với dự đoán ban đầu. Dung lượng VRAM 16GB chắc chắn là một điểm cộng lớn nhất, giúp tôi xử lý các LLM đòi hỏi nhiều bộ nhớ hơn. Tuy nhiên, hành trình này cũng đi kèm với một số thách thức nhất định, chủ yếu đến từ việc các ứng dụng tìm kiếm môi trường thực thi (runtime) của Nvidia lại gặp một GPU Intel Arc.
Quá Trình Di Chuyển GPU: Những Thách Thức Ban Đầu
Sự “Bối Rối” Của Các Ứng Dụng Docker
Khi TrueNAS được cấu hình ban đầu với một card đồ họa Nvidia, nó thường sử dụng Nvidia Docker runtime mặc định cho một số ứng dụng nếu driver được kích hoạt. Tuy nhiên, file docker-compose
này không tự động cập nhật khi khởi động lại sau khi chuyển sang một thương hiệu GPU khác. Điều này dẫn đến việc nhiều container bị lỗi.
Tôi đã nhanh chóng nhận ra đây là vấn đề liên quan đến Nvidia Docker runtime, dựa trên kinh nghiệm trước đó của mình. Nhật ký app_lifecycle.log
đã xác nhận điều này với thông báo: stderr: Auto-detected mode as 'legacy'\nnvidia-container-cli: initialization error: nvml error: driver not loaded: unknown
.
Các container ứng dụng gặp lỗi trên TrueNAS sau khi chuyển đổi card đồ họa sang Intel Arc A770, thể hiện vấn đề về runtime Docker.
Tương tự, tất cả các ứng dụng được triển khai trong Dockge của tôi đều mặc định sử dụng Nvidia runtime. Đối với những ứng dụng này, tôi có thể khắc phục bằng cách đơn giản thêm flag "runtime: runc"
vào mỗi compose file của chúng. Tuy nhiên, với các ứng dụng chạy trực tiếp trong giao diện TrueNAS, việc này không dễ dàng như vậy. Mặc dù có thể sửa đổi từng file docker-compose
của ứng dụng, tôi đã tìm ra một phương pháp đơn giản hơn: cập nhật ứng dụng đó trong TrueNAS. Việc này sẽ loại bỏ runtime Nvidia cũ và cho phép chúng khởi động bình thường.
Giải pháp này phụ thuộc vào việc có bản cập nhật cho ứng dụng của bạn, nhưng nó đã giải quyết vấn đề và giúp tôi triển khai lại các ứng dụng bị lỗi ngay từ lần khởi động đầu tiên. May mắn thay, tôi đã quen thuộc với Nvidia runtime trên TrueNAS từ trước, nếu không có lẽ tôi đã mất rất nhiều thời gian để tìm hiểu.
Thiết Lập Jellyfin và Các Ứng Dụng Khác: Đơn Giản Bất Ngờ
Ngoài vấn đề runtime Docker, quá trình di chuyển nhìn chung khá suôn sẻ. Không có quá nhiều thay đổi cần thực hiện, điều này khiến tôi khá ngạc nhiên. Cập nhật Jellyfin để sử dụng GPU Intel Arc A770 rất đơn giản từ giao diện TrueNAS, chỉ cần chọn tùy chọn “Passthrough available (non-NVIDIA) GPUs” trong cài đặt ứng dụng.
Giao diện TrueNAS hiển thị tùy chọn passthrough GPU không phải Nvidia, minh họa cách cấu hình Intel Arc A770 cho các ứng dụng như Jellyfin.
Ngay cả với Immich, tất cả những gì cần làm là chuyển từ ảnh Docker CUDA Machine Learning
sang ảnh mặc định. Tôi không phải trải qua bất kỳ quá trình gỡ lỗi phức tạp nào cho các ứng dụng của mình. Bất cứ thứ gì không hoạt động đều có lý do rõ ràng, và tôi chỉ cần cập nhật ứng dụng hoặc thay đổi ảnh Docker được sử dụng để chúng hoạt động như trước.
Việc thiết lập chức năng mã hóa (transcoding) của Jellyfin cũng không quá khó khăn. Tôi chỉ cần thay đổi tùy chọn tăng tốc phần cứng sang Intel QuickSync, sau đó chọn thiết bị là /dev/dri/renderD128
(thông tin này thường được hướng dẫn ngay bên dưới nếu bạn có hệ thống đa GPU). Mọi thứ hoạt động trơn tru ngay lập tức, và tôi có thể bật nhiều tùy chọn transcoding hơn so với trước đây.
Tuy nhiên, tôi sớm nhận ra một vấn đề khi cố gắng xem nội dung trên Jellyfin qua trình duyệt web của mình. Có vẻ như có một lỗi trong driver GPU Intel Arc khiến trình duyệt ngừng phát lại sau vài giây với lỗi phát lại nghiêm trọng. Mã hóa video vẫn hoạt động tốt trên điện thoại, TV và laptop của tôi, vậy điều gì đang xảy ra? Hóa ra, nó thậm chí còn hoạt động trong ứng dụng Jellyfin client. Gợi ý tốt nhất mà tôi có thể tìm thấy là nó liên quan đến HDR tone mapping, nhưng tôi chưa có thời gian để kiểm tra bản sửa lỗi. Dù sao thì ứng dụng Jellyfin khá tốt, vì vậy tôi không ngại sử dụng nó trong thời gian này.
Sức Mạnh Mới Cho LLM: Lý Do Chính Của Sự Chuyển Đổi
VRAM 16GB: Lợi Thế Quyết Định Cho Mô Hình Ngôn Ngữ Lớn
GTX 1070 Ti của tôi đã làm khá tốt hầu hết mọi tác vụ mà tôi giao cho nó. Mã hóa video tuyệt vời, tiêu thụ điện năng thấp, và khả năng của nó đủ tốt cho các tác vụ hạn chế sử dụng GPU. Nhược điểm duy nhất, nếu có thể gọi là vậy, là thiếu VRAM. GTX 1070 Ti chỉ có 8GB VRAM, trong khi Intel Arc A770 sở hữu 16GB. Tôi đã sử dụng máy chủ gia đình để chạy các mô hình ngôn ngữ lớn cục bộ (local LLM) một thời gian, phục vụ cho các tự động hóa trong Home Assistant và tạo văn bản cho thông báo, phản hồi giọng nói, v.v. Tôi cũng sử dụng một mô hình nhúng (embedding model) với Blinko, điều này thực sự đã đẩy giới hạn VRAM của 1070 Ti.
Intel Arc A770, với 16GB VRAM, mang lại cho tôi khả năng chạy các mô hình có kích thước gấp đôi hoặc với ngữ cảnh (context) lớn hơn đáng kể. Mặc dù không phải là cắm và chạy như trên card Nvidia, nhưng nó chỉ yêu cầu một chút tinh chỉnh để hoạt động. Bản thân Ollama không hỗ trợ GPU Intel Arc trực tiếp, mặc dù llama.cpp (mà Ollama gói gọn và cung cấp các điểm cuối cần thiết cho hầu hết người dùng) có hỗ trợ. Cuối cùng, tôi đã làm cho nó hoạt động với file Docker Compose sau trong Dockge. Bạn sẽ cần điều chỉnh một số phần (ít nhất là volumes) nếu muốn chạy nó trên card Arc của riêng mình.
services:
ollama-intel-arc:
image: intelanalytics/ipex-llm-inference-cpp-xpu:latest
container_name: ollama-intel-arc
restart: unless-stopped
devices:
- /dev/dri:/dev/dri
volumes:
- /mnt/Storage/OllamaArc:/root/.ollama
ports:
- 11434:11434
environment:
- no_proxy=localhost,127.0.0.1
- OLLAMA_HOST=0.0.0.0
- DEVICE=Arc
- OLLAMA_INTEL_GPU=true
- OLLAMA_NUM_GPU=999
- ZES_ENABLE_SYSMAN=1
command: sh -c 'mkdir -p /llm/ollama && cd /llm/ollama && init-ollama && exec ./ollama serve'
privileged: true
shm_size: 16g
open-webui:
image: ghcr.io/open-webui/open-webui:latest
container_name: open-webui-arc
volumes:
- /mnt/Storage/OllamaArc/open-webui:/app/backend/data
depends_on:
- ollama-intel-arc
ports:
- 4040:8080
environment:
- ENABLE_OPENAI_API=False
- ENABLE_OLLAMA_API=True
extra_hosts:
- host.docker.internal:host-gateway
restart: unless-stopped
volumes:
ollama-volume: {}
open-webui-volume: {}
networks: {}
Open Web UI hiển thị hoạt động của Ollama, chạy mô hình ngôn ngữ lớn trên Intel Arc A770 đã được cấu hình trên TrueNAS.
Triển Khai Ollama Với Intel Arc A770: Hướng Dẫn Chi Tiết
Với cấu hình trên, bạn có thể triển khai và chạy LLM cục bộ của riêng mình với API tương thích OpenAI để sử dụng trong các phần mềm như Home Assistant. Tôi đã tích hợp nó và mọi thứ hoạt động hoàn hảo. Cấu hình này sử dụng ảnh ipex-llm-inference-cpp-xpu
, trong đó IPEX LLM là thư viện tăng tốc LLM cho GPU Intel. Nếu đầu ra của “sycl-ls” trong shell của container trông giống như hình bên dưới, thì bạn đã sẵn sàng.
Kết quả từ lệnh sycl-ls trong container Ollama, xác nhận hoạt động thành công của Intel Arc A770 với IPEX LLM.
Hiệu Suất Ấn Tượng Của Arc A770 Cho LLM
Thành thật mà nói, tôi thực sự ấn tượng với hiệu suất của Arc A770 cho tác vụ này. Tôi không chắc chắn hoàn toàn sẽ mong đợi điều gì, nhưng cả Qwen3:14B và Deepseek-R1-0528:14B đều hoạt động hoàn hảo. Đầu ra văn bản rõ ràng tốt hơn so với những gì tôi thấy trên các mô hình nhỏ hơn nhiều, và quá trình tạo phản hồi cũng nhanh hơn rất nhiều. Với Qwen 3 14B, một lời nhắc 18 token được nhập với tốc độ 63.73 token mỗi giây, và phản hồi đạt 23.19 token mỗi giây. Con số này nhanh hơn đáng kể so với tốc độ một chữ số mà tôi từng thấy với các mô hình tương đương khi sử dụng 1070 Ti.
Những Hạn Chế Cần Lưu Ý
Tiêu Thụ Điện Năng: Điểm Trừ Lớn
Tuy nhiên, có một nhược điểm lớn của bản nâng cấp này, đó là mức tiêu thụ điện năng. Intel Arc A770 chạy khá nóng và sử dụng nhiều năng lượng, ngay cả khi không hoạt động. Trong khi GTX 1070 Ti có thể tiêu thụ chỉ 9W ở chế độ idle, chiếc card Intel này lại ở mức khoảng 30-40W khi không tải. Mặc dù khả năng của nó vượt xa 1070 Ti ở nhiều khía cạnh, tôi không quá chắc chắn liệu việc tăng chi phí điện năng có đáng giá chỉ để chạy các mô hình ngôn ngữ lớn hơn và nhanh hơn hay không.
Hình ảnh cận cảnh card đồ họa Intel Arc A770, nhấn mạnh thiết kế và kích thước của chiếc GPU này.
Khi tính toán, mức tăng chi phí năng lượng khi idle là khoảng €0.20 mỗi ngày. Con số này sẽ tăng lên đáng kể khi tải nặng, và với việc tôi sử dụng nó thường xuyên hơn 1070 Ti, hóa đơn tiền điện có thể tăng thêm hơn một euro mỗi ngày, tương đương thêm €60 mỗi hai tháng.
Ngược lại, có rất nhiều API LLM có sẵn trên thị trường với chi phí cực kỳ thấp, hoặc thậm chí miễn phí với giới hạn sử dụng hàng ngày trong trường hợp của Google Gemini. Chắc chắn, tôi cũng nhận được giải mã AV1, nhưng liệu điều đó có thực sự đáng giá không? Tôi dự định sẽ sớm thử nghiệm AMD Radeon 7900 XTX vì dung lượng VRAM còn lớn hơn và để trải nghiệm ROCm. Biết đâu, cuối cùng tôi có thể quay lại GTX 1070 Ti. Tôi đã thấy nhiều người nói rằng 7900 XTX của họ tiêu thụ từ 15W đến 30W khi idle trên một máy Linux, con số này nghe có vẻ chấp nhận được hơn nhiều, đặc biệt nếu nó ở mức thấp hơn trong phạm vi đó.
Kết Luận: Intel Arc A770 Có Xứng Đáng Với Máy Chủ TrueNAS Của Bạn?
Nhìn chung, Intel Arc A770 là một card đồ họa tuyệt vời cho TrueNAS. Tôi thực sự ấn tượng với nó, và mặc dù ban đầu tôi có kỳ vọng thấp, tôi đã nghĩ rằng nó sẽ gặp khó khăn khi thực hiện nhiều tác vụ mà tôi thường cần GPU. Tôi đã lo lắng rằng mã hóa video Jellyfin (mà tôi sử dụng rất nhiều khi vắng nhà) sẽ không còn hoạt động, và tôi không biết phải mong đợi điều gì khi nói đến Ollama. Đúng là tôi đã phải khắc phục một số vấn đề liên quan đến các ứng dụng sử dụng runtime Nvidia cũ, nhưng đó là một vấn đề của TrueNAS, không phải của Intel. Đối với một card đồ họa có thể tìm thấy với giá rẻ hơn nhiều so với các lựa chọn Nvidia tương đương, nó chắc chắn hoàn thành tốt công việc. Không có CUDA, nhưng với mức độ được ưa chuộng của CUDA nói chung, tôi đã mong đợi một trải nghiệm tồi tệ hơn nhiều.
Nếu bạn đang tìm kiếm một giải pháp GPU hiệu quả về chi phí để tăng cường khả năng xử lý LLM và mã hóa video trên máy chủ TrueNAS của mình, Intel Arc A770 chắc chắn là một ứng cử viên đáng cân nhắc. Hãy chia sẻ kinh nghiệm của bạn nếu bạn cũng đã thử nghiệm GPU Intel Arc trên hệ thống máy chủ gia đình!