(O+P)ut

OutPut Log by SE in SIer



(O+P)ut

Output Log by SE

ディープラーニングにGPUが採用される理由

スポンサーリンク

結論

ディープラーニングの演算の肝は行列の積であり、行列の積はGPUの強みである並列処理で捌けるから。

以下、補足です。

関連書籍

補足

CPUとGPU

GPUGraphics Processing Unitの略で、その名の通り画像処理を得意とするプロセッサです。CPUの仲間です。

一方で特性は違っており、
CPUとGPUは、スポーツカーバスによく例えられます。

クロック周波数が早い、つまり一つの処理が早いのはCPUです。
これが、スポーツカーに例えられる所以で、スポーツカーは行き先も自由です。

ところが、乗客が50人いる時、50人の行き先が同じ場合はバスの方が圧倒的に早く輸送できます。逆に、全員が違う目的地ならスポーツカーの方が早く輸送できそうです。
この「行き先が同じ」という点がポイントで、同じ計算を並列処理する場合を指す例えになっています。

CPUは小回りが効くのでどこでも行くことができ、GPUは小回りがきかないものの特別なケースで大活躍します。

そして、その特別なケースが、並列処理です。

並列処理

例えば、以下のような行列の積は
 \left(\begin{array}{cc} g^{11} & g^{12} \\ g^{21} & g^{22} \\ \end{array} \right) \left( \begin{array}{cc} A_{1}\\ A_{2}\\ \end{array} \right)
それぞれの要素の積の和となります。
 \left(\begin{array}{cc} g^{11}A_{1}+g^{12}A_{2}\\ g^{21}A_{1}+g^{22}A_{2}\\ \end{array} \right)

この二つの
g^{11}A_{1}+g^{12}A_{2}

g^{21}A_{1}+g^{22}A_{2}
ですが、演算順序に依存性はありません。

つまり、独立性を持っているので並列処理が可能です。

そして、ディープラーニングは各ニューロンを学習すべく偏微分を行います。
この偏微分を解くために、疎行列の積が登場します。つまり、GPUの得意な並列処理ができるのです。

終わりに

「ディープラーニングにGPUが採用される理由」と検索しても、結論が出てこない記事が多かったので冒頭に結論をザクッと書いてみました。

理解の一助になれば幸いです。


他の記事を読む