見出し画像

CPUの種類と製造プロセス~CPUの性能は出来高で決まる!?~

今日は、いつもお世話になっているCPUに関して調べてみたことを書き留めておこうと思います。色々調べてみると、かなり奥深い分野ですね。まだまだ入口をちょっとのぞいた程度だとは思いますが。

ちなみに、今使っているPCをそろそろリプレースしたいと思ってます。それも踏まえて最新のCPU動向を確認したいのも目的の一つです。今回調べたのは、Intel社、AMD社の2社です。

Intel Core iシリーズ


「インテル入ってる?」

昔こんなCMがありましたよね。Intelは、CPUのシェアでは長年トップに君臨しているメーカです。このIntelでPC向けの製品がCore iシリーズです。i3、i5、i7、i9の4種類があって、数字が大きくなるほど性能が高くなります。

これまでプライベートでも仕事でも使ってきているCPUで、主にCore i7を使ってきました。IntelのCPUの特徴は、シングルコア性能の高さ様々なアプリケーションへの適用性が高いことがあげられます。特に、High-Performance Computing(HPC)の分野ではIntelが昔から使われてきていて、intel fortranやintel mpi、MKLなど周辺のライブラリが強力です。ぼくが、これまでIntelを使ってきたのはこの理由が大きいです。

MKL(Intel Math Kernel Library)は、pythonのanaconda環境でインストールされるnumpyに使われています。なので、普通にpipでインストールするnumpyよりも行列演算の速度が速いんです。何気に結構これが効いてくるんです。Intelが提供しているintel oneAPIという開発環境にMKLが入っているので、これをインストールしてnumpyにリンクすると使えるようになるんですが、これはまた別記事でまとめようと思います。

また、Intel Core i シリーズは、世代ごとに開発コードネームがつけられていて、その名前で呼ばれることが多いです。第8世代以降をまとめてみました。現在の最新(2023年6月時点)では、第13世代のRaptor Lake-Sです。基本的には世代が新しくなると、性能も上がっていきます。

AMD Ryzenシリーズ

AMDに関しては、以前からCPUがあることは知っていましたが、どうしても性能がちょっと低めの廉価版というイメージでした。AthlonというCPUがあったなぁという記憶くらいです。

そんな中、Ryzenシリーズが発表されてからはぐんぐんとシェアを伸ばして、一時期Intelを追い抜いたときもあったようです。Ryzenも、Intel Core iシリーズと同じようにRyzen5、Ryzen7、Ryzen9などの種類があり、数字が大きいほど高性能です。Ryzenの特徴は、マルチスレッド性能が高く省電力低コストなことです。以前は「安いけど性能もぼちぼち」だったが、「安いし性能がよい」に変わってきたことでシェアを伸ばしています。一方で、アプリケーションへの最適化はそれほど行われていないのが現状みたいです。ここはシェアに影響するところですが、最適化されていないだけなので、動かないというわけではないみたいです。

https://www.anandtech.com/show/15594/updated-amd-ryzen-and-epyc-cpu-roadmaps-march-2020-milan-genoa-and-vermeer

プロセスルール

これらのCPUがどのように製造されているかは、これまであまり気にしたことがありませんでした。CPUは半導体で、そこには回路を描いていくわけですが、ここにプロセスルールというものが存在します。英語ではprocess sizeと呼ばれていて、設計図の線の太さを表しています。同じ面積に設計図を書くとすると、線が細いほど詳細な設計ができることは明白ですよね。このことを集積度といい、集積度が高いほど性能を上げることができるし、かつ使用電力量も少なくなるメリットもあります。さらに、歩留まり率(不良品ができる割合)の向上も見込めるそうです。

https://chimolog.co/bto-cpu-process/から引用

となれば、プロセスルールは小さい方がいいので、実際各メーカでどんどんプロセスルールが小さくなってきています。IntelはCore iシリーズの12世代、13世代で10nm(ナノメートル)、AMDは5nmのプロセスルールです。

Intelがやや遅れているように思われますが、実はメーカごとにプロセスルールの数値の定義が違っており、単純には比較できないみたいです。Intelが最も細かいため、ざっくりIntelの10nmがAMDのの7nmに対応するようです。Intelもこれからどんどんプロセスルールは小さくなっていくようです↓。

https://www.intel.com/content/www/us/en/silicon-innovations/6-pillars/process.htmlから引用

CPUは狙ってできるもんじゃない?

Core iシリーズでもRyzenシリーズでも性能を表す番号がついています。Intel Core i7-12700とかRyzen 7 5700Xとか。この番号も性能を表していて、大きいほど性能がいいCPUです。ちなみに最後の英字にも意味があります。Intelの場合だと、U:省電力用、H:ハイスペック、K:オーバークロックとなっています。

この番号ですが、実は狙って作られるものではなく、できたCPUを性能試験をして決められるものらしいです。つまり、12700を作ろうと思ってできるもではなく、できたものが12700の性能を満たしたということだそうです。ちょっと意外でした。プログラミングって書かれた通り、狙い通りに動くものなのに、それを実行する頭脳とも呼ぶべきCPUは狙い通りに製造することができない、なんか深いです。。

聞くところによると、工場によってCore i7がいっぱいできるとか、全くできないとかあるらしく、原因はいまだわからないらしいです。これだけ技術が進んでもわからないことってありますよね。工場の特性とかを機械学習とかにかけたら、何か見えたりしませんかね(笑)

https://www.pasonisan.com/pc-cpu/00-column-clock.htmlから引用


ということで、CPUに関してまとめてみました。こういったことも知ると、プログラムを書くときにちょっと重みが出てくるなぁと思ったりしました。ちなみに、新しいPCには初Ryzenを採用しようかなと思っています。自作PCになるので、できたらまた紹介しますね!!

ではまた。

この記事が気に入ったらサポートをしてみませんか?