Image default
Máy Tính

Trải Nghiệm Intel Arc A770 Trên Home Server Với TrueNAS và Sức Mạnh AI Cục Bộ

Trong hành trình nâng cấp máy chủ cá nhân (home server), mục tiêu của tôi là thay thế dần các linh kiện hiện có bằng những thành phần mạnh mẽ hơn, song vẫn duy trì mức tiêu thụ điện năng thấp ở chế độ nhàn rỗi. Sau một thời gian dài sử dụng GTX 1070 Ti, tôi đã có dịp thử nghiệm cả Intel Arc A770 và AMD Radeon RX 7900 XTX. Với sự tò mò về hiệu năng của Intel, tôi quyết định đưa Arc A770 vào hệ thống TrueNAS của mình trong khoảng một tuần để đánh giá.

Thực tế, không có quá nhiều thay đổi lớn, ngoại trừ việc bộ nhớ VRAM 16GB của A770 mang lại lợi thế đáng kể. Đây cũng là yếu tố “cải thiện” rõ rệt nhất. Ngoài ra, việc tôi ngày càng quan tâm đến các mô hình ngôn ngữ lớn (LLM) đòi hỏi nhiều VRAM hơn, cùng với những thách thức khi các ứng dụng tìm kiếm runtime của Nvidia nhưng lại gặp phải GPU Arc, đã thúc đẩy tôi tìm cách giải quyết.

Quá Trình Chuyển Đổi Hệ Thống: Những “Khúc Mắc” Ban Đầu

Các Ứng Dụng “Bối Rối” Với Runtime Mới

Khi một hệ thống TrueNAS ban đầu được cấu hình với GPU Nvidia, nó thường mặc định sử dụng Nvidia Docker runtime cho một số ứng dụng khi driver được kích hoạt. Tuy nhiên, khi chuyển sang một card đồ họa từ hãng khác, file cấu hình docker-compose của các ứng dụng này không được cập nhật khi khởi động, dẫn đến việc nhiều container bị crash. Tôi nhanh chóng nhận ra vấn đề nằm ở Nvidia Docker runtime (do đã có kinh nghiệm với nó khi triển khai ứng dụng trong Dockge trước đây). Việc kiểm tra file /var/log/app_lifecycle.log đã xác nhận điều này:

stderr: Auto-detected mode as 'legacy'nnvidia-container-cli: initialization error: nvml error: driver not loaded: unknown

Tình trạng tương tự cũng xảy ra với các ứng dụng triển khai qua Dockge; hầu hết chúng đều mặc định sử dụng Nvidia runtime, trong khi không phải mọi ứng dụng TrueNAS gốc đều như vậy. Đối với các ứng dụng trong Dockge, tôi có thể dễ dàng thêm cờ “runtime: runc” vào các file compose của chúng. Tuy nhiên, việc này phức tạp hơn đối với các ứng dụng chạy trực tiếp trên giao diện TrueNAS UI. Mặc dù có thể sửa đổi file docker-compose của từng ứng dụng, tôi đã tìm ra một phương pháp đơn giản hơn nhiều: cập nhật ứng dụng đó trong TrueNAS. Thao tác này sẽ loại bỏ Nvidia runtime và cho phép ứng dụng khởi động bình thường.

Nhiều container bị lỗi trên TrueNAS sau khi chuyển sang Intel Arc A770Nhiều container bị lỗi trên TrueNAS sau khi chuyển sang Intel Arc A770

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úp tôi khắc phục vấn đề và 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 là tôi đã quen thuộc với Nvidia runtime trên TrueNAS, nếu không tôi sẽ hoàn toàn bế tắc. Lỗi trong file app_lifecycle.log có thể đã định hướng đúng, nhưng kinh nghiệm trước đó đã giúp tôi hiểu và sửa lỗi trong chưa đầy năm phút.

Điều Chỉnh Cấu Hình và Các Ứng Dụng Khác

Ngoài vấn đề trên, quá trình chuyển đổi tương đối suôn sẻ. Không có quá nhiều thay đổi lớn, điều này khá ngạc nhiên. Việc cập nhật Jellyfin để sử dụng GPU Intel rất đơn giản từ giao diện TrueNAS UI, chỉ cần chọn tùy chọn “Passthrough available (non-NVIDIA) GPUs” trong cài đặt ứng dụng.

