Intel Arc A770 の Ollama のパフォーマンスと比較するため、AMD Radeon RX 7600 XT で計測してみました。
目次
概要
VRAM 16GB のグラフィックボードでは最安値が Intel Arc A770 で、次点が AMD Radeon RX 7600 XT です。
- 価格.com - SPARKLE SPARKLE Intel Arc A770 ROC OC Edition SA770R-16GOC [PCIExp 16GB] 価格推移グラフ
- 価格.com - ASRock Radeon RX 7600 XT Challenger 16GB OC [PCIExp 16GB] 価格推移グラフ
ところで Intel Arc B580 (12GB) の画像生成性能がかなり高いという情報があり、その中で Intel Arc A770と AMD Radeon RX 7600 XT も比較されています。
これを見ると、Intel Arc A770 のパフォーマンスは AMD Radeon RX 7600 XT の 2 倍くらいはあるようです。
それでは LLM ではどうかと思い調べてみたところ、touch-sp さんの記事で計測用のスクリプトと結果が掲載されています。
- 【Intel Arc A770】IPEX-LLMを使ってOllamaを実行した時のベンチマーク - パソコン関連もろもろ
- 【Intel Arc A770】IPEX-LLMでOllamaを実行する環境を新規に構築したら以前と比較して処理速度が向上していました。 - パソコン関連もろもろ
これに合わせて AMD 環境でも計測してみました。
環境
- OS: Windows 11 Home [10.0.26100.2605]
- RAM: DDR4-3200 32GB
- CPU: AMD Ryzen 5 5600X 6-Core Processor (3.70GHz)
- GPU: AMD Radeon RX 7600 XT (VRAM 16GB)
- Ollama: 0.5.1
測定結果比較
- 単位: tps (tokens per second)
- CPU: 11700 (Intel Core i7 11700), 5600X (Ryzen 5 5600X)
- GPU: A770 (Intel Arc A770), 7600 XT (AMD Radeon RX 7600 XT)
11700 と A770 は touch-sp さんのブログからの引用で、A770 の結果は新旧の両方を掲載します。
Model | Size | 11700 | 5600X | A770 (1) | A770 (2) | 7600 XT |
---|---|---|---|---|---|---|
phi3 (3.8b) | 2.4GB | 14.11 | 15.32 | 52.11 | 71.59 | |
phi3:14b-medium-4k-instruct-q4_K_M | 8.6GB | 4.21 | 4.76 | 19.83 | 25.41 | 24.53 |
codellama:13b-python-q6_K | 10GB | 3.39 | 3.70 | 25.70 | 25.34 | 20.07 |
aya:35b-23-q4_0 | 20GB | 1.87 | 3.42 | 3.98 | 3.11 |
モデルが大きくなるほど A770 に優位性が出るようです。
※ aya:35b-23-q4_0 は VRAM 16 GB を超えているため速度が大きく低下します。
【追記】 OLLAMA_NUM_GPU
は Intel GPU 用の IPEX-LLM の設定のため、AMD GPU では無効です。
生成例
codellama:13b-python-q6_K
how to make gui with 3 buttons in pyside6
I am using pyside6 and trying to create a simple GUI with 3 buttons. I have done it before but now cannot remember the commands. Answer: \begin{code} import sys from PySide2 import QtWidgets, QtCore, QtGui class Window(QtWidgets.QMainWindow): def __init__(self): super().__init__() self.button1 = QtWidgets.QPushButton('Button 1') self.button2 = QtWidgets.QPushButton('Button 2') self.button3 = QtWidgets.QPushButton('Button 3') self.setCentralWidget(self.button1) self.layout = QtWidgets.QVBoxLayout() self.layout.addWidget(self.button2) self.layout.addWidget(self.button3) self.widget = QtWidgets.QWidget() self.widget.setLayout(self.layout) self.setGeometry(100, 100, 400, 200) self.show() app = QtWidgets.QApplication([]) win = Window() sys.exit(app.exec_()) \end{code}