GPUとは(文系新入社員向けIT用語説明)
前置き
私の説明は、文系新入社員向けに、漏れなくダブりなく説明することでは”ありません”。7割の精度で素早く用語を理解することを目指しています。
そのため、敢えて間違った説明をしていきます。理由は単純。IT独自の用語が多すぎるし、時代とともに意味が変わるし、どんどん増えていくため、専門家を目指すのでなければ、ざっとした本質的な理解で十分です。特に新入社員は。
3秒理解:GPUを一言で言えば
割り算を素早く適当に答えるヤツになります。
人間よりも正確に答える機械が適当に答えるなんで信じられないと思いますが、適当に答えてくれるのがGPUです。逆に言えば適当に答えてくれないと時間がかかりすぎます。だって、永遠に割り切れない数を延々と計算されても困りますよね。
この割り切れない計算を素早く適当に答えてくれる特性が有効に働くのが、2次曲線や3次曲線などの多少不正確性があっても問題ない画像になります。(人間の目には誤差が判定できない)
では具体的にパソコンにおけるGPUの役割を説明します。
背景: パソコンにおける本来のGPUの役割
GPU(グラフィクスプロセッサーユニット)と呼ばれているように、主な役割は画像を生成しモニターに出力することです。
画像、とくにグラフの曲線は小数点以下をよく扱うことから、GPUは小数点を扱うことに長けています。
主な役割としては正直以上です。 AIにおけるGPUの役割はここでは割愛し後半のGPUの進化の部分で改めて説明します。
Intel社の物理的CPUの中には複数のコアと呼ばれるCPUが複数入っていますが、実は最近のCPUの中にGPUも一緒に入っている製品もあります。
GPUもCPUと計算処理方法は違えど基本は、メモリから手順(プログラム)とデータを取り出し、順番に処理していくことには変わりませんのでまとめてもそれほど不都合がなかったと思われます。
概要: GPUを構成する基本技術(用語)説明
現在のGPUは複雑なので、最低限に絞ります。
解像度とは・・・1画面(横x縦)に表示する点(描画点)の数です。
一般的には1280x960という表記のされ方をします。
fps とは ・・・一秒間に何枚の画像を表示するか。一般的に人間の目では
30fpsあれば滑らかに見える。(ぱらぱら漫画の枚数と同じ)
クロック数(Hz数)とは・・・1秒間に何回動作するのか?です。
音楽のメトロノームのように、カチカチという
タイミングでGPUは動作しています。
数が大きければ大きいほど動作が早い。
コア数とは・・・CPUのコアと同様にGPUも仮想化されており、
コア数の数だけ複数のGPUが内蔵されている。
コネクタとは・・・ゲーム機などで用いられるモニターに接続する形状
HDMIやDisplayPort,USB typc-Cなどがある
なぜGPUにもそんなに複数のGPUコアが必要なのかは、
アニメーションをイメージしてもらうのがわかりやすいので、
アニメを使って説明します。
通常アニメはセル画という透明な用紙に背景を書き、その上に人物像を書いたもう一枚のセルを重ねて絵を完成させています。
もう少し細かく言うと、人物画のセルと、口だけパクパク、閉じたり開いたりするセルを受けから重ね、交互に入れ替えることで、セリフを話しているように見せかけています。
このようにアニメではセル画を何枚も重ねて画像を生成しています。
実はコンピュータも同じ手法が取れており、セル画の代わりに”レイヤ”という名前で画像が層になっています。
セル画と違うところは、口がパクパクの間をより自然にするために画像を生
成出来る点にあります。
GPUコアは、それぞれのレイヤ毎の動作を計算し処理していることで、特にゲームのようなリアルタイム性が求められる画像生成には威力を発揮します。
進化:GPUの活用(ゲームとAI)
GPUは最初はゲームの高解像とリアルタイム性に対応するために進化しました。具体的に言いますと、大量の画像データをいちいちメモリに取りに行くと遅くなるので、GPU専用のメモリが搭載されるようになりました。
そして3D画像をほぼリアルタイムで生成したり、60fpsなど画像をより綺麗にみせるためGPUは沢山のコアを詰め込むことで性能を向上させてきました。
その弊害として、電力の大量消費とCPUと同じく熱問題に直面した結果、
通常のコネクタとは違う別から電源を供給し、巨大なファンを専用に標準装備した状態で製品が作られるようになりました。
この割り算が得意で、沢山のコアを積み、専用の大容量メモリを搭載している”GPUカード”が、AIを行うために最適な環境でした。(AIはまた別途説明します)
現在はAIとGPUは切っても切れない関係にあります。じゃあGPUがなければAIができないかと言えば、出来ます。しかし通常のCPUでAIを行うのとGPUで行うのは、例えると徒歩とジェット機なみの速度差があり比較対象にもならないぐらいGPUはAIと相性がよいです。
今後: GPUを知ることで何に役立つのか?
GPUなんて普段パソコンを使っているヒトなら直接なにかするわけでもないし、開発者の人にとっても直接的には関係がないことにはなります。
しかしコア数の並列性とメモリ容量を認識していないと、せっかく高いGPUを購入しても遅いと言う結果になりかねません。
開発やインフラを担う場合は最低限ハードウェア特性を理解しながら構築・開発を行うことが求められます。
GPUはCPUよりも桁違いのコア数を誇っているため、高クロックによる発熱問題と同じことが起こっています。私個人の認識で言えば、家庭用では結構ギリギリのところまで来ているため、今後は家庭用については頭打ちになると考えられます。
またGPUの進化が激しく3、4年前のGPUと最新版を比べると数倍の性能差になるケースが普通の状態のため、ここ最近ではGPUを物理的に購入するのは経済的合理性がないケースも散見しています。
ここ数年は、2、3年の型落ちを毎年買い替えるやり方や、クラウドのGPUを適宜借りた方がコストパフォーマンスが良いようです。
これらのこともCPUで少し触れました量子コンピュータが出ることで一変する可能性があります。今後の量子コンピュータの動きは気にかけておいてください。
ちなみに量子コンピュータがなぜ早いのか?(今後早くなると言われているのか)を簡単に説明すると、今のコンピュータは一つの線で、電気があるか(1)、ないか(0)の2つの状態しか表現できない。つまり一度に1つの情報しか送れないのに対して、量子コンピュータは”波”(波形)で送るため現在のコンピュータに比べて一度に数十倍送ることが出来るようになるため格段に早くなると言われています。
量子コンピューターは現在技術的問題から通常のコンピュータよりも遅く高価であるため、まだ実用的ではないと言われてますが、5年後はわかりません。AIだって5年前はまだまだでした。
ですが最新技術も基本技術の延長線上にあります。
まずは基本を理解し、新しい技術や用語が出てきても類推出来る基礎力をぜひ向上させていってください。