AMD Ryzen内蔵GPUとWhisper.cppで爆速文字起こしに挑戦

作成日2025年12月17日 11:37
"サムネイル画像"

私はメインのサーバー機として「Minisforum UM870 Slim」を使用してきましたが、これまで内蔵GPUのリソースをほとんど活用できていませんでした。せっかくAMD Ryzen 8000シリーズのRadeon 780M(内蔵GPU)が搭載されているのに、これはもったいない。

そこで、ROCmを使ってPyTorchベースのモデルを含め、GPU推論を活用できないか試してみることにしました。

音声の文字起こしツールとして有名なWhisperは、通常NVIDIA GPUでの利用が主流です。しかし、AMD内蔵GPUでもROCmを活用すれば高速な文字起こしが可能なはず。

今回は、Ubuntu Server 24.04上でROCm 6.4.1とwhisper.cppを組み合わせ、AMD内蔵GPUを使った文字起こし環境の構築に挑戦してみました。

環境情報 

項目

--

製品

Minisforum UM870 Slim

OS

Ubuntu Server 24.04

CPU

AMD Ryzen 7 8745H (16スレッド)

GPU

AMD Radeon 780M (Phoenix3 iGPU, gfx1103)

RAM

32GB

ROCm

6.4.1

なぜwhisper.cppなのか 

OpenAIのWhisperには複数の実装がありますが、whisper.cppを選んだ理由は以下の通りです:

  • 軽量: C++実装で依存関係が少ない
  • 高速: 量子化モデルに対応し、メモリ効率が良い
  • 柔軟: コマンドラインで手軽に使える

セットアップ手順 

1. ROCmリポジトリの追加 

commandline
# ROCmリポジトリを追加
echo "deb [arch=amd64 signed-by=/usr/share/keyrings/rocm-archive-keyring.gpg] https://repo.radeon.com/rocm/apt/6.4.1 noble main" | sudo tee /etc/apt/sources.list.d/rocm.list
echo "deb [arch=amd64 signed-by=/usr/share/keyrings/rocm-archive-keyring.gpg] https://repo.radeon.com/amdgpu/6.4.1/ubuntu noble main" | sudo tee /etc/apt/sources.list.d/amdgpu.list

sudo apt update
sudo apt upgrade

2. ROCm関連パッケージのインストール 

commandline
# 基本パッケージ
sudo apt install -y rocm-core rocm-hip-runtime rocminfo

# 開発ツール
sudo apt install -y hip-dev rocm-dev hipblas-dev rocblas-dev

# ビルドツール
sudo apt install -y cmake build-essential ffmpeg

3. 環境変数の設定 

Radeon 780Mはgfx1103アーキテクチャですが、ROCmではgfx1100として扱う必要があります。

commandline
# クローン
git clone https://github.com/ggerganov/whisper.cpp
cd whisper.cpp

# HIP/ROCmを有効にしてビルド
export CMAKE_PREFIX_PATH=/opt/rocm
cmake -B build -DGGML_HIP=ON
cmake --build build --config Release -j$(nproc)

5. モデルのダウンロード 

commandline
# 量子化版mediumモデル(推奨)
curl -L -o models/ggml-medium-q5_0.bin \
  https://huggingface.co/ggerganov/whisper.cpp/resolve/main/ggml-medium-q5_0.bin

# その他のモデル
bash ./models/download-ggml-model.sh small
bash ./models/download-ggml-model.sh large

使い方 

基本的な使用例 

commandline
# 基本的な文字起こし
./build/bin/whisper-cli -m models/ggml-medium-q5_0.bin -f input.mp3 -l ja

# SRT字幕形式で出力
./build/bin/whisper-cli -m models/ggml-medium-q5_0.bin -f input.mp3 -l ja -osrt

# JSON形式で出力
./build/bin/whisper-cli -m models/ggml-medium-q5_0.bin -f input.mp3 -l ja -oj

# 出力先を指定
./build/bin/whisper-cli -m models/ggml-medium-q5_0.bin -f input.mp3 -l ja -oj -of ./output/result

