Re Reference AI

技術

テンソル演算(Tensor Operation)とは

Tensor Operation

多次元配列であるテンソルに対する加算・乗算・畳み込みなどの数値演算群。深層学習の計算基盤

深層学習並列計算

ひとことで言うと

AIモデル内部で大量の数値をまとめて処理する計算。GPUで並列に高速実行される。

概要

テンソル演算とは、スカラー・ベクトル・行列を一般化した多次元配列(テンソル)に対して行う、加算・乗算・内積・畳み込みなどの数値計算を指す。ニューラルネットワークの順伝播・逆伝播は大量のテンソル演算の連続として表現でき、層ごとの重み行列と入力データの積和演算がその中心を占める。個々の要素の依存関係が薄く並列実行しやすいため、CPUよりも多数の演算コアを持つGPUTPUとの相性がよく、CUDAのような並列計算プラットフォームやPyTorch・TensorFlowといったフレームワークは、テンソル演算をハードウェア上で効率よく実行するための抽象化層として機能する。モデルの学習・推論にかかる時間やコストの多くは、このテンソル演算の実行時間に左右される。

利点

  • 多次元配列としてデータをまとめて扱えるため、ループを書かずに大量の数値計算を簡潔に表現できる
  • 個々の演算が独立しやすく、GPU等の並列計算ハードウェア上で高いスループットを引き出しやすい
  • 自動微分と組み合わせることで、逆伝播に必要な勾配計算を演算グラフから自動的に導出できる

欠点

  • 行列やテンソルのサイズが大きくなるほどメモリ消費量が増え、GPUメモリの上限が制約になりやすい
  • 演算の種類やテンソルの形状によっては並列化の恩恵を受けにくく、ハードウェアの性能を引き出せない場合がある

比較

  • CUDACUDAはテンソル演算をNVIDIA製GPU上で並列実行するためのプラットフォームであり、テンソル演算そのものではなく実行基盤にあたる
  • PyTorchPyTorchはテンソル演算を扱うためのデータ構造(Tensor)とAPIを提供するフレームワークで、内部でCUDA等のバックエンドを呼び出す

関連用語

GPUCUDAPyTorchニューラルネットワーク誤差逆伝播法