シラバス
- エッジコンピューティング
- 分散処理
- ⅰ.並列分散処理
分散深層学習、モデル並列化、データ並列化
- アクセラレータ
- ⅰ.デバイスによる高速化
単一命令列複数データ (SIMD; Single Instruction Multiple Data)、
単一命令複数スレッド (SIMT; Single Instruction Multiple Thread)、
複数命令列複数データ (MIMD; Multiple Instruction Multiple Data)、
GPU (Graphics Processing Unit)、
TPU (Tensor Processing Unit)
- 環境構築
- ⅰ.コンテナ型仮想化
仮想化環境、ホスト型、ハイパーバイザー型、コンテナ型、Docker、
Dockerfile
1. モデルの軽量化(エッジコンピューティング)
上記で共通する目的は推論を高速化し、エッジデバイス(スマホ・組み込み機器等)でも動かせるようにすることです。
| 手法 |
内容 |
使いどころ |
| データ並列化 |
同じモデルを複数デバイスに複製し、データを分割して学習 |
学習を高速化したいとき |
| モデル並列化 |
1つのモデルを複数デバイスに分割して配置 |
モデルが大きすぎて1台のメモリに乗らないとき |
- メモリに乗り切らない巨大モデル → モデル並列
- 学習速度を上げたい → データ並列
| 分類 |
意味 |
| SIMD(単一命令列複数データ) |
1つの命令で複数のデータを同時処理 |
| SIMT(単一命令複数スレッド) |
GPUのアーキテクチャに近い、複数スレッドが同じ命令を実行 |
| MIMD(複数命令列複数データ) |
複数の命令列が独立して複数のデータを処理(一般的な並列コンピュータ) |
| デバイス |
特徴 |
| GPU |
汎用の並列演算に強い(元は画像処理用) |
| TPU |
Googleが開発した、行列演算(テンソル演算)に特化したASIC |
試験の定番:SIMD/SIMT/MIMDの定義の対比、GPUとTPUの用途の違い
| 種類 |
特徴 |
| ホスト型 |
ホストOS上に仮想化ソフトを載せ、その上でゲストOSを動かす(オーバーヘッド大) |
| ハイパーバイザー型 |
ハードウェア上に直接ハイパーバイザーを配置し、ゲストOSを動かす(オーバーヘッド小) |
| コンテナ型 |
OSのカーネルを共有し、プロセスを隔離するだけ(軽量・起動が速い) |
- Docker:コンテナ型仮想化の代表的なツール。Dockerfileに環境構築の手順を記述してイメージを作成する
試験の定番:「OSごと仮想化するか(ホスト型/ハイパーバイザー型)」vs「OSは共有し、プロセスだけ隔離するか(コンテナ型)」という対比、コンテナ型が軽量な理由(カーネル共有)
全体の覚え方の軸
- 軽量化:モデル自体を小さくする(削る/真似させる/精度を落とす)
- 分散処理:学習を複数デバイスに分担させる(データを割るか、モデルを割るか)
- アクセラレータ:計算を並列化するハードウェアの分類と代表デバイス
- 環境構築:仮想化のレイヤーの違い(OSごとか、カーネル共有か)