NVDA情報局(フラグ)スマートフォン用の表示で見るNVDA情報局(フラグ)投資家目線でNVDAを買い煽るためのメモですこの広告は、90日以上更新していないブログに表示しています。15:00突き詰めると同じ頭脳だけど、人数がだいぶ違う。CPUとGPUの違いはアーキテクチャです。具体的には搭載されているコアの数が違います。コアの数は同時に解ける問題の数を表してます。簡単に言うと、GPUはCPUよりはるかにたくさんのコアを載せています。980には2000コア以上が詰まっています。コア数が多ければいいというものでもありません。ものすごく簡略化して言うと、GPUは工場のようなもの、CPUはスティーヴン・ホーキング博士みたいなものです。工場の作業者ひとりひとりが、コアを表します。工場では簡単で似たような仕事、つまり絵の形や色などの情報を、大量に効率よくさばいていきます。ホーキング博士は、とても賢いですがひとりだけの存在。彼のスキルは、例えばブラックホールがどうなってるのかみたいな、ひとつの難しい問題に取り組んだほうが生かされます。GPUはどんな問題でも高速処理できるわけではなく、並列計算できるような問題でなければ処理は遅くなってしまいます。グラフィックス処理は、たとえば「アイテムを落としたら、落ちる」とか「服に風があたったらなびく」といったような、つねに答えが同じになるような単純な問題だから、並列で処理できるとも言えます。本当に負荷の高いゲームだと、スマートなCPUもパワフルなGPUも両方必要になってきます。---------------------------------------------------------------------------------------------------------------------CPUとGPUの違い、例えていえば?・・・これはちょっと。猿を調教する人が、数人で考えて作業する違いぐらいで例えないとね。概念はCPUのコアとは違う上に、各社によって概念はまちまちである。コアと称するものをどこで分けるか、本当に小さなコア単位か、それ以外か・・・で変わるのだ。考えると、同じ種にはならないという点も難しさに繋がる。言えば、何故コアが多いGPUが工場でCPUは、一人なのか?コア単位で考えるなら、最低でも二人以上いるのが今のプロセッサと思うのだがと思うと・・・もう書かずにはいられなくなった。<GPUの歴史は、RGBボード(コネクター)→加速器(アクセラレータ)>元々は、コンピュータグラフィックスの色や線、文字の生成を行うためのキャッシュ(VRAM)と、その生成を補助するアクセラレータ(ASIC)の構成であった。最初は、白黒(緑など)2値だった色が8色になるためのボードだったが、その後16色、256色・・・と進化した。Graphics(VIA→現在はHTC)のViRGE頃から3D(三次元コンピュータグラフィックス)を安価に飲み込むようになった。256の登場により、条件固定処理だが、これに光源や変形などを加えたほぼ全ての処理が、出来るようになった。<GPU誕生>その後、光源の加減、数などをプログラミングで自在に出来るように調整できるように徐々に改良された。Coreであり、描画以外の目的を本格的に与えたのが、nVIDIAである。その際に、CUDA(クーダ)と呼ばれるグラフィックス演算以外にも、グラフィックスアクセラレータを使うプログラミング手法が発表された。Coreは当初、陰影処理に特化したエンジンであった。そのため、初期のCUDAでは、出来る事に限界があった。CPUがやる作業の全てが出来る訳では無く、出来ない物や、やっても最終的に速度が上がらないものもあった。Coreが得意とする処理は、速いという特性があったから、使われたに過ぎない。<GPUが普及した理由と仕組み>では、何故GPUは早くなったり遅くなったりと作業によって、違いが出るのか?これは、専用道路を走るのと同じである。一般道なら道が有る限り、どこにでもいけるがスピードは出ない。目的専用の道路をA点からB点まで敷設すれば、一般道を通らなくても短時間でたどり着ける。グラフィックス装置というのは、そのA点(CGの演算データ)からB地点(描画した結果を映像にする)役割に特化していた訳だ。出入り口がその一カ所しかなく関係者以外立ち入り禁止であったり、その周りに民家などめぼしい建物が少なければ、他の道として使うこともない。これがグラフィックスアクセラレータであり、当時はそれしか出来なかった理由である。これは、動画のエンコーダーボードなど専用のハードウェアが持つ特徴でもある。最初はそれだけだったが、CGをより複雑に(リアリティを高く)高速に処理する過程で、自由に光の角度や影の付け方、線の引き方などを専用に調整する計算装置が加わっていった訳だ。すると、AとBの途中にいくつかのインターチェンジやジャンクションが作られるようになった。そのインターで降りるような処理があれば、汎用命令も信号機のある一般道を通らなくても高速化出来る。それが、GPUという製品に繋がったわけだ。CPUが行っている汎用演算の一部を、グラフィックスアクセラレータで代替出来るようになった訳だ。GPUでの処理では、元々グラフィックス1回(1描画、1フレーム)の画面描写に、複数の移動パターンがある。そのため、同時に複数の移動計算が必要になる。計算の基礎範囲はあくまで描画に必要なものに限られる。この計算はsignだから計算機1で計算しなさいなどと、分岐を繰り返して、目的の演算器に分ける必要が少ない。そのため、CPUのように大きなプロセッサを少数載せるより、いくつかの小さなプロセッサを、命令にある程度特化して、多数搭載した方が、目的に見合うのだ。それをいくつかの制御モジュールで(ボスザルに相当)統括した方が効率的だと判断して、実装されている。(このボスザルの部分をどこで区別するか、そもそもボスザルか、最小単位で区別するかで、コア数の概念がメーカー毎、目的毎に変わる)そういう仕組みがGPUのベース技術である。実際にはGPUと言っても、世代毎にドラスティック(大胆)に構造が変化しており、CPUよりも内部構造の世代変化は激しい。Shaderとしてサポートされている。現在は、より追加命令が増え、様々な用途で使えるようになったのだ。そのため、今では全ての製品が、GPUを搭載しそれを活用するようになった。折しも、GPUが普及し始めてから、CPUの発展に陰りも見えていたため、それも普及を後押しした。GPUが内部構造を大きく変えても、互換性を保てるのかというと、ASICの発展から生まれたGPUは、CPUとは違って、汎用演算の中枢を担っている訳では無い。要は、CPUやチップセットという核が、コンピュータの演算方法を決めているわけだが、GPUはその目的がない拡張デバイスの一つから始まっている。周辺機器として動作するGPUはドライバとソフトウェアファームでその違いを吸収できるという特徴がある。GPUはCPUにはなれないということであり、もし、組織に例えるなら、決定権の全てを握るのがCPUであり、GPUはその一部門での管理者である。CPUから、専門のお仕事を分けて貰い猛烈な早さでこなす役割を持つが、彼らが苦手とする仕事を間違って与えることがあれば、彼らは上手にこなすことが出来なくなる。近年はCPUにGPU機能を内蔵したり統合するケースも見られる。これは、アクセラレータ(加速器)という役割だったグラフィックス処理が、既に当たり前の機能になり、目的が共通化されたこと。半導体の微細化技術が発展し、小さなパッケージにCPUもGPUも収められるだけの製造技術が確立したこと、さらに先に述べたようにCPUの性能向上よりも、GPUの性能向上の方が重宝されるようになり、それに合わせてプログラミング技術も発達したことが理由である。ちなみに、GPUは工場のようなもの、CPUはスティーヴン・ホーキング博士みたいなものになっているが、そもそもお互いが別々の存在になることはないし、CPUに特別な頭(有名な人)を与える必要はない。本来は、上にあるなら誰でも良いのだ。上長として(周りに気を配れるだけの力をもって)上にいられるというだけだ。基本的にGPUの最終管理はCPUでありそれが状況確認をしている。(ソフトウェアによるOSカーネルとHAL制御を担う)即ち、互いに相互作用を持っている訳だ。CPUは上にあって万能だが特化ではないというだけの違いだ。社長が、遊び人かそれとも、仕事人かは、作業内容による。CPUが遊んでいようが、GPUは僅かでも、ずっと描画を続けているのだ・・・。電源を入れていてGPUが遊びだすとしたら、壊れた時ぐらいだろう。<これを、簡単にまとめると・・・>即ち、CPUは何でもそこそここなす社長、GPUは片手間に他作業も手伝う職人(専門家)である。CPUは管理者だから責任もあり、嫌な事でも、何でも一通りは出来る。作業速度は普通である。代々CPUさんは社長(CEO)の席に座っている。一方で、GPUは専門部署の職人である。CPUさんの会社で代々仕事をしてきたという歴史がある。CPUさんの会社では、曾祖父が時より臨時社員として雇われていた。祖父の代頃に、曾祖父は正規採用になり、祖父が臨時から入社。その後、父へと代替わりし、父は正規社員としてCPUさんの会社で雇われ、毎日正規で働くようになった。その子もまたCPUさんの会社に入り、GPUと呼ばれるようになる。その覚えの良さと、作業の速さからCPUさんの仕事の一部を任せられるまでに出世した。職人気質があるためか、苦手なことはやらない。出来ないと結構堅物である。今、孫娘は、社長室で秘書兼技術部門長をしていたりする(IGP/CPU内蔵グラフィックス)が、やっぱり親の影響か堅物なところがまだまだ多く残っている。2016年2月19日GPUは並列処理に特化しているため、画像処理のような一部分の計算が全体の結果に影響しない場合に高速に演算できます。独立した100個の掛け算をする場合、CPUは掛け算を100回繰り返して答えを出します。GPUは100個の掛け算を並列に処理して答えを出します。CPUに対して100倍の速度でGPUは処理が終了します。ようにAxBの計算をしてCの値を計算してからでないと次のCxDの計算ができない処理の場合は並列処理ができませんからGPUはCPU以下の処理能力しか発揮できません。CPUはGPUより複雑な演算ができると書いてあるのですが、具体的にCPUにどのような演算ができて、GPUにはこんな演算はできないかを教えてください。簡単に言えばCPUは汎用性が高く、どのような計算もそれなりの時間で処理します。GPUは並列処理に特化しているため、画像処理のような、一部分の計算が全体の結果に影響しない場合に高速に演算できます。ない場合はGPUはフルの能力を発揮できないためCPU以下の処理能力になります。独立した100個の掛け算をする場合、CPUは掛け算を100回繰り返して答えを出します。GPUは100個の掛け算を並列に処理して答えを出します。CPUに対して100倍の速度でGPUは処理が終了します。それに対して独立していない掛け算の場合、つまりAxB=CCxD=EExF=GのようにAxBの計算をしてCの値を計算してからでないと次のCxDの計算ができない処理の場合は並列処理ができませんからGPUはCPU以下の処理能力しか発揮できません。逐次型処理は苦手なんです。cpuとgpuの違いは具体的には何ですか?cpuは中央演算、gpuは、画像処理なのはわかるのですが、画像処理を任せるのがもう一つのcpuじゃ駄目なんですか?画像処理はたくさんの処理をしますよね、という事は、cpuより、gpuの方が性能良いということでしょうか?画像処理をしようが、普通の処理をしようが結局0と1で、計算をする事には、変わりないと思うのです。CPUは汎用性があり1つの計算を処理するのに適していますが、GPUは複数の計算を同時に処理する事が可能ですがCPUより遅いです。1個の同じ処理ををCPUとGPUで競争させるとCPUの方が早いですが、50個の計算をCPUとGPUで競争させると、CPUはその50個の計算をひとつずつ処理するのにに対し、GPUは1度に複数の計算が出来るのでGPUの方が早く処理し終えます。最近のCPUでは16スレッドで同時に16個の計算が出来る物もありますが、GPUは240スレッドで同時に240個の処理ができます。CPUに比べてかなり多くの計算を同時に処理する事が可能です。3Dなど、複数の計算を処理するのにはCPUでも処理は可能ですがGPUと比べて凄く遅くなります。cpuは、仕事の速い職人、gpuは、仕事が普通だがみんなで集まってやってる、工場?●GPUは人海戦術GPUの行う作業はとても単純です。単純作業は簡単に分業ができます。画面描画は、たとえば画面をいくつかに分割して、多数のGPUコアで手分けして作業ができるのです。