よく使うオプション 

  • -l ja: 日本語として処理
  • -osrt: SRT字幕形式で出力
  • -oj: JSON形式で出力
  • -of <path>: 出力ファイルのパスを指定
  • -t <threads>: CPU使用スレッド数を指定

トラブルシューティング 

GPU Hangエラーが発生する場合 

非量子化モデルを使用していませんか? 内蔵GPUでは量子化版(q5_0, q8_0など)の使用を強く推奨します。

量子化モデルとは? 

量子化(Quantization)は、モデルの重みパラメータを低精度(例: 32bit → 5bit)に変換する技術です。これにより以下のメリットがあります:

  • メモリ使用量の削減: mediumモデルの場合、約1.5GB → 約500MBに削減
  • 推論速度の向上: メモリ帯域幅の負荷が減り高速化
  • GPU Hangの回避: 内蔵GPUの限られたVRAMでも動作可能

量子化モデルの種類

モデル名

ビット数

サイズ目安

精度

推奨用途

ggml-medium.bin

32bit(FP32)

~1.5GB

最高

専用GPU向け ⚠️内蔵GPUでは非推奨

ggml-medium-q8_0.bin

8bit

~900MB

バランス重視

ggml-medium-q5_0.bin

5bit

~500MB

中〜高

内蔵GPU推奨

ggml-medium-q4_0.bin

4bit

~400MB

メモリ制約が厳しい場合

なぜ内蔵GPUで量子化が必要なのか 

Radeon 780Mは共有メモリ(システムRAMの一部を使用)のため、専用GPUと比べてメモリ管理が異なります。今回の環境では32GBのRAMを搭載していましたが、それでも非量子化のmediumモデル(1.5GB)でGPU Hangエラーが発生しました。

これは単純なメモリ不足ではなく、以下の要因が考えられます:

  • 内蔵GPUのメモリ帯域幅の制約: 共有メモリアクセスは専用GPUのGDDRメモリより遅い
  • ROCmドライバーの最適化: 内蔵GPU向けの大規模モデル処理が完全には最適化されていない
  • gfx1103アーキテクチャの制限: HSA_OVERRIDE_GFX_VERSIONで11.0.0としてエミュレートしているため

実際の経験では、32GBのRAMがありながら非量子化モデルで「GPU Hang」エラーが発生しましたが、q5_0モデル(約500MB)に切り替えたところ安定して動作しました。これは、モデルサイズが小さくなることで、メモリ帯域幅への負荷とGPU処理の複雑さが軽減されたためと考えています。

精度への影響 

q5_0モデルでも、実用上は十分な精度が得られます。日本語の文字起こしにおいて、ほとんどのケースで品質の差は感じられませんでした。どうしても最高精度が必要な場合は、largeモデルのq5_0版を検討してください。

GPUが認識されない場合 

commandline
# GPU認識確認
rocminfo | grep -E "Name|gfx"

# 環境変数を確認
echo $HSA_OVERRIDE_GFX_VERSION  # 11.0.0 になっているか

ビルドエラーが発生する場合 

commandline
# ROCmのバージョン確認
apt show rocm-core | grep Version

# HIP_PATHが正しく設定されているか確認
echo $HIP_PATH  # /opt/rocm になっているか

動作確認コマンド集 

commandline
# ROCmバージョン確認
apt show rocm-core | grep Version

# GPU認識確認
rocminfo | grep -E "Name|gfx"

# PyTorchでGPU認識確認(PyTorchインストール済みの場合)
python3 -c "import torch; print(torch.cuda.is_available())"

まとめ 

AMD Ryzen 8000シリーズの内蔵GPU(Radeon 780M)でも、適切な設定と量子化モデルを使用することで、十分実用的な速度での文字起こしが可能でした。

ポイントは以下の3点です:

  1. HSA_OVERRIDE_GFX_VERSION=11.0.0 の設定が必須
  2. 量子化モデル(q5_0など)を使用する
  3. ROCm 6.4.1との組み合わせで安定動作

NVIDIA GPUを持っていなくても、最新のAMD CPUがあれば高速な文字起こし環境が手に入ります。ぜひ試してみてください。

Latest Tips