AIハードウェアとソフトウェアスタック

行列の積の結果にバイアスを足し、ReLUを通す処理を、3つの別々のカーネルから1つに融合した。主に減るものはどれか。

  1. A掛け算の回数
  2. Bメモリ(HBMなど)への読み書きの量と、カーネルの起動の回数
  3. Cモデルの重みの数
答えと解説を見る

正解:B. メモリ(HBMなど)への読み書きの量と、カーネルの起動の回数

別々のカーネルでは、行列の積の結果をメモリに書き、バイアスのカーネルが読んで書き、ReLUのカーネルがまた読んで書きます。融合すると、行列の積の結果を求めたその場でバイアスを足してReLUを通し、最終結果だけを書けばよいので、途中の大きなテンソルの読み書きが2往復分なくなり、起動の手間も減ります。計算の量そのものは変わりません。

  • A. 行列の積の掛け算の回数は同じです。
  • B. 正しい。計算の量は変わりません。
  • C. 重みの数は変わりません。
この分野を解く 分野ページへ

AIハードウェアとソフトウェアスタックのほかの問題

  1. XLAやTVM、PyTorchのコンパイル機能のようなAIコンパイラが行う主な処理として正しいものはどれか。
  2. AIのフレームワークやコンパイラで使われる「計算グラフ」の説明として正しいものはどれか。
  3. ONNXの説明として正しいものはどれか。
  4. TensorRTやONNX Runtimeのような推論ランタイムが、学習用のフレームワークでそのまま推論するより速くできる主な理由はどれか。
  5. ReLUやレイヤー正規化のような要素ごとの演算が、AIの計算の中で演算の回数の割に時間がかかりやすい理由として正しいものはどれか。