Cấu hình chuyển GPU non-Nvidia trên TrueNASCấu hình chuyển GPU non-Nvidia trên TrueNAS

Ngay cả với Immich, tất cả những gì cần làm là chuyển từ image CUDA Machine Learning sang image mặc định, và tôi không phải trải qua bất kỳ quy trình gỡ lỗi phức tạp nào cho các ứng dụng của mình. Bất kỳ thứ gì không hoạt động đều có lý do rõ ràng, và tất cả những gì tôi cần làm là cập nhật ứng dụng hoặc thay đổi image được sử dụng để mọi thứ hoạt động như trước.

Việc thiết lập transcoding Jellyfin cũng không quá khó khăn. Tôi chỉ cần thay đổi bộ tăng tốc phần cứng sang Intel QuickSync, đổi thiết bị thành /dev/dri/renderD128 (một hướng dẫn được cung cấp ngay bên dưới nếu bạn có hệ thống đa GPU), và thế là xong. Mọi thứ hoạt động ngay lập tức, và tôi có thể bật nhiều tùy chọn transcoding hơn trước.

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 từ trình duyệt web trên máy tính. Có vẻ như có một lỗi trong driver GPU Intel Arc khiến trình duyệt của tôi dừng phát lại sau vài giây với lỗi phát lại nghiêm trọng. Transcoding 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 tốt trong ứng dụng Jellyfin client. Gợi ý tốt nhất tôi tìm thấy cho rằng nó liên quan đến HDR tone mapping, nhưng tôi chưa có thời gian để kiểm tra cách khắc phục. Dù sao, ứng dụng Jellyfin khá tốt, nên tôi không ngại sử dụng nó trong thời gian này.

Lý Do Chính Cho Cuộc Nâng Cấp: Sức Mạnh LLM (AI Cục Bộ)

Nhu Cầu VRAM Lớn Hơn Cho Mô Hình Ngôn Ngữ Lớn (LLM)

GTX 1070 Ti của tôi vẫn hoạt động tốt cho hầu hết mọi tác vụ. Transcoding tuyệt vời, tiêu thụ điện năng thấp và khả năng của nó quá đủ cho các tác vụ sử dụng GPU hạn chế mà tôi chạy. Điểm trừ 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 có 16GB. Tôi đã sử dụng home server của mình cho các mô hình ngôn ngữ lớn (LLM) cục bộ trong một thời gian, cung cấp năng lượng cho một số tác vụ 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. Ngoài ra, tôi còn sử dụng mô hình nhúng với Blinko, điều này thực sự đẩy giới hạn VRAM.

Với 16GB VRAM, Intel Arc A770 cho phép tôi chạy các mô hình lớn gấp đôi hoặc với ngữ cảnh (context) lớn hơn đáng kể. Mặc dù không “cắm là chạy” dễ dàng như trên card Nvidia, nó vẫn đòi hỏi một chút tinh chỉnh để hoạt động. Ollama tự bản thân không hỗ trợ GPU Intel Arc, nhưng llama.cpp (thư viện mà Ollama về cơ bản là một lớp bọc để lộ các endpoint cần thiết cho hầu hết người dùng) thì có. Cuối cùng, tôi đã làm cho nó hoạt động với file Docker Compose sau đây trong Dockge, mặc dù bạn sẽ cần điều chỉnh một số phần (ít nhất là các volume) nếu muốn chạy nó trên card Arc của riêng mình.

Triển Khai Ollama Với Intel Arc A770: Công Thức Thành Công

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: {}

Với cấu hình này, bạn có thể triển khai và chạy mô hình 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 image ipex-llm-inference-cpp-xpu, trong đó IPEX LLM là thư viện tăng tốc LLM cho GPU Intel. Nếu kết quả từ lệnh “sycl-ls” trong shell của container giống như trên (chỉ ra sự hiện diện của thiết bị Intel), thì bạn đã sẵn sàng.

Hiệu Năng Vượt Trội Cho AI

