Amazonのアソシエイトとして、当ブログは適格販売により収入を得ています。
いったい何を言っているんだと思うかもしれませんが、諸事上により「Pro B60」を処分して、今更ながらA750を購入しました。
引っ越しの為、いろいろと始末しなくてはならなくなった影響です。
そもそもIntel Arcを使っている人はコスパを重視する傾向がありますので、
「B60のような高級品は自分にも自分のブログにも合わなかった。」
そういうことにしておいて下さい、お願いします。
ただ、torch.xpuを利用してpythonスクリプトを改変したりするぶんには影響はないので、これからも「Intel Arcで動かしてみた」的な記事は書き続けます。
今回はA750をUbuntuで使う際、VRAM使用量やファン回転数、消費電力を表示するモニタリングソフトを作ってみましたので公開します。
多分他のAシリーズでも使えると思うので、持っている人は試してみてください。
それではいってみましょう。
まずxpumanagerをダウンロード、インストールする
VRAMの使用量とGPUのクロック周波数を取得するのに必要になります。
逆に言うと、それ以外はA750では取得できませんでした。




以上で「xpumanager」のインストールは終了です。
「/sys/class/hwmon」の値を利用する
というわけで上に書いた「それ以外」を「/sys/class/hwmon」から取得します。
#!/bin/bash
DEVICE_ID=0
INTERVAL=1
MAX_VRAM=8192
# xe または i915 の hwmon を自動検出
HWMON_XE=""
for d in /sys/class/hwmon/hwmon*; do
if [ -r "$d/name" ]; then
driver_name=$(cat "$d/name")
if [ "$driver_name" = "xe" ] || [ "$driver_name" = "i915" ]; then
HWMON_XE="$(basename "$d")"
break
fi
fi
done
if [ -z "$HWMON_XE" ]; then
echo "Intel Arc の hwmon デバイスが見つかりませんでした。" >&2
exit 1
fi
# k10temp (Ryzen) のhwmonを自動検出
HWMON_k10=""
for d in /sys/class/hwmon/hwmon*; do
if [ -r "$d/name" ] && [ "$(cat "$d/name")" = "k10temp" ]; then
HWMON_k10="$(basename "$d")"
break
fi
done
if [ -z "$HWMON_k10" ]; then
echo "Ryzen の hwmon デバイスが見つかりませんでした。" >&2
exit 1
fi
# GPUの初期エネルギーを取得
export initial_energy=$(cat /sys/class/hwmon/${HWMON_XE}/energy1_input)
gnome-terminal --geometry=20x8 -- bash -c "
# 親プロセスから初期値を受け取る
prev_energy=${initial_energy}
while true; do
OUTPUT=\$(xpumcli stats -d ${DEVICE_ID})
# CPU温度
temp=\$(cat /sys/class/hwmon/${HWMON_k10}/temp1_input)
temp_c=\$((temp / 1000)).\$((temp % 1000))
# VRAM
USED=\$(echo \"\$OUTPUT\" | grep 'GPU Memory Used' | awk -F 'current:' '{print \$2}' | awk '{print \$1}')
# GPU温度 (1000で割って℃に変換)
core_temp_raw=\$(cat /sys/class/hwmon/${HWMON_XE}/temp1_input)
core_temp=\$((core_temp_raw / 1000))
# GPU電力 (エスケープを追加、インターバル秒数で割る)
current_energy=\$(cat /sys/class/hwmon/${HWMON_XE}/energy1_input)
power=\$(echo \"scale=2; (\$current_energy - \$prev_energy) / 1000000 / ${INTERVAL}\" | bc)
prev_energy=\$current_energy
# GPU周波数
frequency=\$(echo \"\$OUTPUT\" | grep 'GPU Frequency' | awk -F 'current:' '{print \$2}' | awk '{print \$1}')
# GPUファン
fan1=\$(cat /sys/class/hwmon/${HWMON_XE}/fan1_input 2>/dev/null || echo \"N/A\")
# 表示更新
tput cup 0 0
tput ed
echo \"CPU temp : \${temp_c}°C\"
echo \"frequency: \${frequency} MHz\"
echo \"GPU temp: \${core_temp} ℃\"
echo \"GPU power: \${power} W\"
echo \"GPU fan : \${fan1} RPM\"
echo \"vram used: \${USED}/${MAX_VRAM} MiB\"
sleep ${INTERVAL}
done
exec bash"自分は「bash_xpumanager.sh」という名前で保存しています。


最後に
生成AIを動かすときに、VRAMの表示ができるのはけっこうありがたいです。
動画生成は「–novram」を使わないとちょっと無理ですが、「Irodori-TTS」くらいだったら十分に動くし、モニタリングできます。そのうち「Irodori-TTS」のIntel Arc用の記事を書きますね。
すでに書いて記事にしています。
今回は以上です。
追記(2026/4/29)
Ubuntu26.04LTSだと、そのままでは対応できなかったので追記します。
まずはxpumanagerですが、追記した時点で26.04LTS版はありませんでした。
こちらの記事でビルド手順を紹介しています。
そちらからどうぞ。
#!/bin/bash
# ==========================================
# 1. 子プロセス(モニタリング実行ループ部)
# ==========================================
# 引数に "monitor" が渡された場合のみ、このループが実行されます
if [ "$1" = "monitor" ]; then
DEVICE_ID="$2"
INTERVAL="$3"
MAX_VRAM="$4"
HWMON_XE="$5"
HWMON_k10="$6"
prev_energy="$7"
# 画面を一度リセット
clear
while true; do
OUTPUT=$(xpumcli stats -d "${DEVICE_ID}" 2>/dev/null)
# CPU温度 (Ryzen 9 7900)
temp=$(cat /sys/class/hwmon/${HWMON_k10}/temp1_input 2>/dev/null || echo 0)
temp_c=$((temp / 1000)).$((temp % 1000))
# VRAM
USED=$(echo "$OUTPUT" | grep 'GPU Memory Used' | awk -F 'current:' '{print $2}' | awk '{print $1}')
USED=${USED:-0}
# GPU温度 (Arc A750)
core_temp_raw=$(cat /sys/class/hwmon/${HWMON_XE}/temp1_input 2>/dev/null || echo 0)
core_temp=$((core_temp_raw / 1000))
# GPU電力
current_energy=$(cat /sys/class/hwmon/${HWMON_XE}/energy1_input 2>/dev/null || echo 0)
if [ -z "$prev_energy" ] || [ "$prev_energy" -eq 0 ]; then
power="0.00"
else
power=$(echo "scale=2; ($current_energy - $prev_energy) / 1000000 / ${INTERVAL}" | bc 2>/dev/null || echo "0.00")
fi
prev_energy=$current_energy
# GPU周波数
frequency=$(echo "$OUTPUT" | grep 'GPU Frequency' | awk -F 'current:' '{print $2}' | awk '{print $1}')
frequency=${frequency:-0}
# GPUファン
fan1=$(cat /sys/class/hwmon/${HWMON_XE}/fan1_input 2>/dev/null || echo "N/A")
# 表示更新
tput cup 0 0
tput ed
echo "CPU temp : ${temp_c}°C"
echo "frequency: ${frequency} MHz"
echo "GPU temp: ${core_temp} ℃"
echo "GPU power: ${power} W"
echo "GPU fan : ${fan1} RPM"
echo "vram used: ${USED}/${MAX_VRAM} MiB"
sleep "${INTERVAL}"
done
exit 0
fi
# ==========================================
# 2. 親プロセス(セットアップとターミナル呼び出し部)
# ==========================================
DEVICE_ID=0
INTERVAL=1
MAX_VRAM=8192
# xe または i915 の hwmon を自動検出
HWMON_XE=""
for d in /sys/class/hwmon/hwmon*; do
if [ -r "$d/name" ]; then
driver_name=$(cat "$d/name")
if [ "$driver_name" = "xe" ] || [ "$driver_name" = "i915" ]; then
HWMON_XE="$(basename "$d")"
break
fi
fi
done
if [ -z "$HWMON_XE" ]; then
echo "Intel Arc の hwmon デバイスが見つかりませんでした。" >&2
exit 1
fi
# k10temp (Ryzen) のhwmonを自動検出
HWMON_k10=""
for d in /sys/class/hwmon/hwmon*; do
if [ -r "$d/name" ] && [ "$(cat "$d/name")" = "k10temp" ]; then
HWMON_k10="$(basename "$d")"
break
fi
done
if [ -z "$HWMON_k10" ]; then
echo "Ryzen の hwmon デバイスが見つかりませんでした。" >&2
exit 1
fi
# GPUの初期エネルギーを取得
initial_energy=$(cat /sys/class/hwmon/${HWMON_XE}/energy1_input 2>/dev/null || echo 0)
# スクリプト自身の絶対パスを取得
SCRIPT_PATH=$(readlink -f "$0")
# Ubuntu 26.04 標準ターミナル (Ptyxis) を呼び出し、自身を「monitor」モードで実行する
# ※ bashコマンド経由で呼ぶことで、実行権限(chmod +x)がなくても動作するようにしています
ptyxis -- bash -c "bash \"$SCRIPT_PATH\" monitor \"$DEVICE_ID\" \"$INTERVAL\" \"$MAX_VRAM\" \"$HWMON_XE\" \"$HWMON_k10\" \"$initial_energy\"; exec bash"ちょっと使い勝手が変わってしまいましたが、とりあえずモニタリングはできると思います。
「Pro B50」やAsRock製の「Pro B60」なんてめずらしいモノが出てますね。
Amazon倉庫からの出荷ではないので、購入する時は自己責任でお願いします。


コメント