経営的な失敗です。すなわち、商売に失敗したからです。
20~50年前、全スマホで使われるARM(CPU 英)よりSH(CPU 日立)の方がダントツに早く安かった。画像処理用のワークステーション・シリコングラフィックス(300万は安い方)のCPUはNECが生産していた。NVIDIAが一号機を作った同時期に筑波大のプロジェクトがGPUを試作していた。そもそも、インテルに最初のCPUを作成させてCPUの特許を持っていたのは日本企業でした。
経営的な失敗、商売の失敗をやり続けた結果です。
Renesas RX
Renesas SH/RH
東芝 PSC(Programmable Servo/Sequence controller)
NEC NOAH
確かに日本製のCPU・GPUは、ほとんどないですね。
今も作られている日本オりジナル設計&日本国内製造のCPUという事でしたら、私が知る限りでは日立那珂工場で細々と製造している組込み用途向けの32ビットのSH-4が最も高機能高性能なCPU/SoCがありますね。他だとH8などの8ビットのコントローラになり、CPUとは言えない気がします。
日本製のGPUはないですね。
.
セカンドソースの歴史も含めれば、NECがインテル社のライセンスを受けて8080-AFを作ったり、ライセンスが切れた後もV20/V30を作ったりしていました。V20/V30はインテル社に訴えられて消えましたね。
日立がPowerVRをPowerアーキテクチャベースで作って、その後は権利を買い取り日立独自品としていましたが、その後、長い年月が経ち、今では製造は海外へ発注していますから日本製のCPUとは言えません。
他の回答に富士通のCPU「A64FX」が上がってますが、あれはARM社のARMアーキテクチャのライセンスを受けて、しかもARM社はIP売りっぱなしではなくファブレス企業ですから技術サポートもします。つまり、A64FXは富士通の要望に従ってARM社が細部まで設計し、TSMCでのプロセス調整を行ったと言えます。日本側は発注しただけで設計や製造していないので、日本製のCPUとは言えないでしょう。外注した物も日本製と呼ぶなら、SONYの「プレステ」シリーズや任天堂の「Switch」などのSoCはすべて日本製ですし、他にも無数にあります。
日本製のCPU・GPUが無い理由は、1970年代や1980年代にCPUの基本的なアーキテクチャを生み出していなかったので、CPUのエコシステムが存在しなかった事が大きいと思います。1980年代にNECが8080の、日立が6800のセカンドソース事業をそれぞれ始めたのですが、あの時点で開発リソースを投入してオリジナル品を作って日本製のパソコンなどで使っていれば違っていたでしょう。そのためにはソフトウェアも必要で、そういった技術への大規模な投資ができたのは、ガレージから出発したマイクロソフトなどよりも日本企業の方がずっと有利だったのです。
NECのV60 V70あたりは独自ではなかったでしょうか。汎用レジスタを非常に多く揃えて比較的フラットでした。
あと、SONYがPS3で使ったCellも、PowerPCコアとはいえほぼ独自と言って良いものではなかったかと。
Intel互換のNEC V30とか、Dreamcastというゲーム機に搭載されたCPU+グラフィックチップの日立PowerVRとか、かつては日本のメーカーがCPUを開発・生産していた時代もありました。
NECがCPU開発を辞めてしまった理由は知りませんけど、日立の場合は業績赤字を解消するためにコンピュータに関するほとんどの事業(CPU、メモリ、ハードディスク)を売却してしまったようです。しかも、現在においても一流として評価の高いブランドもあるので、そりゃあもういい値段で売れたでしょう。
「日本製」のIPコアなのか、SOCの設計なのか、日本のファブで作っていたのか。かつて無かった訳ではありませんが、現在はもう競争力のある製品はありません。日本で開発されたプロセッサのISAはほぼ組み込みかスパコンなどの特殊用途のシステムにしか採用されていません。これはみなRISC-Vに集約されていく流れと思います。チップ設計は意外と行われているのではないかと思います。日本には半導体設計を行う会社も人員もたくさんあります。ただPCやスマホのように大量の出荷数が見込めるコンスーマ分野では競争力はありません。そして今はもう先端のファブもありません。PS3やWiiU世代まではゲーム機の主要チップは日本のファブで作られていました。
CPUに関してはこちらもどうぞ
他の回答者様の回答を読んでいるとGPUとは何かの議論が結構ぶれがちのようです。時代とともに求められる機能が変わったというのもあります。だいぶ昔にこんなの書いた事もありました。絵を出す機能、という点からみればApple IIはGPUとすら言えるかもしれません。
後GPUが行う3Dグラフィックス処理とそれが汎用並列演算に適用されるようになっていった流れについてはこちらもどうぞ。
… (もっと読む)あったんだけど、ルネサスがギブアップしたね。
官僚主義的な構造で、後続として進化させることが可能な能力者の受け入れを拒んだからでしょうか。
それが原因で開発可能な人員が大幅に減り、完全脱落したかな。
先行エンジニアは超優秀でも、後続は猿まね能力者で十分。でも先行エンジニア引退後は革新起こすのにそれと同等の能力者を入れる必要があるから、猿まね能力者が上位で、先行エンジニアと同等の存在が後続になる。この構造が人類感的に無理なんでしょうね。
スーパースケーラくらいまでは先行してたと思うけどね。マルチコアで完全に存在意義失うレベルで脱落したね。
政策決定みたいなもんなんだから政府が運営論的に調整してよかったと思います。
ちなみに朝鮮とかは猿まね能力者しかいないから、パクりに余念がないんでしょうね。
DNAマップでも歴史観的にも日本人の半分は朝鮮人レベル言うのは納得ですね。
単に、巨額な投資をしたくないから。日本の会社風土的に無理。
ありましたよ。HD63484 などがこれで、当初、この能力に驚いた物です。
ですが、汎用 CPU によるグラフィックの性能が100TFLOPSなどになったことにより、このような専用 ビデオ CPU が要らなくなったのですよ。
今後は Intelより遥かに高速な ARM ベースの CPU が、GPU として使われることが分かっているので、更なる高速化が進みます。
>「GPUの方がずっと高速なのに、なぜいまだにCPUが作られているのですか?」
この答えになっていない回答ばかりだったので書きますね。
GPUは汎用的な命令をほとんど持ちません。BIOSやOSを走らせる能力を持ちません。メモリ管理も、割り込み処理も、I/Oポートも、特権モードも持ちません。
例えば、パン屋さんに母子が客として訪れた時、幼い子供の目からは、レジ打ちの女の人があらゆるパンを瞬時に客に提供するので、その女性1人がいれば、店の奥で働いているパン職人たちはいらないように見えるかもしれません。実際はパン職人たちがパンを作っているのです。
GPUが乗ったPCはそのパン屋さんのようなものです。GPUが乗っていないPCはレジ打ち=パン職人です。
CPUはレジ打ちのように(内部の仕事もしますが)外部との仕事に欠かせません。GPUではOSは動かず、仮にGPUで動くOSを作っても使い難いし低性能でしょう。
GPUはCPUが行うような汎用的な仕事が不得意なんです。CPU(ホスト)だけでもPCは作れますが、GPU(デバイス)だけではPCは成立しません。HDDやSDDから”カーネル”(GPUのプログラム)を読み込む事が出来ません。
ではなぜCPUができてGPUではできないのかと言えば、他の回答者が書いているように、CPUは汎用でGPUは高速演算専用だからです。
CPUは命令レベル並列性を取り出して高速化し、いわゆるシングルスレッドに近い汎用計算を高速に実行することができるプロセッサです。GPUはデータ並列性、すなわち同じ操作を多くの要素データに対して一斉に実行するようなデータ並列のプログラムを高速に実行できるプロセッサで、特に画像処理に多数現れる行列積演算に特化していると言ってよいでしょう。
このようにCPU, GPUは高速に実行できるプログラムの種類が異なるので、両者ともに場面によっては必要です。例えばSPEC CPUintのベンチマークを実行するとIntelのCPUは非常に速いですが、GPUははるかに低速です。一方、行列積演算を浮動小数点データに対して実行すると、GPUはCPUよりはるかに高速(数倍から十数倍)です。
医者と弁護士とどちらが優れていると思いますか?
それと同じことです。役割が違うものを比較して優劣をつける意味ありますか。
まとめる意味が無いからです。
GPUは画像計算用の簡単な命令セットを大量に処理する事が必要であり、CPUは汎用の複雑な命令セットを処理することが必要であり、それぞれの目的が違うので同じ演算ユニットで行う事は無駄です(演算ユニットの設計目標が違うのだから) そもそも、昔はグラフィクスもCPUで行っていて、高解像度や3Dを高速化するためにグラフィクスエンジンを開発して分化したのだから。
パッケージとしてはまとめた物が多くありますが、グラフィクスは非常に高速なメモリバスを求めるため、帯域が非常に多く必要になり、そのためには端子密度や配線に関する事項が重要になる為、汎用のCPU・メモリソケットのような物を介することは課題が多くなるために無駄になります。 メインボード上のメインメモリをグラフィクスに用いるようなシステムでは、そのメモリ帯域上の問題により性能が大きく制限されます。
つまり、まとめることが出来ないのではなく、まとまっていた物を高性能化のためにあえて分けたのが現在の姿です。
アーキテクチャと製造の視点があり、自分は製造側にいたことがあるのでその話をしたいと思います。
自分は15年ほど前に日本メーカーでロジックのFEOLの開発部門に在籍していました(IEDMに登壇したこともあります)。そこで感じたのは圧倒的な最適化の難しさ。パラメターが多い割には結果が出ることが数ヶ月後で、全然性能が出ないことはしょっちゅうでした。そんな中、intelが90nmでstrained-siliconといってスイッチ部分の横に別の物質を掘って埋め込み、性能を2倍に上げたものを市場に投入してきました。研究レベルではなく市場に投入です。これはかなり衝撃でした。日本でも研究レベルではやろうとした人はいたかもしれませんが、「ゴミが出る」、「汚染される」、「そもそも、、」とかいろいろ言われて、他社の実績無しでは多分試作すらできなかったと思います。
ここで感じたのが、海外メーカーは数人の天才・異才に指揮権を与えられているんだろうなということ。この部分でデメリットはあるけどこの部分が大きなメリットだからこれを適用する、という判断ができる体制があり、できる人がいること。分析が得意で直感にも優れた天才が指揮しないとCPUのような複雑なプロダクトで世界で戦うことはできないのを痛感しました。自分のいた部署、製造ラインのエンジニアは平均すると海外メーカーより全然優秀だと思いましたが、権限がフラットなので全体最適を取ることは至極困難でした(日本は一時期メモリで覇権を取りましたが、メモリは統合より各モジュールの平均で勝負できるので、「平均が高めの人が多い組織」で戦いになるのが突出した原因かと思います)。
いまの世の中はいままで以上に一部の変わった人を普通の人が支援する仕組みが重要になってきています。日本人は他人のやっていることに影でこそこそコメントするのを止めて、「やってみなよ、少し手伝うから!」というマインドの人が多くなると良いですね。
以下の記事もご参照ください。
CPUだけでなく、「電子立国」と呼ばれた日本の半導体産業が今や競争力を残しているのは製造装置や素材の分野か特定用途のデバイスだけです。ロジックやメモリーなどの製品分野でもファブを運用する製造ファウンドリーでも先端の競争にはもう参加していない、と認識するべきでしょう。
日本は20世紀の終わりまでは電気・電子に関わる全ての企業が何らかの形で半導体産業に首を突っ込んでいましたが、どこも選択と集中で何か強みを発揮して抜きん出ることもなく、世界規模の競争についていけずにダラダラと脱落していきました。もちろん市場環境や為替などの外的要因もあったとは思いますが、とにかく横並びでどこも頭ひとつ抜け出ることができませんでした。また資金力が弱いためにダイナミックに資本を投入して合併吸収を行う世界の競合についていけなかった、というのもあります。アジア通貨危機などで国レベルで経済的に追い込まれても世界の競争に踏みとどまった韓国勢とは対照的です。日本の半導体はメモリー=エルピーダ、ロジック=ルネサス、液晶=ジャパンディスプレイと敗者連合を組んで公的予算で救済する、という形で敗戦処理をしてきたのです。
CPUを開発する、というのが何を指すかです。新たなプロセッサのISAを作り出すのか、単に何かのISAのプロセッサ・コアを設計するのか、CPUを含むLSIやSOCを製造するのか。
新しいISAを作り出す試みは日本に限らず、多くが失敗に終わっています。結局プロセッサの価値はそれが実行するソフトウェアで決まります。ソフトウェア開発のエコシステムを構築するには製品と開発者への普及が欠かせず、その壁を乗り越えるビジネス的ハードルはとても高いです。日本企業が関わって新しいISAを開発して、それなりのビジネス規模の製品が展開されたのはPlayStation3用のCELL BEに採用されたSPUが最後ではないでしょうか?これも多用途のプロセッサとして開発されたものの、出荷数で言えばほぼPlayStation3専用であったと言えるでしょう。ISAとしてはx86がPCの標準CPUとしてそのソフトウェア資産の強みで君臨してきました。しかし、今やエンドユーザーデバイスとしてはARMを搭載したスマートフォンやタブレットの方が数多く出荷されており、MacのARMへの移行とともにx86の牙城が揺らぐ可能性もあります。またx86はプロプライエタリなISAで新規参入を法的にも排除してきましたが、ARMはオープンライセンスで、誰でもチップを作ることができます。そして近年はRISC-Vが注目されています。これはISA自体が完全にオープンソースになっており、ライセンス料を払う必要もありません。逆に新規のISAを作ることの意義はどんどん薄れているように思えます。
新しいコアの設計をするのはどうでしょう?ARMにはアーキテクチャ・ライセンスというISA互換で独自の実装を行えるライセンス形態があります。AppleやQualcommなど、独自のコアを開発している企業は独自の性能や機能強化のためにこの形態をとっているようですが、ほとんどの場合はARMが設計したコアをライセンスした方がはるかに手早いです。プロセッサ・コアを設計する事自体は設計環境さえあれば誰にでもできますが、検証や製造プロセスへの対応など自社で時間とコストをかけてもほとんどの場合割に会いません。RISC-Vはオープンなツールも揃っており、研究目的や新規分野の製品においては新たなコアを開発するベースとして魅力のあるアーキテクチャと言えます。
最後にLSIを開発・設計・製造する場合です。もちろん製造自体はファウンダリに委託してファブレスで行うとしても開発・設計をしたものをどうするのか、という事につきます。最新プロセスでそれなりの規模のLSIを開発・設計・検証・テープアウトして元を取るにはそれなりの製造数と売り上げが見込めないといけません。一部の組み込みやエンタープライズ向けのLSIはともかく、PCやスマートフォンなどの市場規模の大きいLSI市場には日本の半導体メーカーはもう食い込んでいません。
電子立国日本の時代はもう終わっているのです。
記事からの印象では、AIエンジンとしての性能に、既存のCPUコアのままではボトルネックが見られたので、それを解消するため、自社のGPUに最適化したCPUを内製して組み合わせる必要があったのでしょう。基本設計はARMのままだとありますので。
グラフィックボードの話で良いですか?
CPUよりも速い計算、映像の描写を要求されるからです。
CPUでもゴリゴリの3Dを描写させることは可能ですが、CPU内のGPUはご存じのとおり小さく弱いものです。この小さく弱いものでは、キビキビ動く3Dの映像を所定どおりの速さで描写させることが出来ません。ゆっくりエラーを吐きながら、カクカク…と表示されるわけですね。これが描写の遅延です。
3D(ソフト)にはさまざまな規格があって、要求されるパワーに強弱があります。それらの3Dに対応できるよう、GPUはCPUよりもパワフルでないといけません。
それを裏付けるのが、メモリの存在です。GPUにもメモリが搭載されています。CPUで使用するメモリ(システムボード上の)はDDR4やDDR5ですが、GPUはDDR6です。これはCPUよりも速い計算をしないといけないので、GPUにはCPUよりも速いスピードで動作するメモリが必要というわけです。
細かい技術の話は、技術屋さんにお任せしたいところですが、およそ上記のような理由からですw
日本が作ったスパコン用CPUというのは2012年6月に完成した『京』のFujitsu製SPARC64 VIIIfxの事ですね。Fujitsuの45nmプロセスで自社製造しましたが、基本はSPARCです。2012年時点でも45nmプロセスは遅れた技術でした。
・富士通自社工場で製造された最後のチップとなる「SPARC64 VIIIfx」
その後のスパコン『富岳』のCPUはA64FXです。ARM社のArmアーキテクチャを元にTSMCの7nmプロセスで作られています。これはさすがに「日本が作った」とは恥ずかしくて言えないでしょう。
汎用CPUかどうかは別にして、日本が高性能CPUを作れないのは、まずは日本のメーカーは独自のアーキテクチャを持たないので、CPUを作っても大抵はマネになります。スクラッチから高性能CPUを作るのはかなり難しいのです。
そして、現在の日本の半導体メーカーは最高でも、かなーーり昔の型遅れの40nmプロセスの製造ラインしか持たないので、これでは日本国内で高性能CPUは作れません。
汎用CPUも含むコントローラチップ(システムLSI)ならローエンド中のローエンドですがH8シリーズがあります。
常時オンが基本です。
そもそもCPUの他にGPUも積んでいるってことは、CPU内蔵GPU(iGPU)の性能では物足りないので、より高性能な外部GPU(dGPU)を追加しているわけです。この状況でdGPUを切るのは、ただ性能を落とすだけです。もしiGPUに劣るdGPUを積んでいるのなら、そっちを改善すべきでしょう。
なんですが、ノートPCだとバッテリーで動作している時は、性能を犠牲にしても動作時間を長くしたいことがあり、その場合はdGPUをオフにするのはよく行われます。
またそれとは別に、ソフト側で描画アクセラレーションのオンオフが選べるものがあり、何のためにそうなっているかと言えば、オンだと表示が乱れたりの不具合が出る場合があるためです。そうなったらオフにして使ってくださいってことですね。この場合、原因はたいていGPUのドライバにあります。
と言うことで、GPUをわざわざオフにして意味があるのは、前述のような理由がある時に限られます。
GPUは主に画面表示に使われるデータを処理するためのものです。そのデータの扱い方から他の演算処理にも使われることがありますが、その使命は、より綺麗な画面を作るためのデータをより速く処理することです。
CPUはすべての演算処理を扱います。個別にGPUがないマシンがあってもCPUは必ず有ります。 (そして最近のCPUはその内部にGPUを内蔵していることが多いです)
CPUはプログラムをできるだけ速く実行するよう特化されています。複数のプログラムを同時に行ったり、プログラムの先読みをしてあらかじめ答えを用意していたり、といった感じに計算処理としてはかなり複雑な事を行っています。
GPUは画像データをできるだけ速く処理するよう特化されています。計算そのものは(CPUと比較して)単純でも、読み込ませるデータが膨大なので、それに特化した造りになっています。
GPUが個別に搭載されていないマシンはCPUに内蔵されているGPUがその役割を担います。ただCPUの中にあるということは小さいということで、処理能力も限られ個別に搭載されているものと違って、キレイな画面をなめらかに表示することはできません。
本当のことを言うと、今はIntelこそ資金に欠けてい方なのかもしれません。
当然、IntelとAMDの二社だけを比べるのなら、Intelの方が圧倒的に強いでしょうけど、今の半導体業界はもうそういう簡単なものではなくなっています。
まぁ、今回の第三世代Ryzenで見事なリベンジマッチを果たしたAMDの勝因を一言で言うのなら、スマホ市場の急速発展の追い風に乗ったから、ということなのでしょう。
さて、デスクトップ向けのCPUしか作ってないAMDはスマホ市場とどういった関係があるのでしょう、と思うかもしれませんが、これこそ今の半導体業界の不思議なところです。
今の半導体製造において、一番資金がかかるのは設計ではなく、デバイス製造(半導体デバイス製造 - Wikipedia)です。実際、CPUを設計できる会社は数多く存在していますが(Apple、サムソン、クアルコム、HUAWEIなどなど)、半導体デバイス製造を担う工場(ファウンドリ - Wikipedia)はそう多くありません。なぜなら半導体デバイス製造のプロセスが段々と細かくなるにつれ、その開発費用が飛躍的に跳ね上がるからです。
これを踏まえて、一回Intelの話をしましょう。Intelは自前のファウンドリを持っています。つまりIntelは自社だけでCPUの設計から製造を行うことができ、これに基づいてかつてはTick-TockというCPUのアーキテクチャーとプロセスを交互にテンポよく更新していく戦略を取っていました。しかし、実際は2015年からIntelのプロセス更新は14nmで停滞していて、今現在でも、Intelの10nm製品はモバイルノート用の低電圧CPUがメインであり、デスクトップ向けの第十世代Core iシリーズはまだ14nmを採用する予定とのことです。その原因ももちろん、10nmプロセスの開発がかなり難航している、としか言いようがりません。
ではAMDの方はどういうことになっているのでしょう?実はAMDも、昔はIntelと同じように自前のファウンドリを設けようとしたのです(GlobalFoundries - Wikipedia)。しかし、先ほども言った通りに、ファウンドリはものすごく資金がかかるものであるため、資金力でIntelに劣っているAMDでは当然うまくいかないはずです。Ryzenシリーズが登場するまで、AMDがずっとIntelに押されている理由もまさにこれでしょう。(まぁとは言っても、ATIとの合併やら、FXシリーズでCPU市場の発展を見誤ったやら、他にも色んな原因があると思いますが)
そして、第三世代Ryzenになって、AMDはデバイス製造をGlobalFoundriesにではなく、TSMCに委託することで、最新の7nmプロセスを使うことができ、これでようやくリベンジを果たしたというわけです。さて問題です、Intelですら10nmで難航しているのに、なぜTSMCはすでに7nmを量産できたのでしょう?ここで出てくるのがスマホ業界です。
実際、スマホはそのサイズ故、CPUの小さに対するこだわりはPCよりもずっと強い。なのでより細かいプロセスを求めることが必然になっています。しかしながら、スマホを作る会社でファウンドリを持っているのはサムソンぐらいしかありません。スマホCPUの生産(特にハイエンドモデルの)は、そのほとんどがTSMCに委託されています。これはつまりどういうことなのかというと、TSMCの7nmプロセスは自社だけではなく、スマホ業界全体から資金を得て開発したようなものになります。
なので、PCのCPU業界だけを見るなら、確かにIntel対AMDという構図になりますが、半導体業界全体でみるなら、これはIntel対AMD+TSMC+スマホ業界の各企業の戦いになります。Intelにいくら資金があっても、さすがにスマホ業界全体には勝てないということでしょう。もちろん、Intelとスマホ業界は直接な競争関係ではないが、AMDがスマホ業界の追い風に乗ったというのも、まぎれもない事実でしょう。
質問に間違いがありますね。
2000個のコアが入ったGPUなんかありません。企業の広報は違った(間違った)方法で計算して数字を大きく見せています。
Radion 6900XTの本当のコア数(DCU)は、5120個ではなく、40個です。こちらでダイの写真を確認でき、4*5のコアが2グループあります。
各コア(DCU)には32レーンのSIMDユニットが4つあり、各コアには並列に動作する32 bitの浮動小数点演算ユニット(FMA)が128個あり、チップ全体としては32 bitのFMAが5120個同時に動きます。
Zen2とZen3のCPUコアはどちらも256 bit(32bitの8レーン)のSIMDによるFMAが2つあり、各コアは32 bitのFMAが16個同時に並列動作する能力があり、3800Xや5800Xのような8コアのCPUですと、チップ全体で32 bitのFMAが128個同時に動作します。
従ってCPUとGPUのコア数の違いは実際には数百個などではなく、せいぜい10倍以下で、並列実行できる実行ユニットの違いは20~40倍程度であり、数百倍までにはなりません。
質問への回答
しかしなぜCPUとGPUには並列実行に違いがあるのでしょうか。
それは違うコードを実行する必要があるからです。
CPU - 順次実行
汎用のプログラミング言語で書かれた普通のプログラムを実行するためにCPUは設計されています。
普通のプログラムを書くのに使われるプログラミング言語のほとんどは、処理を順番に記述する構成になっており、順次処理というプログラミングのパラダイムを基本にしています。この順次処理の制御の流れは、前の処理の結果が次の処理に影響するため、普通は効率よく並列化できません。ごく一部に限りコンパイラがマルチコアに適した並列処理に自動変換できます。たとえコア数が少ない場合でも、コードの大半を並列化するために、プログラマは懸命にマルチスレッドのコードを書かないといけません(つまり、より大変で、時間がかかり、バグりやすくなります)。
順次処理のコードを可能な限り早く走らせるようにCPUは最適化されています。ほとんどのプログラムにとっては順次処理が本当の問題だからです。もしプログラムの半分を並列処理で書けたとして、100万コアがあり、並列処理が100万コアを活用できたとしても、もう半分の順次処理の実行速度に変わりはなく、全体としては元のコードの2倍の速さになりません。
CPUは順次処理のコードをなるべく早く走らせるために、高度な分岐予測やストール(停止時間)を最小にするための巨大なキャッシュを持つ巨大で複雑なコアを持っています。実際の演算ユニットはトランジスタの数的にもコアのスペース的にも非常にわずかです。
これはAMD Zenコアの写真です。整数演算器が入っているALUは非常に小さく、FPUは浮動小数点演算やSIMDを実行する演算器が入っています。L1D$、L1I$、L2$はキャッシュメモリ、BPUは分岐予測器で、次に実行する分岐先を予測してストールを最小にします。
GPU - 並列実行
一方GPUは並列処理に高度に特化しています。プログラム全体を実行する能力はありません。プログラムのごく一部にあたる高度に並列化された処理だけがGPUに送られて実行されます。そのためにプログラムはたくさん働いてGPUで実行するコードを生成します。
スクリーンにドットを描く処理はめちゃくちゃ並列化できる数少ない処理の1つです。もし1画面に800万ドットがある場合、1ドットを打つのにたくさんの計算をする必要があり、論理的にはその800万ドットの処理全てを並列化できます。
グラフィック処理は本質的に高度な並列処理で、ここ10年弱でグラフィックと全く関係のない計算を並列実行できるようになりましたが、並列処理ユニットは元々はグラフィック処理のためにGPUとして登場したのです。
ぜんぜん違います。むしろ共通点は演算処理を行うと言うことだけだと思った方がいいかも知れません。
CPUは、複雑でさまざまな処理ができる高性能なコアが少数(1~16個ほど)入っています。対してGPUは、割合決まった処理しかできない単純なコアが多数(数百個)入っています。
単純なコアがどれほどのものか?かつてのGPUではプログラムが実行できなかったと言えば、イメージできるでしょうか。実はGPUでグラフィックの描画処理以外のことが処理できるようになったのは、ここ10年ほどのことで、それ以前はCPUから指示された描画のための演算をひたすら実行し、表示するのがGPUの仕事の全てでした。
単純なコアでどうして高速にできるか疑問に思うかも知れませんが、理由は案外簡単です。画面上には処理しなければいけないドットが多量にあるものの、それぞれに必要な処理というのはパターン化された演算処理が大半なので、処理するのにCPUのような高度なコアは必要ありません。単純化された小さいコアで間に合います。で、そうした小さいコアなら多量に準備してもチップ上に収まるし、そうした多量のコアを並列にして「せ~の!」で処理すれば高速にできるっていう。
CPUやGPUのパッケージを開けると、小さな正方形や長方形のシリコンを見ることができます。
この小さなシリコンは、顕微鏡で見ない限り、あまり面白いものには見えません。少し拡大して見てみると、高度に構造化されており、表面のごく薄い層が、浮き彫りにされているように見えることがわかると思います。
この小さな四角形は、非常に大きな丸いシリコンウェハーの上に作られ──
──それを切り離してパッケージに封入されています。
近くで見ないとわからないくらいの、かすかな模様なのです。
顕微鏡で見ると、こんな感じです。
このパターンは、シリコンの表面に酸で物理的にエッチングされたトランジスタでできています。普通の顕微鏡では、トランジスタは小さすぎて見えません。可視光顕微鏡でも解像できない。それほどまでに小さいのです。可視光線の波長よりも小さいんですよ。とても小さい。
最近のチップには、40億個以上のトランジスタが埋め込まれているんです。このトランジスタは、髪の毛の何千倍も小さな配線で結ばれており、最新のプロセッサーでは、文字通り何マイルもの配線が施されていることもあるのです。
電子顕微鏡で見ると、このように見えます。
つまり、小さな四角いシリコンに、電子顕微鏡でなければ見えないほど小さな数十億個のトランジスタがエッチングされ、わずか数十原子の厚さの接続によって互いに接続されているのです。
すべての魔法は、人間には理解しがたいほど小さなスケールで起こっているのです。
すべての魔法は、とても小さなスケールで起こっていて、人間はそれを理解するのに苦労します。
0 コメント:
コメントを投稿