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

畳み込みニューラルネットワークで、畳み込みの計算をim2colなどの方法で行列の積に変換して計算することがある理由として正しいものはどれか。

  1. A変換すると演算の回数が10分の1になるから
  2. B高度に最適化された行列の積のライブラリや、テンソルコアなどの行列の演算器を使えるから
  3. C変換するとメモリの使用量が必ず減るから
答えと解説を見る

正解:B. 高度に最適化された行列の積のライブラリや、テンソルコアなどの行列の演算器を使えるから

im2colは、畳み込みの各窓に入る入力の値を1列に並べた大きな行列を作り、フィルタを並べた行列との積で畳み込みを計算する方法です。窓が重なる分だけ入力が重複してメモリは増えますが、何十年も最適化されてきた行列の積のライブラリや、テンソルコアのような行列の演算器をそのまま使えるので、全体として速くなることが多いです。重複を作らずに同じことをする実装もあります。

  • A. 演算の回数は変わりません。
  • B. 正しい。ただし入力を並べ替える分、メモリは増えます。
  • C. im2colでは入力を重複して並べるので、メモリはむしろ増えます。
この分野を解く 分野ページへ

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

  1. 学習後量子化(PTQ)と、量子化を考慮した学習(QAT)の違いとして正しいものはどれか。
  2. 活性化をINT8に量子化する学習後量子化で行う「キャリブレーション」の目的として正しいものはどれか。
  3. 大規模言語モデルの量子化で、ごく一部のチャネルに大きな外れ値があると精度が落ちやすい。対策として一般的なものはどれか。
  4. 大規模言語モデルの推論で、活性化はFP16のまま重みだけを4ビットにする(W4A16)量子化が、デコードを特に速くする理由として正しいものはどれか。
  5. ニューラルネットワークのプルーニング(枝刈り)について正しいものはどれか。