大量の画像データを使った機械学習の処理に時間がかかるため、サーバにGPUを増設し、 その計算をGPUに担わせることにした。GPUを使うと処理時間が短くなる理由として、 最も適切なものはどれか。
正解:ア
ア単純な計算を行うコアを多数もち、同じ計算を大量のデータに対してまとめて並列に実行できるから。
正解。GPUの強みは1つの計算が速いことではなく、同じ形の計算を一度に大量に こなせることです。画像を扱う計算は同じ演算の繰り返しなので相性がよく、 まとめて処理できる分だけ時間が縮みます。
イ命令を一つずつ順番に解釈し、条件分岐の多い手順を柔軟に処理することが得意だから。
誤り。これはCPUが得意とすることの説明です。前の結果によって次にやることが 変わる手順は分担できないため、コアを増やしても速くなりません。 GPUに任せて効果が出るのは、分担できる計算のほうです。
ウ画面に表示する映像の信号を作り、ディスプレイへ送り出す働きを備えているから。
誤り。GPUが本来担ってきた役割はそのとおりですが、機械学習の処理が 速くなる理由の説明にはなっていません。この画像処理向けの計算力を 画像以外の用途にも使うことをGPGPUと呼びます。
エコア一つあたりの処理速度がCPUよりはるかに速く、どんな処理も短時間で終わるから。
誤り。よくある誤解です。コア1つあたりの能力はむしろCPUのほうが高く、 GPUは数の多さで勝負します。並列に分けられない処理をGPUに移しても、 期待した効果は得られません。
少数の職人か、大人数の作業班か
CPUとGPUは、どちらも計算をする部品ですが、仕事の受け方が正反対です。
- CPU — 少数の高性能なコアが、手順の書かれた指示書を上から順に読んで進める職人
- GPU — 単純な計算しかしないコアが多数並び、同じ作業を一斉に片づける作業班
宛名を1万枚書く作業を想像してください。1人の職人がどれだけ速くても、 100人で分担したほうが早く終わります。GPUが強いのはこの形の仕事です。
分担できる仕事かどうかで決まる
一方、「前の計算結果を見てから次を決める」処理は分担できません。 100人いても、1人が終わるのを99人が待つだけになります。 条件分岐の多い処理や、機器全体の取りまとめはCPUの領分です。
画像を扱う計算は、画素ごとに同じ演算を繰り返す形になります。 機械学習の学習処理も似た構造なので、GPUが力を発揮します。
GPGPUという言葉
GPUは元々、画面に映す映像を作るための部品でした。 その並列計算の力を、画像処理以外の科学技術計算や機械学習などにも使うことを GPGPU(GPUによる汎用計算)と呼びます。
| 用語 | 位置づけ |
|---|---|
| GPU | 多数のコアで同じ計算を並列に行う。元は画像処理向け |
| CPU | 少数の高性能コアで、手順を順に解釈し機器全体を制御する |
| GPGPU | GPUを画像処理以外の汎用的な計算にも使うこと |
試験では「大量」「同じ処理」「並列」が出たらGPU、「順番」「制御」が出たらCPUです。 GPGPUは部品の名前ではなく使い方の名前である点に注意してください。