GPUのお勉強②
CPUとGPUの違い、例えていえば? 2016.06.08 15:00
突き詰めると同じ頭脳だけど、人数がだいぶ違う。
ただCPUとGPUの違いはアーキテクチャです。具体的には搭載されているコアの数が違います。そして、コアの数は同時に解ける問題の数を表してます。
簡単に言うと、GPUはCPUよりはるかにたくさんのコアを載せています。Mac Proの最高性能ラインのCPUでも6コアしか搭載されていませんが、NVidiaのGeForce GTX 980には2000コア以上が詰まっています。
ただ、コア数が多ければいいというものでもありません。ものすごく簡略化して言うと、GPUは工場のようなもの、CPUはスティーヴン・ホーキング博士みたいなものです。工場の作業者ひとりひとりが、コアを表します。工場では簡単で似たような仕事、つまり絵の形や色などの情報を、大量に効率よくさばいていきます。一方ホーキング博士は、とても賢いですがひとりだけの存在。なので彼のスキルは、例えばブラックホールがどうなってるのかみたいな、ひとつの難しい問題に取り組んだほうが生かされます。
だからGPUはどんな問題でも高速処理できるわけではなく、並列計算できるような問題でなければ処理は遅くなってしまいます。またグラフィックス処理は、たとえば「アイテムを落としたら、落ちる」とか「服に風があたったらなびく」といったような、つねに答えが同じになるような単純な問題だから、並列で処理できるとも言えます。
なので本当に負荷の高いゲームだと、スマートなCPUもパワフルなGPUも両方必要になってきます。
---------------------------------------------------------------------------------------------------------------------
CPUとGPUの違い、例えていえば?・・・これはちょっと。<< 2016/06/09 11:20 >
たとえて言うなら、作業の仕方だけで言えば、
沢山のお猿さん(群れ)にいくつかの単純作業を教えて作業させるという手法
と、
猿を調教する人が、数人で考えて作業する違い
ぐらいで例えないとね。
そもそも、GPUにおける cluster Core や Shader Core 、Execution units の概念はCPUのコアとは違う上に、各社によって概念はまちまちである。
コアと称するものをどこで分けるか、本当に小さなコア単位か、それ以外か・・・で変わるのだ。そう考えると、同じ種にはならないという点も難しさに繋がる。もっと言えば、何故コアが多いGPUが工場でCPUは、一人なのか?コア単位で考えるなら、最低でも二人以上いるのが今のプロセッサと思うのだがと思うと・・・もう書かずにはいられなくなった。
<GPUの歴史は、RGBボード(コネクター)→加速器(アクセラレータ)>
元々は、コンピュータグラフィックスの色や線、文字の生成を行うためのキャッシュ(VRAM)と、その生成を補助するアクセラレータ(ASIC)の構成であった。
最初は、白黒(緑など)2値だった色が8色になるためのボードだったが、その後16色、256色・・・と進化した。
そのうち、S3 Graphics(VIA→現在はHTC)のViRGE頃から3D(三次元コンピュータグラフィックス)を安価に飲み込むようになった。
この頃でも、やることは、アルファブレンディングなどの透過や、平面や立体図形の生成補助で、大半の処理はCPUが行っていたが、1999年のnVIDIA Geforce 256の登場により、条件固定処理だが、これに光源や変形などを加えたほぼ全ての処理が、出来るようになった。
<GPU誕生>
その後、光源の加減、数などをプログラミングで自在に出来るように調整できるように徐々に改良された。
それをする過程で生まれたのがShader Coreであり、描画以外の目的を本格的に与えたのが、nVIDIAである。その際に、CUDA(クーダ)と呼ばれるグラフィックス演算以外にも、グラフィックスアクセラレータを使うプログラミング手法が発表された。
ただ、Shader Coreは当初、陰影処理に特化したエンジンであった。そのため、初期のCUDAでは、出来る事に限界があった。CPUがやる作業の全てが出来る訳では無く、出来ない物や、やっても最終的に速度が上がらないものもあった。しかし、特化型であるが故に、Shader Coreが得意とする処理は、速いという特性があったから、使われたに過ぎない。
<GPUが普及した理由と仕組み>
では、何故GPUは早くなったり遅くなったりと作業によって、違いが出るのか?
これは、専用道路を走るのと同じである。一般道なら道が有る限り、どこにでもいけるがスピードは出ない。信号もある。しかし、目的専用の道路をA点からB点まで敷設すれば、一般道を通らなくても短時間でたどり着ける。
グラフィックス装置というのは、そのA点(CGの演算データ)からB地点(描画した結果を映像にする)役割に特化していた訳だ。
しかし、出入り口がその一カ所しかなく関係者以外立ち入り禁止であったり、その周りに民家などめぼしい建物が少なければ、他の道として使うこともない。これがグラフィックスアクセラレータであり、当時はそれしか出来なかった理由である。
これは、動画のエンコーダーボードなど専用のハードウェアが持つ特徴でもある。
ただ、最初はそれだけだったが、CGをより複雑に(リアリティを高く)高速に処理する過程で、自由に光の角度や影の付け方、線の引き方などを専用に調整する計算装置が加わっていった訳だ。
すると、AとBの途中にいくつかのインターチェンジやジャンクションが作られるようになった。即ち、そのインターで降りるような処理があれば、汎用命令も信号機のある一般道を通らなくても高速化出来る。それが、GPUという製品に繋がったわけだ。
即ち、CPUが行っている汎用演算の一部を、グラフィックスアクセラレータで代替出来るようになった訳だ。
GPUでの処理では、元々グラフィックス1回(1描画、1フレーム)の画面描写に、複数の移動パターンがある。そのため、同時に複数の移動計算が必要になる。ただ計算の基礎範囲はあくまで描画に必要なものに限られる。
この計算はsignだから計算機1で計算しなさいなどと、分岐を繰り返して、目的の演算器に分ける必要が少ない。
そのため、CPUのように大きなプロセッサを少数載せるより、いくつかの小さなプロセッサを、命令にある程度特化して、多数搭載した方が、目的に見合うのだ。それをいくつかの制御モジュールで(ボスザルに相当)統括した方が効率的だと判断して、実装されている。(このボスザルの部分をどこで区別するか、そもそもボスザルか、最小単位で区別するかで、コア数の概念がメーカー毎、目的毎に変わる)
そういう仕組みがGPUのベース技術である。
まあ、実際にはGPUと言っても、世代毎にドラスティック(大胆)に構造が変化しており、CPUよりも内部構造の世代変化は激しい。
さらに、演算に使える命令も、CUDAやPhysX(フィジックス)の影響もあり、グラフィックスアーキテクチャの標準技術として搭載されるようになり、現在はDirectX、OpenGL、PowerVRなど全てのAPIにおいて、Direct Compute 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内蔵グラフィックス)が、やっぱり親の影響か堅物なところがまだまだ多く残っている。
例えるなら、このぐらいに例えると歴史も含めて分かり易い。
ーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーー
GPUとCPUとの違いってそもそもなんだっけ? 2016年2月19日
GPUは並列処理に特化しているため、画像処理のような一部分の計算が全体の結果に影響しない場合に高速に演算できます。 … 例えば独立した100個の掛け算をする場合、CPUは掛け算を100回繰り返して答えを出します。
GPUは100個の掛け算を並列に処理して答えを出します。つまりCPUに対して100倍の速度でGPUは処理が終了します。
それに対して独立していない掛け算の場合、つまりAxB=C CxD=E ExF=G のようにAxBの計算をしてCの値を計算してからでないと次のCxDの計算ができない処理の場合は並列処理ができませんからGPUはCPU以下の処理能力しか発揮できません。
コンピュータは逐次計算、人間の脳は並列に処理とよく言われますが、GPUはまさに人間の脳のように働きます。
ーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーー
CPUはGPUより複雑な演算ができると書いてあるのですが、具体的にCPUにどのような演算ができて、GPUにはこんな演算はできないかを教えてください。
簡単に言えばCPUは汎用性が高く、どのような計算もそれなりの時間で処理します。
GPUは並列処理に特化しているため、画像処理のような、一部分の計算が全体の結果に影響しない場合に高速に演算できます。
そうでない場合はGPUはフルの能力を発揮できないためCPU以下の処理能力になります。
例えば独立した100個の掛け算をする場合、
CPUは掛け算を100回繰り返して答えを出します。
GPUは100個の掛け算を並列に処理して答えを出します。
つまりCPUに対して100倍の速度でGPUは処理が終了します。
それに対して独立していない掛け算の場合、つまり
AxB=C
CxD=E
ExF=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はたくさんの処理ユニットを搭載して、メモリの帯域を大きく取れば、その分だけ性能が上がります。
しかも、描いた画面は表示したらすぐに捨ててしまうので、データをどこかに保存するということも不要です。
とにかく大人数でがむしゃらにやって、しかもやりっぱなしでよいのです。
●CPUは少数精鋭
一方、CPUはパソコン全体を管理しています。
OS・プログラム・メモリ・HDD・マウス・キーボード・その他のデバイスからの情報を逐次処理しなければなりません。CPUの作業は、GPUのように単純ではなく、とにかく複雑でいろんなことをやる必要があります。
しかも、大人数で手分けすることができません。たとえば、HDDからのデータを読んできて、計算して、画面に表示することを考えてみましょう。
HDDのデータを読み終わらないと、計算が始められません。さらに計算が終わらないと、画面に出すこともできません。このように順番に処理していく必要があるので、人数だけたくさんいてもダメなのです。
このため、性能の高いコアを数を絞って搭載する「少数精鋭」がCPUです。
●GPUにCPUの代わりはできない
(1)手分けできる作業
(2)1人で順番にこなす作業
当然(1)の方がはかどりますし、(2)はそう簡単にスピードアップできません。
(1)がGPUのやること、(2)がCPUのやることなのです。
GPUはひたすらユニット(コア)を増やせば画面描画の性能が上がります。このためGPUのコア数は数千個以上に及びます。
しかし、GPUにCPUのような複雑なことをやらせるのは不向きです。CPUの行う作業は、多数のコアを必要としません。したがって、CPUの代わりにGPUを使っても、大半のコアは遊んでしまい、性能を発揮できないのです。
また、GPUはコアこそ多いものの、コア単体の性能は高くありません。CPU向けの処理をした場合、結果として無理と無駄が生じ、GPU本来の性能が発揮できません。
なお、最近はGPGPUといって、GPUを技術計算に応用することも行われています。
しかし、これも有限要素法など、大量の行列式をひたすら計算しているだけで、やはり画面描画と同様に手分けできる作業なのです。
CPUは良くも悪しくも「汎用」の作業を行います。GPUが行うのは大量かつ並列の数値演算。そういうのはCPUは得意じゃない。逆にCPUで行われる非同期なプロセス管理はGPUは不得意かと。
従来はコンピュータの高速化はCPUの速度を
4MHz⇒8MHZ⇒16MHz⇒33MHz⇒50MHz⇒100MHz⇒1GHz⇒2GHz
とあげてきました。
ところが1GHzを超えたあたりからその高速化は鈍化し、もう何年も4GHzの前後でストップしています。発熱と電力ロスの問題があって容易にCPU単体の速度が上げられないのです。
そこで考えだされたのが「マルチコア」です。1つのチップにCPUを単体で使うのではなく、2つとか4ついれて処理速度を2倍、4倍にする手法です。これも現在6コア、8コアまできています。
次にスピードアップの手段として考えられたのが画像処理装置と中央処理装置の一体化です。画像の処理は高速かつ大量のメモリが必要です。ところが中央処理装置もメモリを大量に使います。この2つがメモリを取り合うためメモリアクセスが遅くなります。
そこで画像処理も演算処理もひとつのチップにいれ、メモリの使い方を整理して、お互いが高速にメモリを利用し、中央処理装置が画像処理装置と直接データをやりとりし、コンピュータ全体でスピードアップするのが最近のGPU内臓CPUです。
AMDはGPU内臓CPUをAPUと呼んでいるのです。高速化と省電力の両方を実現できるスマートなテクニックです。
ーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーー
普通のコンピュータプログラムの実行時は、整数演算が主で、浮動小数点演算はほとんど行いません。
よってCPUは一般的な科学技術演算を行うに必要十分な程度の浮動小数点演算性能を持っています。
3DCGの場合、一般的な科学技術演算の時とは比較にならないほどの膨大な量の浮動小数点演算が必要になります。そのためGPUは、多重並列処理可能な浮動小数点演算ユニットを多数実装しています。GPUはCPUとは設計が基本的に異なります。
もちろん、CPUの中にも超並列処理に特化したようなものもあります。しかし、近年のGPUはグラフィック処理に特化した様々な機能が追加されていますので、グラフィック処理はGPUに任せたほうが低コストで効率の良い処理が行えます。
ーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーー
数学
1. 整数 26
2. 実数
A=3.14*10^6
B=2.3*10^2
簡単
A*B = 3.14*2.3*10^(6+2)
面倒
A+B = 3.14*10^6+0.00023*10^6 = 3.14023*10^6
整数と浮動小数点は計算法が違うので、別物と考える。
ーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーー
GPU は CPU の手伝いをしているの?
そうです。本来は CPU が行う計算を、GPU が代わりに行っていると考えるとわかりやすいと思います。
CPU から
「 ○○ の画像を表示したいんだけど計算してもらえる? 」
という命令を受けると、ディスプレイに映し出すための画像データを集めて、スムーズに映し出せるように用意をしてくれます。
つまり、計算をして、ディスプレイに映せるように準備を整えて、そのデータを一時的に保管して、出番が来たら一気に画像をモニターに映し出すわけですね。ちなみに、このデータを溜めておく保管場所のことを
VRAM ( ビデオ・ラム / Video Random Access Memory )
と言います。画像表示専用のメモリーのことですね。ビデオメモリー とか グラフィックスメモリーと呼んだりもします。
これは グラフィックボード の中に備わったメモリ領域なのですが、画像表示のデータはまずここに溜められます。
容量が大きければ たくさん溜められるので、解像度を高くしたり色数を増やすことができますが、容量が小さいと たくさん溜めることはできません。
容量が足りなくなると、メインメモリ を VRAM の代わりとして使うことになります。 こうなるとパソコンそのものの動作にも影響を与えてしまうので、なるべく大きいものを選んでおくと安心です。
ちなみに、グラフィックボード を搭載していないパソコンは、メインメモリのみを使ってこの作業を行います。
特に、GPU よりも メモリ が重要な役割を果たすのは 2D を表示させるときです。たとえば、ブルーレイ などで高画質映像を楽しむときですね。高画質映像を美しく滑らかに表示したい時は、GPU の性能よりも VRAM の容量が重要になってきます。
ーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーー
GPGPUとは、GPUの並列計算能力が、科学技術計算に応用できないか考えられた結果である。
GPUにおける色の計算(シェーダ機能)に目をつけ、計算プロ グラムにおける変数をダミーの色として与え、そのフィードバックを数値と して写像することで結果を得るという方法を生み出したのが、GPU汎用計算の始まりと言われている。
その後、NVIDIA社がCPUの進化に対抗して汎用計算に対応したGPUを開発し、その統合開発環境としてCUDA(後述)を配信したことで、GPUコンピューティングがより普及するようになりました。
GPGPUでは、大量のデータをCPU側のメモリからGPU側のメモリ (VRAM) に転送し、この転送されたデータをGPUで並列処理することで、CPU単体よりも高速に処理を行うことができます。
GPUメーカがその後考えだしたアイデアがユニファイドシェーダ(Unified Shader)の採用である.
ユニファイドシェーダとは,それまでのそれぞれのシェーダ(専用回路)に置き換わるもので,普通の四則演算なども実行可能な汎用的な回路である.
汎用的な回路であるため,当然専用回路で全てを構成するよりも多くの面積・電力的な無駄が生じる.しかし,ユニファイドシェーダの採用には以下のような利点がある.
– ソフトウエアのアップデートにより機能を後から増強できる
– 特定の処理が全ての回路を占めることも可能になり,全ての回路を無駄なく稼働させられる
– 画像処理以外も計算可能になり,新たな市場を開拓できる
ーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーー
浮動小数点演算命令セットを実装するCPUを考えると、機械命令なので1.3+2.4であろうと123456.789+987.654321であろうと計算速度に違いはありません。そのCPUの機械命令が取り扱える精度内の浮動小数点数であれば計算速度は同じです。
ーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーー
ーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーー
米インテル、4─6月期は売上高が予想下回る PC部門低迷・・・苦しいが強い
<< 作成日時 : 2016/07/21 10:04 >>
米Intelの4-6月期の売上げは、PCが3%減少となったようだ。データセンターがその分頑張り、売上げは2.6%増えたが、予想は下回ったという。PC関連はかなり苦しい現実に直面していると思われるが、一方でクラウド関連が好調なデータセンターはどんどん増加する。そういう点では、ARMとは一線を画す。x86の強みである。
10nmプロセスの遅れは、プロセス微細化の遅れもあるのかもしれないが、どちらかというと14nmの投資に対する減価償却と利益が、予想より鈍化しているためである可能性も強くなってきた。これは、今はIntelだけで起きている現象だが、他でも起きるかが気になる。
IntelはAtomのようなプロセッサも販売してきたが、メインをPCとデータセンターにしていることで、価格を安定させ、生産量も数億ユニットに留まる。1つのプロセッサ辺りの利益率は、ARM系の平均単価に比べると数十倍~の差があり、収益性は高い。
だから、Atomを止めたのだろう。簡単に言えば、薄利多売のビジネスは、業界が全体的に成長する時には、シェア拡大に繋がり儲かるが、成長が終わりに近づくと、値崩れを引き起こす原因になる。このためAtomからの撤退を選択したわけだ。
そもそも、Intelには既にAlteraの事業があるため、廉価SoCやFPGAはそちらに任せればやっていける。ロボットなどの産業系事業もAlteraなら開発が容易である。これこそ、最適な補完関係と言える。
<Intelのこれからは低価格より付加価値か?>
これから、Intelはさらに下のプロセッサブランドを見直す可能性もある。要は、ブランド価値を上げていくと言うことだ。それは、安く大量に売って余るリスクより、高くそこそこの量を作って売り切る方が、利益は大きいからだ。そして、x86プロセッサ市場が縮小する可能性がある中では、それが一番ベストであるからだ。
これからも何パーセント何十パーセントと成長を続ける市場なら、確かに生産を拡大し、安い製品を増やすのも手だろうが、縮小する中で小さなプロセッサを安価に大量生産すれば、下から上まで値崩れする。Intelにとって好都合なのは、このx86という市場が、主にIntelとAMDを中心に回り、2位のAMDもシェアとしては1桁ということにある。
それに気づき、ARMを敵視しないことにしたのが、Atomからの撤退の意味かも知れない。
これは、Intelにとってはプラスの話である。一方で、消費者にとっては、少し高めの製品が安くなるという点でプラスがあるかもしれないが、廉価品そのものがなくなるマイナスが出てくるだろう。
<Intelの方向転換はARMの将来不安も示す>
ちなみに、市場ではARMがさらに成長するとみている人も多いが、私はそろそろARMは、よほどのブレークスルーがない限り、厳しくなる可能性が高いとみている(だから孫正義に売りつけた)。それは、Intelが廉価を減らすという方針を示している点で示される。
IoTデバイスも含めて、Intelが入る余地は少なく、成長性を今後期待出来ないことが見え始めたことを示しているのだ。もし、大きな成長が見込めるなら、きっと今でもIntelは攻めるだろうから・・・・。
半導体という製品を開発する時の歩留まりと生産量の関係性を考えると、たぶんこれが近いうちにやってくると思われる。
例えば、時計など小さなデバイスにARMを載せるビジネスIoTが普及したとして、そのプロセッサダイのサイズがスマートフォン向けSoCの1/10ならスマートフォン1台に対して10倍の製品に搭載されないと、在庫や製造ラインが余ることになる。
どれほどの率で下がると予想するかなどにもよるが、ロボットがスマートフォンほど売れるのかなど、考えて見ると面白い。何より、今でもプロセッサなどの需要は増加すると見込んでARM利用の製造ラインは強化され続けている。(ここ数年ARMは年間で10~30億ユニット程度出荷増が続いており、今年もその予想である)
ARM本体が困ることはないが、製造を委託されるメーカーや、ARMライセンスを取得して販売する側にとっては、この鈍化という現象が起きたときに、生産の足並みが崩れることは考えた方が良い。即ち、在庫が嵩み、同価格帯の製品が値崩れするわけだ。
Intelはそういう半導体市場を見る目は凄いものがある。だから、Intelはx86でそこを追うのはリスクだと取っていると思われる。即ち、Alteraで必要な部分を補い、無理に本体が漸減に転じそうな市場を取らないことにしているのだろう。
5年後10年後にIntelがARMの出荷ユニット数を超えることはないだろう。しかし、そこから得られる利益は、今のように堅調かもしれない。データセンターやHPC向けプロセッサ事業を持つIntelは、クラウド上にある疑似人工知能などのプラットフォームでも、今後強みを発揮する可能性が高い。
ARMが、安価でユーザーが使う端末側(クライアント側)だとすれば、既にインテルは数量の世界で勝つことより、棲み分けの結果、上位製品で安定させるという道を選んでいるように見える。
プロセッサ関連市場は、先が良いように見えて、実は淘汰が盛んに行われる厳しい市場でもある。既に、過去に高いシェアをもったMIPS Architectureなどは見る影もないほどシェアを落とした。MIPSが、Playstation 2のプロセッサベースだったなど、今では知る人も少ないほどに・・・。
まあ、私はソフトバンクがARMを買うなら、AMDを買った方が面白かったろうにと思ってしまう。まあ、AMDは債務が結構あるので、今のソフトバンクが買収するのは無理だが・・・。個人的な投資案件としてみると、ARMは既に、十分に成長した企業なのが気になるところである。市場が様子見を示すのは、そこの部分であろう。変えてくれるかもという一方で、市場を知る人からすれば、なぜ今更という話になるのも確かだ。
Intelは半導体全体の流れを長く掴んでおり、将来のビジョンが見えやすいという点で、安定している。世界経済がよほど下振れしない限りは、今後もある程度予想に近いラインで成長をしそうだ。
ーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーー