697 lines
17 KiB
Markdown
697 lines
17 KiB
Markdown
# Ultralytics YOLO with AMD GPU (ROCm) - 完全ガイド
|
||
|
||
**取得日**: 2026-02-07
|
||
**対象**: Ultralytics YOLO (YOLOv5/YOLOv8/YOLO11)
|
||
**プラットフォーム**: AMD GPU + ROCm
|
||
|
||
---
|
||
|
||
## 目次
|
||
|
||
1. [公式サポート状況](#公式サポート状況)
|
||
2. [ROCm環境のセットアップ](#rocm環境のセットアップ)
|
||
3. [デバイス指定の正しい方法](#デバイス指定の正しい方法)
|
||
4. [Ultralytics YOLOでの使用方法](#ultralytics-yoloでの使用方法)
|
||
5. [トラブルシューティング](#トラブルシューティング)
|
||
6. [コミュニティ実装例](#コミュニティ実装例)
|
||
7. [参考資料](#参考資料)
|
||
|
||
---
|
||
|
||
## 公式サポート状況
|
||
|
||
### Ultralyticsの公式見解
|
||
|
||
**重要**: Ultralytics YOLOは現在、AMD ROCmのネイティブサポートを提供していません。
|
||
|
||
- **Issue #10323** (2024年4月25日開設、2024年6月8日に"not planned"としてクローズ)
|
||
- Glenn Jocher氏(Ultralyticsチームメンバー)の回答:
|
||
> "YOLOv8 primarily supports Nvidia CUDA for GPU acceleration"
|
||
- ネイティブROCmサポートの即時計画はない
|
||
- コミュニティによるPull Requestは歓迎
|
||
|
||
- **推奨される回避策**: PyTorchのROCm互換性レイヤーを使用
|
||
|
||
### 使用可能な選択肢
|
||
|
||
1. **PyTorch ROCmバックエンド経由** (非公式だが実用可能)
|
||
2. **Dockerコンテナを使用した環境分離**
|
||
3. **クラウドGPUレンタル** (NVIDIA GPU使用)
|
||
4. **ONNXエクスポート + AMD推論エンジン**
|
||
|
||
---
|
||
|
||
## ROCm環境のセットアップ
|
||
|
||
### 1. ROCmサポート確認
|
||
|
||
#### 対応GPU
|
||
|
||
- **Instinctシリーズ**: MI100 (gfx908), MI210/MI250/MI250x (gfx90a), MI300A/MI300X/MI325 (gfx942), MI350/MI355 (gfx950)
|
||
- **Radeon RXシリーズ**: RX 7900 GRE以上、一部のRX 6000シリーズ (gfx1030, gfx1100/1101, gfx1200/1201)
|
||
- **統合GPU**: 一部のRyzen APU (環境変数による回避策が必要)
|
||
|
||
#### GPU情報の確認
|
||
|
||
```bash
|
||
rocminfo | grep gfx
|
||
```
|
||
|
||
### 2. PyTorch ROCmのインストール
|
||
|
||
#### 方法A: Dockerイメージ(推奨)
|
||
|
||
AMDが検証済みのDockerイメージを使用:
|
||
|
||
```bash
|
||
# 最新イメージの取得
|
||
docker pull rocm/pytorch:latest
|
||
|
||
# コンテナの起動
|
||
docker run -it \
|
||
--cap-add=SYS_PTRACE \
|
||
--security-opt seccomp=unconfined \
|
||
--device=/dev/kfd \
|
||
--device=/dev/dri \
|
||
--group-add video \
|
||
--ipc=host \
|
||
--shm-size 8G \
|
||
rocm/pytorch:latest
|
||
```
|
||
|
||
**利用可能なタグ(ROCm 7.2.0時点)**:
|
||
- PyTorch 2.9.1 + Python 3.12/3.10
|
||
- PyTorch 2.8.0 + Python 3.12/3.10
|
||
- PyTorch 2.7.1 + Python 3.12/3.10
|
||
|
||
#### 方法B: Wheelパッケージ(ベアメタル)
|
||
|
||
```bash
|
||
# 依存関係のインストール
|
||
sudo apt install libjpeg-dev python3-dev python3-pip
|
||
|
||
# PyTorch ROCmのインストール
|
||
pip3 install --pre torch torchvision torchaudio \
|
||
--index-url https://download.pytorch.org/whl/nightly/rocm7.0
|
||
```
|
||
|
||
**注意**: AMDは`repo.radeon.com`で提供されるWHLの使用を推奨(PyTorch.orgのnightly buildsは頻繁に変更されテストが不十分)
|
||
|
||
#### 方法C: ソースからビルド
|
||
|
||
```bash
|
||
git clone https://github.com/pytorch/pytorch.git
|
||
cd pytorch
|
||
git submodule update --init --recursive
|
||
|
||
# GPUアーキテクチャを指定
|
||
export PYTORCH_ROCM_ARCH=gfx90a # 例: MI210/MI250の場合
|
||
|
||
# ビルド手順に従う
|
||
# (pytorch/pytorch リポジトリのREADME参照)
|
||
```
|
||
|
||
### 3. インストールの確認
|
||
|
||
```bash
|
||
python3 -c 'import torch; print(torch.cuda.is_available())'
|
||
# 出力: True (GPUが利用可能な場合)
|
||
|
||
python3 -c 'import torch; print(torch.version.hip)'
|
||
# 出力: ROCmバージョン(例: '5.7.31921')
|
||
```
|
||
|
||
---
|
||
|
||
## デバイス指定の正しい方法
|
||
|
||
### 重要な概念
|
||
|
||
**PyTorch ROCmは意図的にCUDAインターフェースを再利用**します。これにより、コード変更を最小限に抑えています。
|
||
|
||
### 基本的なデバイス指定
|
||
|
||
```python
|
||
import torch
|
||
|
||
# デフォルトのGPUデバイス
|
||
cuda = torch.device('cuda')
|
||
|
||
# 特定のGPUデバイス
|
||
cuda0 = torch.device('cuda:0') # GPU 0
|
||
cuda1 = torch.device('cuda:1') # GPU 1
|
||
cuda2 = torch.device('cuda:2') # GPU 2
|
||
```
|
||
|
||
**注意**: `"rocm"`や`"hip"`は無効なデバイス文字列です。必ず`"cuda"`を使用してください。
|
||
|
||
### HIP vs CUDAの検出
|
||
|
||
```python
|
||
import torch
|
||
|
||
if torch.cuda.is_available():
|
||
if torch.version.hip:
|
||
print("Running on AMD GPU with ROCm/HIP")
|
||
print(f"ROCm version: {torch.version.hip}")
|
||
elif torch.version.cuda:
|
||
print("Running on NVIDIA GPU with CUDA")
|
||
print(f"CUDA version: {torch.version.cuda}")
|
||
else:
|
||
print("No GPU available")
|
||
```
|
||
|
||
### Ultralytics YOLOでのデバイス指定
|
||
|
||
Ultralytics APIを使用する場合:
|
||
|
||
```python
|
||
from ultralytics import YOLO
|
||
|
||
# モデルの読み込み
|
||
model = YOLO('yolov8n.pt')
|
||
|
||
# 推論時のデバイス指定
|
||
# 方法1: 文字列で指定
|
||
results = model.predict('image.jpg', device='cuda:0')
|
||
|
||
# 方法2: 整数で指定(GPU番号)
|
||
results = model.predict('image.jpg', device=0)
|
||
|
||
# 方法3: CPUを使用
|
||
results = model.predict('image.jpg', device='cpu')
|
||
|
||
# トレーニング時のデバイス指定
|
||
model.train(data='coco.yaml', epochs=100, device=0)
|
||
```
|
||
|
||
---
|
||
|
||
## Ultralytics YOLOでの使用方法
|
||
|
||
### 基本的な推論
|
||
|
||
```python
|
||
from ultralytics import YOLO
|
||
import torch
|
||
|
||
# GPU確認
|
||
print(f"CUDA available: {torch.cuda.is_available()}")
|
||
print(f"ROCm version: {torch.version.hip if torch.version.hip else 'N/A'}")
|
||
|
||
# モデルのロード
|
||
model = YOLO('yolov8n.pt')
|
||
|
||
# 推論の実行
|
||
results = model('path/to/image.jpg', device=0)
|
||
|
||
# 結果の処理
|
||
for result in results:
|
||
boxes = result.boxes # Boxes object
|
||
masks = result.masks # Masks object (セグメンテーションの場合)
|
||
probs = result.probs # 分類の場合
|
||
```
|
||
|
||
### バッチ処理
|
||
|
||
```python
|
||
from ultralytics import YOLO
|
||
from pathlib import Path
|
||
|
||
model = YOLO('yolov8n.pt')
|
||
|
||
# 画像リストで推論
|
||
image_folder = Path('path/to/images')
|
||
image_paths = list(image_folder.glob('*.jpg'))
|
||
|
||
# バッチサイズを指定して推論
|
||
results = model.predict(image_paths, device=0, batch=16)
|
||
|
||
for i, result in enumerate(results):
|
||
result.save(filename=f'result_{i}.jpg')
|
||
```
|
||
|
||
### トレーニング
|
||
|
||
```python
|
||
from ultralytics import YOLO
|
||
|
||
# モデルの作成
|
||
model = YOLO('yolov8n.yaml')
|
||
|
||
# トレーニングの実行
|
||
results = model.train(
|
||
data='coco.yaml',
|
||
epochs=100,
|
||
imgsz=640,
|
||
device=0, # AMD GPUを使用
|
||
batch=16,
|
||
workers=8
|
||
)
|
||
```
|
||
|
||
### モデルのエクスポート(ONNX)
|
||
|
||
AMD環境での推論最適化のため、ONNXにエクスポート:
|
||
|
||
```python
|
||
from ultralytics import YOLO
|
||
|
||
model = YOLO('yolov8n.pt')
|
||
|
||
# ONNXフォーマットにエクスポート
|
||
model.export(format='onnx', dynamic=True)
|
||
```
|
||
|
||
エクスポート後、AMD MIGraphXで最適化:
|
||
|
||
```bash
|
||
migraphx-driver compile ./yolov8n.onnx \
|
||
--optimize \
|
||
--gpu \
|
||
--enable-offload-copy \
|
||
--binary \
|
||
-o yolov8n.mxr
|
||
```
|
||
|
||
---
|
||
|
||
## トラブルシューティング
|
||
|
||
### 1. GPU認識されない
|
||
|
||
#### 症状
|
||
```python
|
||
torch.cuda.is_available() # False
|
||
```
|
||
|
||
#### 解決策
|
||
|
||
**ユーザー権限の確認**:
|
||
```bash
|
||
# ユーザーを適切なグループに追加
|
||
sudo usermod -a -G video $USER
|
||
sudo usermod -a -G render $USER
|
||
|
||
# 再ログインして反映
|
||
```
|
||
|
||
**デバイスアクセスの確認**:
|
||
```bash
|
||
ls -la /dev/kfd /dev/dri/
|
||
```
|
||
|
||
**ROCmインストールの確認**:
|
||
```bash
|
||
rocm-smi
|
||
# GPUリストが表示されるはず
|
||
```
|
||
|
||
### 2. hipErrorNoBinaryForGpu
|
||
|
||
#### 症状
|
||
```
|
||
RuntimeError: HIP error: hipErrorNoBinaryForGpu
|
||
```
|
||
|
||
#### 原因
|
||
PyTorchが対象GPUアーキテクチャ用にコンパイルされていない
|
||
|
||
#### 解決策
|
||
|
||
**GPUアーキテクチャの確認**:
|
||
```bash
|
||
rocminfo | grep gfx
|
||
```
|
||
|
||
**環境変数による回避** (統合GPUやサポート外GPU):
|
||
```bash
|
||
# gfx90cの場合、gfx900として認識させる
|
||
export HSA_OVERRIDE_GFX_VERSION=9.0.0
|
||
|
||
# 再度Pythonを実行
|
||
python3 your_script.py
|
||
```
|
||
|
||
**ソースからビルドする場合**:
|
||
```bash
|
||
export PYTORCH_ROCM_ARCH=gfx1030 # 自分のGPUアーキテクチャを指定
|
||
# PyTorchをビルド
|
||
```
|
||
|
||
### 3. GPU転送のハング/失敗
|
||
|
||
#### 症状
|
||
- スクリプトが無言でハング
|
||
- GPU-CPU間のデータ転送が失敗
|
||
|
||
#### 解決策
|
||
|
||
**PCIe Atomicsサポートの問題** (コンシューマー向けマザーボード):
|
||
|
||
```bash
|
||
# SDMA(ダイレクトメモリアクセス)を無効化
|
||
export HSA_ENABLE_SDMA=0
|
||
|
||
python3 your_script.py
|
||
```
|
||
|
||
この設定なしでは「GPU memory transfers will silently hang/fail」する可能性があります。
|
||
|
||
### 4. ROCmバージョンの非互換性
|
||
|
||
#### 症状
|
||
```
|
||
ImportError: libMIOpen.so.1: cannot open shared object file
|
||
```
|
||
|
||
#### 解決策
|
||
|
||
**特定バージョンのROCmを使用**:
|
||
- ROCm 5.7が推奨される場合が多い
|
||
- ROCm 6.0.0は一部環境で動作しない報告あり
|
||
|
||
**Dockerイメージを使用**してバージョンを固定:
|
||
```bash
|
||
docker pull rocm/pytorch:rocm5.7_ubuntu22.04_py3.10_pytorch_2.0.1
|
||
```
|
||
|
||
### 5. メモリ不足エラー
|
||
|
||
#### 症状
|
||
```
|
||
RuntimeError: HIP out of memory
|
||
```
|
||
|
||
#### 解決策
|
||
|
||
**メモリ使用状況の確認**:
|
||
```python
|
||
import torch
|
||
|
||
print(f"Allocated: {torch.cuda.memory_allocated() / 1024**3:.2f} GB")
|
||
print(f"Reserved: {torch.cuda.memory_reserved() / 1024**3:.2f} GB")
|
||
```
|
||
|
||
**キャッシュのクリア**:
|
||
```python
|
||
torch.cuda.empty_cache()
|
||
```
|
||
|
||
**バッチサイズの削減**:
|
||
```python
|
||
model.train(data='coco.yaml', batch=8) # デフォルトより小さく
|
||
```
|
||
|
||
**キャッシュアロケータの無効化** (デバッグ用):
|
||
```bash
|
||
export PYTORCH_NO_HIP_MEMORY_CACHING=1
|
||
```
|
||
|
||
### 6. パフォーマンスが遅い
|
||
|
||
#### 最適化のヒント
|
||
|
||
**hipBLASワークスペースの調整**:
|
||
```bash
|
||
# デフォルトは32 MiB、MI300+は128 MiB
|
||
export HIPBLAS_WORKSPACE_CONFIG=128M
|
||
```
|
||
|
||
**Composable Kernelの有効化** (対応GPU):
|
||
```python
|
||
import torch
|
||
torch.backends.cuda.matmul.allow_tf32 = True # TF32はROCmで非対応
|
||
```
|
||
|
||
**混合精度トレーニング**:
|
||
```python
|
||
from ultralytics import YOLO
|
||
|
||
model = YOLO('yolov8n.pt')
|
||
model.train(
|
||
data='coco.yaml',
|
||
epochs=100,
|
||
amp=True, # Automatic Mixed Precision
|
||
device=0
|
||
)
|
||
```
|
||
|
||
---
|
||
|
||
## コミュニティ実装例
|
||
|
||
### AMD統合GPU向けYOLOv8実装
|
||
|
||
GitHub: [harakas/amd_igpu_yolo_v8](https://github.com/harakas/amd_igpu_yolo_v8)
|
||
|
||
#### 主な特徴
|
||
|
||
- DockerベースのROCm + PyTorch環境
|
||
- 統合GPUに特化した環境変数設定
|
||
- YOLOv5/YOLOv8の推論例
|
||
- MIGraphXを使った本番デプロイ
|
||
|
||
#### セットアップ例
|
||
|
||
```bash
|
||
# Dockerイメージのビルド
|
||
docker build -t rocm-pytorch .
|
||
|
||
# ラッパースクリプトでPythonを実行
|
||
./rocm_python yolo8.py
|
||
```
|
||
|
||
#### 必須環境変数
|
||
|
||
```bash
|
||
# PCIe Atomics非サポート対策
|
||
export HSA_ENABLE_SDMA=0
|
||
|
||
# GPUアーキテクチャのオーバーライド
|
||
export HSA_OVERRIDE_GFX_VERSION=9.0.0 # gfx90cの場合
|
||
```
|
||
|
||
#### パフォーマンス実測値
|
||
|
||
**テスト環境**: AMD Ryzen 3 5400U (統合GPU)
|
||
|
||
- YOLOv8n (640x640): 約50 FPS (0.02秒/画像)
|
||
- YOLOv8n (320x320): 約140 FPS
|
||
|
||
#### MIGraphXデプロイ
|
||
|
||
```bash
|
||
# 1. ONNXエクスポート
|
||
python3 -c "from ultralytics import YOLO; YOLO('yolov8n.pt').export(format='onnx')"
|
||
|
||
# 2. MIGraphXバイナリにコンパイル
|
||
migraphx-driver compile ./yolov8n.onnx \
|
||
--optimize \
|
||
--gpu \
|
||
--enable-offload-copy \
|
||
--binary \
|
||
-o yolov8n.mxr
|
||
|
||
# 3. MIGraphX Python APIで推論
|
||
# (PyTorch依存なし、高速化)
|
||
```
|
||
|
||
---
|
||
|
||
## 制限事項と注意点
|
||
|
||
### PyTorch ROCmの制限
|
||
|
||
1. **TensorFloat-32 (TF32)**: ROCmでは非対応
|
||
2. **分散トレーニング**: NCCLとGlooバックエンドのみサポート
|
||
3. **hipFFT/rocFFT**: プランキャッシュサイズの設定は非サポート
|
||
|
||
### Ultralytics YOLO固有の問題
|
||
|
||
1. **公式サポートなし**: AMDからの技術サポートは期待できない
|
||
2. **パフォーマンス**: NVIDIA CUDAと比較して遅い場合がある
|
||
3. **互換性**: 全機能が動作する保証はない(特に新機能)
|
||
|
||
### 推奨される使用ケース
|
||
|
||
**ROCmが適している場合**:
|
||
- 既にAMD GPUを所有している
|
||
- 開発/テスト環境
|
||
- 小~中規模のデータセット
|
||
|
||
**クラウドGPUを検討すべき場合**:
|
||
- 本番環境での大規模トレーニング
|
||
- 最高のパフォーマンスが必要
|
||
- 公式サポートが必要
|
||
|
||
---
|
||
|
||
## 完全な動作例
|
||
|
||
### 統合GPU環境での推論スクリプト
|
||
|
||
```python
|
||
#!/usr/bin/env python3
|
||
"""
|
||
AMD GPU (ROCm) 向け Ultralytics YOLO 推論スクリプト
|
||
"""
|
||
import os
|
||
import torch
|
||
from ultralytics import YOLO
|
||
|
||
# 必須環境変数の設定(統合GPUの場合)
|
||
os.environ['HSA_ENABLE_SDMA'] = '0'
|
||
os.environ['HSA_OVERRIDE_GFX_VERSION'] = '9.0.0' # 自分のGPUに合わせて調整
|
||
|
||
def check_gpu():
|
||
"""GPU利用可能性の確認"""
|
||
print("=" * 50)
|
||
print("GPU情報")
|
||
print("=" * 50)
|
||
print(f"CUDA available: {torch.cuda.is_available()}")
|
||
if torch.cuda.is_available():
|
||
print(f"GPU count: {torch.cuda.device_count()}")
|
||
print(f"Current device: {torch.cuda.current_device()}")
|
||
print(f"Device name: {torch.cuda.get_device_name(0)}")
|
||
print(f"ROCm version: {torch.version.hip}")
|
||
print(f"Memory allocated: {torch.cuda.memory_allocated() / 1024**3:.2f} GB")
|
||
print(f"Memory reserved: {torch.cuda.memory_reserved() / 1024**3:.2f} GB")
|
||
print("=" * 50)
|
||
|
||
def main():
|
||
# GPU確認
|
||
check_gpu()
|
||
|
||
if not torch.cuda.is_available():
|
||
print("警告: GPUが利用できません。CPUで実行します。")
|
||
device = 'cpu'
|
||
else:
|
||
device = 0 # GPU 0を使用
|
||
|
||
# モデルのロード
|
||
print(f"\nモデルをロード中... (device={device})")
|
||
model = YOLO('yolov8n.pt')
|
||
|
||
# 推論の実行
|
||
print("\n推論を実行中...")
|
||
results = model.predict(
|
||
source='path/to/image.jpg',
|
||
device=device,
|
||
conf=0.25,
|
||
iou=0.7,
|
||
imgsz=640,
|
||
save=True,
|
||
save_txt=True
|
||
)
|
||
|
||
# 結果の表示
|
||
for i, result in enumerate(results):
|
||
print(f"\n結果 {i+1}:")
|
||
print(f" 検出数: {len(result.boxes)}")
|
||
print(f" 処理時間: {result.speed['inference']:.2f}ms")
|
||
|
||
# ボックス情報
|
||
for box in result.boxes:
|
||
cls = int(box.cls[0])
|
||
conf = float(box.conf[0])
|
||
print(f" クラス: {model.names[cls]}, 信頼度: {conf:.2f}")
|
||
|
||
# メモリ解放
|
||
torch.cuda.empty_cache()
|
||
print("\n完了!")
|
||
|
||
if __name__ == '__main__':
|
||
main()
|
||
```
|
||
|
||
### Dockerを使った実行例
|
||
|
||
```dockerfile
|
||
# Dockerfile
|
||
FROM rocm/pytorch:rocm5.7_ubuntu22.04_py3.10_pytorch_2.0.1
|
||
|
||
# Ultralyticsのインストール
|
||
RUN pip install ultralytics opencv-python
|
||
|
||
# 作業ディレクトリ
|
||
WORKDIR /workspace
|
||
|
||
# 環境変数の設定
|
||
ENV HSA_ENABLE_SDMA=0
|
||
ENV HSA_OVERRIDE_GFX_VERSION=9.0.0
|
||
|
||
CMD ["/bin/bash"]
|
||
```
|
||
|
||
```bash
|
||
# ビルドと実行
|
||
docker build -t yolo-rocm .
|
||
|
||
docker run -it --rm \
|
||
--device=/dev/kfd \
|
||
--device=/dev/dri \
|
||
--group-add video \
|
||
--ipc=host \
|
||
--shm-size 8G \
|
||
-v $(pwd):/workspace \
|
||
yolo-rocm \
|
||
python3 inference.py
|
||
```
|
||
|
||
---
|
||
|
||
## 参考資料
|
||
|
||
### 公式ドキュメント
|
||
|
||
- [PyTorch HIP (ROCm) Semantics](https://docs.pytorch.org/docs/stable/notes/hip.html)
|
||
- [PyTorch on ROCm Installation](https://rocm.docs.amd.com/projects/install-on-linux/en/latest/install/3rd-party/pytorch-install.html)
|
||
- [ROCm PyTorch Compatibility](https://rocm.docs.amd.com/en/latest/compatibility/ml-compatibility/pytorch-compatibility.html)
|
||
- [Ultralytics YOLO Documentation](https://docs.ultralytics.com/)
|
||
|
||
### GitHub Issues & Discussions
|
||
|
||
- [AMD GPU support and optimisation - YOLOv5 #2995](https://github.com/ultralytics/yolov5/issues/2995)
|
||
- [Direct support for AMD GPUs/ROCm - Ultralytics #10323](https://github.com/ultralytics/ultralytics/issues/10323)
|
||
- [Running YOLOV8 on non CUDA GPU - Discussion #10066](https://github.com/orgs/ultralytics/discussions/10066)
|
||
|
||
### コミュニティリソース
|
||
|
||
- [harakas/amd_igpu_yolo_v8](https://github.com/harakas/amd_igpu_yolo_v8) - AMD統合GPU向け実装例
|
||
- [ROCm Docker Hub](https://hub.docker.com/r/rocm/pytorch) - 公式Dockerイメージ
|
||
- [PyTorch for AMD ROCm Platform Blog](https://pytorch.org/blog/pytorch-for-amd-rocm-platform-now-available-as-python-package/)
|
||
|
||
### トラブルシューティングリソース
|
||
|
||
- [How to run torch with AMD gpu? - PyTorch Forums](https://discuss.pytorch.org/t/how-to-run-torch-with-amd-gpu/157069)
|
||
- [Install AMD GPU ROCm and PyTorch on Ubuntu - GitHub Gist](https://gist.github.com/jurgonaut/462a6bd9b87ed085fa0fe6c893536993)
|
||
|
||
---
|
||
|
||
## まとめ
|
||
|
||
### 重要なポイント
|
||
|
||
1. **公式サポートなし**: Ultralytics YOLOはROCmをネイティブサポートしていないが、PyTorchのROCmバックエンド経由で動作可能
|
||
|
||
2. **デバイス指定**: `device='cuda'` または `device=0` を使用(`'rocm'`や`'hip'`は無効)
|
||
|
||
3. **環境変数が重要**: 統合GPUや一部のコンシューマーGPUでは `HSA_ENABLE_SDMA=0` と `HSA_OVERRIDE_GFX_VERSION` が必須
|
||
|
||
4. **Dockerが推奨**: 環境の一貫性とトラブル回避のため、公式ROCm PyTorchイメージの使用を推奨
|
||
|
||
5. **パフォーマンス**: NVIDIA CUDAより遅い場合があるが、小~中規模の用途では実用的
|
||
|
||
### 次のステップ
|
||
|
||
- 自分のGPUアーキテクチャを確認 (`rocminfo | grep gfx`)
|
||
- Docker環境でテスト推論を実行
|
||
- パフォーマンスが不十分な場合はONNX + MIGraphXを検討
|
||
- 本番環境ではクラウドGPUの使用を検討
|
||
|
||
---
|
||
|
||
**ドキュメント作成**: Claude Code (Sonnet 4.5)
|
||
**最終更新**: 2026-02-07
|