Re Reference AI

インフラ

ROCmとは

Radeon Open Compute

AMD GPUで汎用計算するためのオープンソースの並列計算プラットフォーム

AMD並列計算

ひとことで言うと

AMD製GPUでAI計算などを行うための仕組み。

概要

ROCm(ロックエム, Radeon Open Compute)とは、AMDが提供する、自社GPU上で汎用計算(GPGPU)するためのオープンソースの並列計算プラットフォーム。 NVIDIA GPU向けのCUDAに相当する役割を担い、PyTorchやTensorFlow等の主要な機械学習フレームワークからAMD GPUを利用できるようにするドライバ・ライブラリ・コンパイラ群から構成される。 NVIDIA一強とされてきたAI向けGPU市場において、AMDが対抗するための重要な技術基盤となっている。 対応GPUの範囲やソフトウェアの成熟度ではCUDAに一日の長があるとされてきたが、近年は主要フレームワークでの正式サポートが進み、大規模学習クラスタ向けのAMD製GPU採用事例も増えている。

背景

機械学習の計算基盤は長らくNVIDIA GPUCUDAのエコシステムが主流であり、AMD GPUを同様に機械学習で活用するにはCUDAに相当する独自のソフトウェア基盤が必要だった。 ROCmは、AMD GPU機械学習・HPC(高性能計算)で活用できるようAMDが開発した。

歴史

2016年: AMDがROCmを発表し、オープンソースの並列計算プラットフォームとして開発を開始。 以降、主要な機械学習フレームワークへの対応を拡大し、AI向けGPUの選択肢としてNVIDIA以外のエコシステム構築を進めている。

アーキテクチャ

GPU向けのカーネル記述言語であるHIP(CUDAからの移植を意識した設計)や、ドライバ・ランタイム・数値演算ライブラリ群から構成される。 CUDAで書かれたコードをHIPへ変換するツールも提供され、既存のCUDA向け実装をAMD GPU向けへ移植しやすくしている。

利点

  • AMD GPU機械学習・HPC向けの汎用計算に活用できる
  • オープンソースで提供されており、ソフトウェアスタックの詳細を確認・改変できる

欠点

  • CUDAと比べ、対応するライブラリやツールのエコシステムがまだ小さい
  • フレームワークやモデルによっては、CUDA環境ほど動作実績が豊富ではない場合がある

比較

  • CUDAROCmはAMD GPU向け、CUDAはNVIDIA GPU向けの、それぞれ対応する並列計算プラットフォーム
  • GPUROCmは、AMD製GPUを汎用計算に活用するためのソフトウェア基盤

関連用語

CUDAGPUPyTorch

よくある質問

PyTorchはROCmに対応している?

対応しており、ROCm向けにビルドされたPyTorchを使うことで、AMD GPU上でも機械学習モデルの学習・推論ができる。

参考文献

関連Zenn記事