Giao diện Open Web UI và Ollama đang chạy trên Intel Arc A770Giao diện Open Web UI và Ollama đang chạy trên Intel Arc A770

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 mình 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 ở các mô hình nhỏ hơn nhiều, và tốc độ tạo văn bản cũng nhanh hơn rất nhiều. Với Qwen 3 14B, một lời nhắc 18 token được xử lý với tốc độ 63.73 token mỗi giây, và phản hồi được tạo ra với tốc độ 23.19 token mỗi giây. Con số này nhanh hơn nhiều so với tốc độ một chữ số mà tôi thấy ở các mô hình tương đương khi sử dụng 1070 Ti.

Không Phải Mọi Thứ Đều Hoàn Hảo: Chi Phí Điện Năng Là Vấn Đề

Mức Tiêu Thụ Điện Năng Ở Chế Độ Nhàn Rỗi Cao Hơn Đáng Kể

Card đồ họa Intel Arc A770Card đồ họa Intel Arc A770

Tuy nhiên, có một nhược điểm lớn đối với bản nâng cấp này, đó là mức tiêu thụ điện năng. Intel Arc A770 hoạt động khá nóng và tiêu thụ nhiều năng lượng, ngay cả ở chế độ nhàn rỗi. Trong khi GTX 1070 Ti có thể nhàn rỗi chỉ với 9W, thì card Intel này tiêu thụ khoảng 30-40W ở chế độ nhàn rỗi. Mặc dù khả năng của nó vượt trội hơn 1070 Ti ở nhiều khía cạnh, tôi không chắc liệu việc tăng chi phí 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. Chi phí năng lượng tăng thêm, theo tính toán của tôi, là thêm khoảng 0.20 Euro mỗi ngày ở chế độ nhàn rỗi. Con số này tăng lên đáng kể khi hoạt động dưới tải, và vì tôi sẽ sử dụng nó thường xuyên hơn 1070 Ti, có khả năng hóa đơn tiền điện của tôi sẽ tăng thêm hơn một euro mỗi ngày. Điều đó tương đương với thêm 60 Euro chi phí năng lượng mỗi hai tháng.

Ngược lại, có rất nhiều API LLM có sẵn 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 có khả năng giải mã AV1, nhưng liệu nó có thực sự đáng giá không? Tôi sẽ sớm thử nghiệm AMD Radeon 7900 XTX vì VRAM của nó còn lớn hơn và để trải nghiệm ROCm. Nhưng ai biết được, có thể cuối cùng tôi sẽ quay lại GTX 1070 Ti. Tôi đã thấy mọi người nói rằng họ nhận được mức tiêu thụ từ 15W đến 30W khi RX 7900 XTX của họ nhàn rỗi trên máy Linux, điều này nghe có vẻ chấp nhận được hơn đối với tôi, đặc biệt nếu nó ở mức thấp hơn trong phạm vi đó.

Kết Luận

Nhìn chung, 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 cho. Tôi lo sợ rằng tính năng Jellyfin transcoding sẽ không còn hoạt động (mà tôi thường xuyên sử dụng khi ở xa nhà), và tôi không biết phải mong đợi điều gì khi nói đến Ollama. Mặc dù tôi đã phải khắc phục một số lỗi liên quan đến các ứng dụng sử dụng Nvidia runtime cũ, nhưng đó là vấn đề của TrueNAS chứ không phải của Intel. Đối với một chiếc card có thể tìm thấy với giá rẻ hơn nhiều so với các card Nvidia tương đương, nó chắc chắn hoàn thành tốt công việc. Mặc dù không có CUDA, nhưng với việc CUDA được đánh giá cao nói chung, tôi đã mong đợi một trải nghiệm tệ hơn nhiều.

Related posts

Immich: Giải Pháp Tự Lưu Trữ Ảnh Cá Nhân Vượt Trội Hơn Google Photos và iCloud

Administrator

Tích Hợp Home Assistant qua File Cấu Hình: Khám Phá Sức Mạnh Tiềm Ẩn

Administrator

Nvidia Chuyển Mình: Vì Sao Game Thủ Không Còn Là Ưu Tiên Hàng Đầu?

Administrator