AIハードウェアとソフトウェアスタック
行列の積の結果にバイアスを足し、ReLUを通す処理を、3つの別々のカーネルから1つに融合した。主に減るものはどれか。
- A掛け算の回数
- Bメモリ(HBMなど)への読み書きの量と、カーネルの起動の回数
- Cモデルの重みの数
答えと解説を見る
正解:B. メモリ(HBMなど)への読み書きの量と、カーネルの起動の回数
別々のカーネルでは、行列の積の結果をメモリに書き、バイアスのカーネルが読んで書き、ReLUのカーネルがまた読んで書きます。融合すると、行列の積の結果を求めたその場でバイアスを足してReLUを通し、最終結果だけを書けばよいので、途中の大きなテンソルの読み書きが2往復分なくなり、起動の手間も減ります。計算の量そのものは変わりません。
- A. 行列の積の掛け算の回数は同じです。
- B. 正しい。計算の量は変わりません。
- C. 重みの数は変わりません。