AIハードウェアとソフトウェアスタック
推論と学習の違い、量子化、演算強度とRooflineモデル、シストリックアレイ、演算の融合やタイリングなど、AIのハードウェアとソフトウェアを3択問題で学べます。
—あなたの正答率
0 / 50解いた問題
AIハードウェアとソフトウェアスタックの要点
ニューラルネットワークの計算の大部分は、大きな行列の掛け算と足し算です。そのためAI向けのハードウェアは、多数の積和演算器を並べ、データをできるだけ再利用してメモリとのやり取りを減らすように作られています。学習は推論より計算量とメモリが大きく、高い精度の数値も必要です。
性能を決めるのは演算器の数だけではありません。1バイトのデータあたりの計算量(演算強度)とRooflineモデルを使うと、計算が演算で詰まっているのかメモリ帯域で詰まっているのかが分かります。量子化、演算の融合、タイリングなど、AIコンパイラや推論ランタイムがハードウェアの力を引き出すしくみも学びます。
AIハードウェアとソフトウェアスタックの問題一覧(50問)
- ニューラルネットワークの「学習」と「推論」の違いとして正しいものはどれか。
- 学習に必要なメモリが、同じモデルの推論よりずっと大きくなる理由として当てはまらないものはどれか。
- パラメータ数70億(7B)のモデルを、重み・勾配・Adamの2つの状態をすべてFP32(4バイト)で持って学習する。活性化を除いて必要なメモリに最も近いものはどれか。
- パラメータ数70億(7B)のモデルの重みをFP16(2バイト)で持つと、重みのメモリはおよそいくらか。
- 前の問いの7BのモデルをFP16(約14 GB)から4ビットの整数(INT4)に量子化すると、重みのメモリはおよそいくらになるか。
- M×Kの行列とK×Nの行列の積を計算するときの浮動小数点の演算回数(掛け算と足し算を別々に数える)はおよそいくらか。
- N×NのFP16(2バイト)の行列どうしの積で、2つの入力を1回ずつ読み、結果を1回書くとする。演算強度(1バイトあたりの演算数)はおよそいくらか。
- ピーク性能100 TFLOPS、メモリ帯域2 TB/sのアクセラレータで、演算強度が10 FLOP/バイトの処理を実行する。Rooflineモデルで見積もった達成できる性能はいくらか。
- 入力が1つだけ(バッチサイズ1)のとき、全結合層の計算(重みの行列とベクトルの積)がメモリ律速になりやすい理由として正しいものはどれか。
- 推論でバッチサイズ(まとめて処理する入力の数)を大きくすると、処理全体の効率が上がりやすい理由はどれか。
- 推論でバッチサイズを大きくしすぎたときの欠点として正しいものはどれか。
- 大規模言語モデルの推論は、入力の文章をまとめて処理する段階(プリフィル)と、1トークンずつ出力を作る段階(デコード)に分かれる。それぞれの性能を主に決めるものの組み合わせとして正しいものはどれか(バッチが小さい場合)。
- 大規模言語モデルの推論で使われるKVキャッシュの役割として正しいものはどれか。
- 大規模言語モデルの推論で、長い文章や大きなバッチを扱うときに問題になりやすいことはどれか。
- FP16で約14 GBの重みを持つモデルを、メモリ帯域2 TB/sのGPUでバッチサイズ1でデコードする。1トークンの生成にかかる時間の下限に最も近いものはどれか。
- Transformerのセルフアテンションの計算量が、入力の系列の長さnに対してどのように増えるか。
- FlashAttentionなどの高速なアテンションの実装の主な考え方として正しいものはどれか。
- AIの計算で使われる「演算の融合(オペレータフュージョン)」の主な目的はどれか。
- 行列の積の結果にバイアスを足し、ReLUを通す処理を、3つの別々のカーネルから1つに融合した。主に減るものはどれか。
- XLAやTVM、PyTorchのコンパイル機能のようなAIコンパイラが行う主な処理として正しいものはどれか。
- AIのフレームワークやコンパイラで使われる「計算グラフ」の説明として正しいものはどれか。
- ONNXの説明として正しいものはどれか。
- TensorRTやONNX Runtimeのような推論ランタイムが、学習用のフレームワークでそのまま推論するより速くできる主な理由はどれか。
- ReLUやレイヤー正規化のような要素ごとの演算が、AIの計算の中で演算の回数の割に時間がかかりやすい理由として正しいものはどれか。
- 畳み込みニューラルネットワークで、畳み込みの計算をim2colなどの方法で行列の積に変換して計算することがある理由として正しいものはどれか。
- 学習後量子化(PTQ)と、量子化を考慮した学習(QAT)の違いとして正しいものはどれか。
- 活性化をINT8に量子化する学習後量子化で行う「キャリブレーション」の目的として正しいものはどれか。
- 大規模言語モデルの量子化で、ごく一部のチャネルに大きな外れ値があると精度が落ちやすい。対策として一般的なものはどれか。
- 大規模言語モデルの推論で、活性化はFP16のまま重みだけを4ビットにする(W4A16)量子化が、デコードを特に速くする理由として正しいものはどれか。
- ニューラルネットワークのプルーニング(枝刈り)について正しいものはどれか。
- GPUの行列演算器が対応している「2:4の構造化スパース」の説明として正しいものはどれか。
- 知識蒸留(ナレッジディスティレーション)の説明として正しいものはどれか。
- 複数のGPUで学習するデータ並列の説明として正しいものはどれか。
- 1つのGPUのメモリに収まらない大きな層の行列の積を、複数のGPUで分けて計算するテンソル並列の説明として正しいものはどれか。
- モデルの層を順に複数のGPUに分けて受け持つパイプライン並列で、バッチを小さなマイクロバッチに分けて流す理由として正しいものはどれか。
- 分散学習で使われるオールリデュース(All-Reduce)の通信の働きとして正しいものはどれか。
- 学習で使われる勾配チェックポイント(活性化の再計算)の説明として正しいものはどれか。
- AI向けのアクセラレータで使われるシストリックアレイが、行列の積を効率よく計算できる主な理由はどれか。
- AI向けのアクセラレータが、チップの上に大きなSRAM(数十〜数百MB)を載せることがある主な理由はどれか。
- AIアクセラレータのデータフローの方式の1つ「ウェイトステーショナリ(重み固定)」の説明として正しいものはどれか。
- AIの推論をクラウドのサーバではなく、スマートフォンなどの端末の中(エッジ)で行う利点として当てはまらないものはどれか。
- スマートフォンのSoCに載るNPUが、AIの推論でCPUより電力の効率が高い主な理由はどれか。
- AIのアクセラレータの性能として示される「○○ TOPS」という値について注意すべき点として正しいものはどれか。
- 大規模な学習の効率を表す指標のMFU(Model FLOPs Utilization)の説明として正しいものはどれか。
- Transformerのモデルの学習に必要な演算の数の目安として、パラメータ数をN、学習に使うトークンの数をDとしたとき、よく使われる近似はどれか。
- パラメータ数Nの大規模言語モデルで、1トークンを生成する推論に必要な演算の数の目安はどれか(アテンションの部分を除く)。
- ソフトマックス関数exp(xi)/Σexp(xj)を計算するとき、各xiから最大値を引いてから計算することが多い理由として正しいものはどれか。
- 大規模言語モデルの推論を速くする「投機的デコーディング」の考え方として正しいものはどれか。
- 推薦システムのモデルなどで使われる大きな埋め込み表(エンベディングテーブル)の表引きが、AIのハードウェアで扱いにくい理由として正しいものはどれか。
- AIのソフトウェアスタックを、利用者に近い上の層からハードウェアに近い下の層へ並べたものとして正しいものはどれか。