2
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

環境

RHEL互換OS
AMD Ryzen7 5700X
DDR4 3200Mhz Mem24GB(8x3)
Intel ARC A580(Vram8GB)

Intel ARC A580 について簡単にまとめます。

TSMC N6プロセスで製造された第一世代GPUです
Xeコアを24個搭載し、RTXとAV1に対応している安価なGPUです。
以前まではこの価格帯ではIntel ARCだけでした
帯域幅512GB/s
GDDR6世代のVRAM8GB搭載
消費電力185Wのなかなかの大食いなのが痛いですね、、

目的

Zetaというアプリ人気ですよね。aiとロールプレイできるみたいな趣旨のアプリです。
この記事はzetaをローカルで再現する場合、勝機はあるのかという検証です。
結論:8Bモデルでも十分実用的です。
難として、わざわざIntel ARCでやる意味は薄いですね、
#----

スタック

OneAPI

oneAPIについてわかりやすい記事がありましたのでおいてきます。

llama.cpp
KoboldCPP

使用させていただいたモデル

構築に入ります

RENDER_GIDの確認を行います。

user01@localhost:~/vllm$ echo $RENDER_GID
105

私の環境では105でした。

RHELのセキュリティを緩めておきます。

sudo firewall-cmd --permanent --add-port=5001/tcp
sudo firewall-cmd --reload

コンテナの作成に移りましょう。

podman run --rm -it \
      --device /dev/dri \
      --group-add 105 \
      --ipc=host \
      --security-opt label=disable \
      -p 5001:5001 \
      --name llm-arc-container \
      intel/oneapi-basekit:latest /bin/bash

#### コンテナ内でドライバーをインストールします。
apt-get update && apt-get install -y \
    intel-level-zero-gpu \
    intel-opencl-icd

コンテナ内でGPUが認識されていることを確認

root@1515c0197adf:/# ls /dev/dri/
card1  renderD128
root@1515c0197adf:/# sycl-ls
[level_zero:gpu][level_zero:0] Intel(R) oneAPI Unified Runtime over Level-Zero, Intel(R) Arc(TM) A580 Graphics 12.55.8 [1.15.38308+1]
[opencl:cpu][opencl:0] Intel(R) OpenCL, AMD Ryzen 7 5700X 8-Core Processor              OpenCL 3.0 (Build 0) [2026.20.3.0.19_160000.xmain-hotfix]
[opencl:gpu][opencl:1] Intel(R) OpenCL Graphics, Intel(R) Arc(TM) A580 Graphics OpenCL 3.0 NEO  [26.18.38308.1]

必要なツールを入れておきましょう。

source /opt/intel/oneapi/setvars.sh

apt-get update && apt-get install -y \
    git \
    cmake \
    g++ \
    make \
    intel-oneapi-compiler-dpcpp-cpp

リポジトリをもってきます。

git clone https://github.com/ggerganov/llama.cpp
cd llama.cpp

mkdir build && cd build
source /opt/intel/oneapi/setvars.sh
cmake .. -DGGML_SYCL=ON -DCMAKE_C_COMPILER=icx -DCMAKE_CXX_COMPILER=icpx -DCLBlast_DIR=/opt/intel/oneapi/
#### make -j8 なら8コアという具合に使用できます。
全コアを使用する
make -j$(nproc)

llama.cppがIntel Arcを認識しているか確認

root@1515c0197adf:/llama.cpp/build# ls -F
CMakeCache.txt         Makefile  cmake_install.cmake    ggml/                llama.pc  tools/
CMakeFiles/            Testing/  common/                license.cpp          pocs/     vendor/
CTestTestfile.cmake    app/      compile_commands.json  llama-config.cmake   src/
DartConfiguration.tcl  bin/      examples/              llama-version.cmake  tests/
root@1515c0197adf:/llama.cpp/build# ./bin/llama-ls-sycl-device
Found 1 SYCL devices:
|  |                   |                                       |       |Max    |        |Max  |Global |                     |
|  |                   |                                       |       |compute|Max work|sub  |mem    |                     |
|ID|        Device Type|                                   Name|Version|units  |group   |group|size   |       Driver version|
|--|-------------------|---------------------------------------|-------|-------|--------|-----|-------|---------------------|
| 0| [level_zero:gpu:0]|                Intel Arc A580 Graphics|  12.55|    384|    1024|   32|  8096M|         1.15.38308+1|
SYCL Optimization Feature:
|ID|        Device Type|Reorder|
|--|-------------------|-------|
| 0| [level_zero:gpu:0]|      Y|

何もでない場合認識していません。

CLIでモデルを動かす

モデルをもってくる

wget https://huggingface.co/bartowski/L3-8B-Stheno-v3.2-GGUF/resolve/main/L3-8B-Stheno-v3.2-Q4_K_M.gguf

動かす際のコマンドです

#./bin/llama-cli -m <モデル名>.gguf -p "" -ngl 99 --sycl 0

起動

ONEAPI_DEVICE_SELECTOR=level_zero:gpu ./bin/llama-cli -m L3-8B-Stheno-v3.2-Q4_K_M.gguf -ngl 99

Promptが処理速度

Generationが生成速度です
目安としては人間が読む速度の約2〜4倍のスピードらしいです
zetaと体感差はありません。広告がない分こちらに勝機ありです

> おはよーー!!
おはようございます!😊
[ Prompt: 15.9 t/s | Generation: 13.0 t/s ]

KoboldCPPの準備

一度カレントディレクトリに戻ります

リポジトリを入れます
いちおう仮想環境で動かします。

cd /
git clone https://github.com/LostRuins/koboldcpp
cd koboldcpp
apt-get update && apt-get install -y python3-pip

apt install python3.12-venv
python3 -m venv venv
source venv/bin/activate
pip3 install -r requirements.txt

推論エンジンをビルドする

SYCLがCUDAみたいなイメージです

make LLAMA_SYCL=

起動

ONEAPI_DEVICE_SELECTOR=level_zero:gpu \
python3 koboldcpp.py \
  --model /llama.cpp/build/L3-8B-Stheno-v3.2-Q4_K_M.gguf \
  --gpulayers 99 \
  --port 5001 \
  --host 0.0.0.0

実際にブラウザからキャラクターを作成して確認しましょう

おつかれさまでした!!

2
0
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
2
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?