エントランスへはここをクリック   

ここ数年のパソコン
CPUの技術革新を振り返り
近未来を展望する
青山貞一 Teiichi Aoyama 環境総合研究所顧問
掲載月日:2013年1月元旦  独立系メディア E−wave


 あけましておめでとうございます!

 35年前、私がローマクラブ日本事務局で「技術と経済」という新書版の雑誌の編集長をしていた頃、「超小型コンピュータは社会を変える」という特集を何度か組みました。

 また、事務局に来られた池田こみちさんがワイヤードシティー(Wired City)を「技術と経済」誌のために翻訳してくれました。

 以下は、「超小型コンピュータは社会を変える」という特集号の表紙です。


1978年9月号 特集 超小型コンピュータは社会を変える

 それから30年以上経った今、パソコンは発売当時に比べ科学技術計算速度(浮動小数点演算速度)で実に20万倍以上、そのパソコンがインターネットと結びつくことにより社会そして世界を大きく変えてきたと思われます。

 それが情報公開、情報提供を促し、地域そして国を超え市民相互のコミュニケーションを飛躍的に活発化させていることは間違いありません。

 スマホに象徴されるモバイル系端末の普及は、エジプトやチュニジアのジャスミン革命を起こす原動力となっていたと言っても過言ではないでしょう。これは先進国でおそらく一番民主主義に遅れている日本社会でも例外ではありません!

 昨年、私達(青山貞一、鷹取敦)、環境総合研究所(東京都目黒区)が研究開発したパソコンを使った原発事故時シミュレーションシステム(Supar Air 3D/NPP)が社会に大きなインパクトを与えました。

 巨額の税金、公金を投入しながら、福島第一原発事故時、何らシミュレーションによる警報が出せなかった政府のシステム(SPEEDI)に対し、私達はパソコンを使って地形を考慮可能な原発事故時シミュレーションシステム(3次元流体計算システム)を開発しました。

 このシステムでは、全国各地にある50基ある原発で事故が起きた場合、わずか2−3秒で、条件別の地形、気象、発生源を考慮した詳細なシミュレーションを画面に出すことに成功したのです!


出典:Days Japan 2012.12号

◆この人 青山貞一さん 放射性物質拡散予測 独自のシステム開発 東京新聞

 私達の研究開発をハード面で下支えをしてくれたのは、いうまでもなくパソコン(PC)であり、CPUと呼ばれる中央演算装置です。

 下の写真の上4つは20〜32年前のCPUを示しています。私たちは、それよりさらに前からパソコンを単にワープロやメールに使うだけでなく、高度な科学技術計算を通じて環境問題や汚染の解決に使えないかと模索してきました。


1978年頃に出た最初のインテル社のCPU(8086)


上記のCPUに対応したFPU(数値演算プロセッサ 8087)
この時期は、FPUがCPUから独立していた。


1980年代のインテル社のCPU


1990年代初期のインテル社のCPU

 それから25年間、私たちは大気汚染、水質汚濁のシミュレーションはじめ、さまざまな環境問題、汚染問題の解析、予測、シミュレーションに通用するソフトウェアや高度なシステムをパソコンベースで実用化してきました。


AMD社のPhenomUプロセッサー

 以下のCPUは最新のものです。速度はパソコンが出始めたころより、遙かに廉価となっていますが、速度は10万倍以上高速です。使用できるメモリーも当時より廉価になり、規模は10万倍も大きくとれるようになりました。


インテル社の最新CPU Core i5 3570


最新かつ費用対効果最高のCPU Core i7 3370K


 私自身、自宅でも大学や研究所と変わらない研究環境を整備し、日夜、研究開発に励んできました。下の写真は、現在の自宅の寝室兼書斎です。一昨年秋は、深夜、ここから2階にあるトイレに降りる途中、階段から落下し、第二頸椎完全骨折となりました。幸い、慈恵医科大学病院の先生方のおかげで手術も成功し、自宅での研究が再開できるようになりました。 

 そして、昨年末、インテル社の最新鋭CPU、Core i7 3770を自宅に導入し、さらなる研究開発のベースが整いました。



青山貞一の寝室兼自宅研究室 高速PCは机の下にも2台設置してある
8台のデスクトップPC2セット4台を切替器を使い机上で同時に使える。
ここには1.9Mhzから430MHzまでのアマチュア無線設備も装備。さらに
背後の棚には全波テレビ受像可能な映像、音響システムも配備している
2013年1月1日撮影


浮動小数点倍精度計算速度

 ところで表1は、2010年時点のCPU別の浮動小数点倍精度計算速度を Mflops で示したものものである。

 20年以上前、数値計算が本格的に可能なパソコンが世に出たときの計算速度を0.48Mflops とすると、2010年時点での最新PC(Core i5 750)の計算速度は42.7Gflopsで、8万9千倍まで向上したことになります。さらに、昨年、自宅に導入しましたCore i 7 3770は、約16万倍まで飛躍的に向上したことになります。

◆倍精度浮動小数点数型【double precision real number type】(double型)

 
プログラミング言語のデータ型の一つで、64ビット長の浮動小数点数型のこと。どの情報に何ビットを割り当てるかについてはいくつかの方式があるが、標準として広く普及しているIEEE 754では、1つの数値を64ビットで表現する浮動小数点数のこと。1ビットの符号部、11ビットの指数部、52ビットの仮数部の計64ビットで表現する。-1.79769×10308〜1.79769×10308で、精度は15桁である。C言語などでは「double型」などと呼ばれる。

◆浮動小数点数

◆倍精度

出典:Wikipedia

 なお、コンピュータの浮動小数点実数演算の速度を計測するベンチマークとして、古くからLinpackが使われてきました。
 
Linpack

 米国アルゴンヌ国立研究所でFORTRANライブラリとして開発された。実際に開発を行ったのは ジャック・ドンガラ、ジム・バンチ、クリーヴ・モラー(英語版)、ギルバート・スチュアートである。1970年代から1980年代初期のスーパーコンピュータを対象として設計され、その後より洗練されたライブラリLAPACKに取って代わられた。

 LINPACK は BLAS(Basic Linear Algebra Subprograms、基本線形代数サブプログラム群)ライブラリを使ってベクトル演算や行列演算を行う。LINPACKベンチマークは、LINPACKのユーザーズマニュアルの一部として公開されたのが最初である。

 LINPACK ベンチマークは LINPACK に基づいたベンチマークプログラムで、システムの浮動小数点演算性能を評価する。ジャック・ドンガラが考案したもので、理学・工学で一般的な n×n の線型方程式系 Ax = b を解く速度を測定する。このベンチマークの最新版はTOP500で世界の高速なコンピュータの性能値としてランキングに使用されている。

出典:Wikipedia

 以下がパソコンからスーパーコンピュータの浮動小数点実数演算速度を計測するプログラムです。

 ntelR Math Kernel Library ? LINPACK Download

 Linpackは、通常、Gflops、すなわち1秒間に計算されるギガバイト数を単位とする浮動小数点実数演算数で表現されています

 

 あるいは



とも表現されます。

 以下は、ここ数年のCPUの「技術革新」、とりわけGflopsで表される科学技術計算速度の動向、実態と今後の展望です。いずれも私見ですが、CPUやメモリーが長足の技術進歩と技術革新をしているもととなっているLSI技術開発の現場にもでかけ、担当者と議論もしてきました。最後にこの議論も紹介していますので、ぜひお読みください。

 さて、今回、過去25年間にさかのぼりパソコン用CPUの速度に関わる調査をしましたが、ごく部分的なものはあっても、この間の経緯を定量的に鳥瞰、俯瞰できるデータはありませんでした。そこで正月休みを利用して、一から調査し計測を行い、それによって得られたデータから表1のデータベースを制作してみました。

 表にはCPU毎に、上記のLinpackの理論値、計測値、それにSandra LITE ベンチマークを用い、手持ちのパソコン(CPU)のGflopsを実際に計測した結果も含めました。
まだまだ不十分ではありますが、科学技術計算にCPUを用いる上での一里塚となったと思います。

....

 さて、年末に私が自宅用PCとして購入した Core i7 3770(K)を使ったパソコンを対象に、Linpackによる浮動小数点実数演算を計測してみた。
 
 手順としては、まず理論値を推計し、次に
 ntelR Math Kernel Library ? LINPACK Download
を用いて計測します。

 理論値は、54.4GFlopsとなりました(表参照)。

 次に、すでに3770KのLinpack計測ですが、私が行う前に2つの計測例があったので、以下に示します。 いずれのベンチマーク値はおおむね50〜60Gflopsにあり、表1の値の範囲にあることがわかりました。 この計算では、配列の規模毎に1回から4回づつ浮動小数点演算をさせ、その都度、結果をテキストとしてはき出す方法をとっています。


Core i7 3770K、 Core i7 2700K のLINPACKベンチマーク  
http://news.mynavi.jp/special/2012/ivybridge/013.html


Core i7 3770K、 Core i7 2700K のLINPACKベンチマーク 
http://news.mynavi.jp/special/2012/ivybridge/032.html

表1 過去20年間に開発されたパソコン用CPUの浮動小数点倍精度演算速度比較(Linpack)
Maker CPU 世代 Mflops
/Cycle

CPU
Clock
GHz
Core Thread TDP
(W)
LINPACK
理論値

Gflops
LINPACK
実測値
Gflops
Whetstone
実測値
Gflops
参考
マルチ
メディア
総合
速度比
概算
発売

Intel i486DX 0.025 1 1 0.00048 1 1990
Intel i860 Risc 0.06 1 0.012 21 1991
Intel i486DX2 0.066 1 1 0.0012 2.6 1993
Intel i486DX2 1 0.066 1 1 0.004 8.3 1993
Intel PentiumMMX 1 0.2 1 1 0.029 29 1997
AMD K6 1 0.2 1 1 0.018 38 1997
Intel Celeron 2 2.5 1 1 0.729 1519 2002
Intel Pentium 4 2 2.5 1 1 0.729 1519 2003
Intel Pentium 4 2 2.5 1 1 0.729 1519 2003
Intel Pentium 4 2 3.4 1 1 1.146 2388 2005
Intel Pentium 4 2 3.0 1 1 1.875 11.0 3906 2006
Intel Pentium D 2 2.8 1 1 3.248 6842 2006
Intel Core 2 Duo 2 2.2 2 2 8.8 18333 2006
Intel Pentium E2140 Allendale-1M 3 1.60 2 2 65 9.6 20000 2006
Intel Pentium E2160 Allendale-1M 3 1.80 2 2 65 10.8 22500 2006
Intel Pentium E2180 Allendale-1M 3 2.00 2 2 65 12.0 25000 2006
Intel Pentium E2220 Allendale-1M 3 2.20 2 2 65 13.2 27500 2006
Intel Pentium E2240 Allendale-1M 3 2.4 2 2 65 14.4 30000 2006
AMD PhenomUX4 910 3 2.6 4 4 31.2 65000 2008
Intel Pentium E5200 Wolfdale 3 2.5 2 2 65 15 31250 2009
Intel Pentium E5300 Wolfdale 3 2.6 2 2 65 15.6 32500 2009
Intel Pentium E5400 Wolfdale 3 2.7 2 2 65 16.2 33750 2009
Intel Pentium E5500 Wolfdale 3 2.8 2 2 65 16.8 35000 2009
Intel Pentium E5700 Wolfdale 3 3.0 2 2 65 18.0 37500 2009
Intel Pentium E5800 Wolfdale 3 2.9 2 2 65 17.4 36250 2009
Intel Pentium E6300 Wolfdale 3 2.8 2 2 65 16.8 23.18 35000 2009
Intel Pentium E6500 Wolfdale 3 2.94 2 2 65 17.6 13.3 21.21 36.67 36667 2009
Intel Pentium E6600 Wolfdale 3 3.06 2 2 65 18.36 58.54 38250 2009
Intel Pentium E6700 Wolfdale 3 3.2 2 2 65 19.2 40000 2009
Intel Pentium E6800 Wolfdale 3 3.33 2 2 65 19.98 41625 2009
Apple Mac pro 10.7 22292 2009
AMD  AthlonU×2 245 3 2.9 2 2 65 17.4 18.95 36250 2009
Intel Core i3 540 Nehalem 4 3.06 2 4 73 24.48 33.38 68.98 51000 2009
Intel Core i3 550 Nehalem 4 3.2 2 4 73 25.6 35.27 53333 2009
Intel Core i5 660 Nehalem 4 3.33 2 4 73 26.64 55500 2009
Intel Core i5 680 Nehalem 4 3.6 2 4 73 28.8 60000 2009
Intel Core i5 750 Nehalem 4 2.67 4 4 95 32.04 36 33.2-35.4 79.84 66750 2009
Intel Core i7 840 Lynnfield 4 2.93 4 4 95 35.23 57.47 97667 2009
Intel Core i7 860 Lynnfield 4 2.93 4 4 95 46.88 97667 2009
Intel Core i7 870 Lynnfield 4 2.93 4 4 95 46.88 61 97667 2009
Intel Core i7 875 Lynnfield 4 3.46(OC) 4 4 95 55.36 44.75 115333 2009
Intel Core i7 920 Bloomfield 4 2.66 4 4 130 42.56 60.2-63.3 62.64 178.39 88667 2009
Intel Core i7 930 Bloomfield 4 2.8 4 4 130 51.2 59.38 106667 2009
Intel Core i7 940 Bloomfield 4 2.93 4 4 130 46.88 66.3-69.4 68.24 97667 2009
Intel Core i7 960 Bloomfield 4 3.2 4 4 130 51.2 66.30 106667 2009
Intel Core i7 965 Bloomfield 4 3.2 4 8 130 72.5-78.3 160000 2009
Intel Core i7 970 Bloomfield 4 3.2 12 130 76.8 67.83 141313 2009
Intel Core i7 980X Bloomfield 4 3.33 6 12 130 79.92 105.72 166500 2009
Intel Celeron 540 Sandy Bridge 4 2.5 2 2 65 20.0 41667 2010
Intel Celeron 550 Sandy Bridge 4 2.6 2 2 65 20.8 35 4.95 43333 2010
Intel Celeron G620 Sandy Bridge 4 2.6 2 2 65 20.8 19 43333 2010
Intel Pentium G630 Sandy Bridge 4 2.7 2 2 65 21.6 21 45000 2010
Intel Pentium G640 Sandy Bridge 4 2.8 2 2 65 22.4 22 46667 2010
Intel Pentium G860 Sandy Bridge 4 3.0 2 2 65 24.0 24 50000 2010
Intel Corei3 370M Sandy Bridge 4 2.4 2 4 17 19.2 26.24 40000 2010
Intel  Core i3 2100 Sandy Bridge 4 3.1 2 2 65 24.8 36.86 51667 2010
Intel  Core i3 2120 Sandy Bridge 4 3.3 2 2 65 26.4 55000 2010
Intel  Core i3 2130 Sandy Bridge 4 3.4 2 2 65 27.2 56667 2010
AMD A4-3300 A-Series 3 2.5 3 3 65 22.5 19 46875 2011
AMD A4-3400 A-Series 3 2.7 3 3 65 24.3 19 50625 2011
AMD A6-3500 A-Series 3 2.4 3 3 65 21.6 19 45000 2011
AMD A6-3600 A-Series 3 2.4 4 3 65 28.8 19 60000 2011
AMD A6-3650 A-Series 3 2.6 4 4 100 31.2 30 65000 2011
AMD A6-3670K A-Series 3 2.7 4 4 100 32.4 30 196.69 67500 2011
AMD A8-3800 Fusion 3 2.4 4 4 65 28.8 28 60000 2011
AMD A8-3850 Fusion 3 2.9 4 4 100 34.8 33 72500 2011
AMD A8-3870K Fusion 3 3.0 4 4 100 36 34 75000 2011
AMD AthlonUX4 455 3 3.3 4 4 95 39.6 32.3 82500 2011
AMD AthlonUX4 460 3 3.4 4 4 95 40.8 74.49 85000 2011
AMD AthlonUX4 620 3 2.6 4 4 95 31.2 65000 2011
AMD AthlonUX4 645 3 3.1 4 4 95 37.2 35 43 77500 2011
AMD AthlonUX4 651 3 3.0 4 4 100 36 75000 2011
AMD PhenomUX4 810 3 2.6 4 4 31.2 30 30 65000 2011
AMD PhenomUX4 840 3 3.2 4 4 125 38.4 45.36 80000 2011
AMD PhenomUX4 970 3 3.5 4 4 125 42.0 42 42 87500 2011
AMD PhenomUX4 975 3 3.6 4 4 125 43.2 44 90000 2011
AMD PhenomUX4 980 3 3.7 4 4 125 44.4 44 46 92500 2011
AMD PhenomUX6 1045T 3 2.7 6 4 95 48.6 101250 2011
AMD PhenomUX6 1055T 3 2.8 6 4 125 50.4 122.08 126000 2011
AMD PhenomUX6 1065T 3 2.9 6 4 95 52.2 108750 2011
AMD PhenomUX6 1075T 3 3.0 6 4 125 54 112500 2011
AMD PhenomUX6 1090T 3 3.2 6 4 125 57.6 120000 2011
AMD PhenomUX6 1100T 3 3.3 6 6 125 59.4 68.67 59.96 74.49 123750 2010
AMD FX6100 Zambezi 3 3.3 6 6 95 59.4 40 123750 2011
AMD FX8120 Zambezi 3 3.1 8 8 120 74.4 63 192.17 155000 2011
AMD FX8150 Zambezi 3 3.6 8 8 120 86.4 66 222.54 18000 2011
Intel Core i7 980X Gulftown 4 3.33 6 12 130 79.92 105.72 109 166500 2011
Intel Core i5 2320 Sandy Bridge 4 3.0(3.3) 4 4 95 52.8 110000 2011
Intel Core i5 2400 Sandy Bridge 4 3.1(3.4) 4 4 95 54.4 162.37 113333 2011
Intel Core i5 2500 Sandy Bridge 4 3.3(3.6) 4 4 95 57.6 120000 2011
Intel Core i5 2500K Sandy Bridge 4 3.3(3.6) 4 4 95 57.6 78 49.8 178.4 120000 2011
Intel Core i5 2550K Sandy Bridge 4 3.4(3.8) 4 4 95 60.8 126667 2011
Intel Core i5 2500K Sandy Bridge 4 3.6(TB) 4 4 95 57.6 57.6 120000 2011
Intel Core i5 2600K Sandy Bridge 4 3.4 4 8 95 54.4 83 268.06 113333 2011
Intel Core i5 2700K Sandy Bridge 4 3.5 4 8 95 56.0 98.69 269.93 116667 2011
Intel Pentium G870 Sandy Bridge 4 3.1 2 2 65 24.8 51667 2012
Intel Core i5 3330 Ivy Bridge 4 3.0(3.2) 4 4 77 48(51.2) 106667 2012
Intel Core i5 3450 Ivy Bridge 4 3.1(3.5)
4 4 77 49.6(56) 116667 2012
Intel Core i5 3550 Ivy Bridge 4 3.3(3.6) 4 4 77 52.8(57.6) 78 52 184.31 110000 2012
Intel Core i5 3570K Ivy Bridge 4 3.4 4 4 77 54.4 55.52 196.69 113333 2012
Intel Core i7 3770 Ivy Bridge 4 3.4(3.9) 4 8 77 54.4(62.2) 55(60) 92.28 266.14 113333 2012
Intel Core i7 3770K Ivy Bridge 4 5.0(OC) 4 8 77 80.0 80.0 93.22 276.66 166666 2012
Intel Core i7 3920XM Sandy Bridge-E 4 2.8 4 8 55 44.8 113333 2012
Intel Core i7 3930K Sandy Bridge-E 4 3.2 6 12 130 76.8 146.54 408.19 160000 2012
Intel Core i7 3930K Sandy Bridge-E 4 4.5(OC) 6 12 130 108 164.62 225000 2012
Intel Core i7 3930K Sandy Bridge-E 4 4.8(OC) 6 12 130 115.2 177.3 240000 2012
Intel Core i7 3960K Sandy Bridge-E 4 3.9 6 12 130 93.6 408.19 195000 2012
Intel Core i7 3960X Sandy Bridge-E 4 3.3 6 12 130 79.2 133.23 277563 2012
Intel Core i7 3970X Sandy Bridge-E 4 3.5(4.0) 6 12 130 96.0 133.23 277563 2012
Intel E3-1290 v2 Xeon 4 3.7 4 8 59.2 93333 2012
AMD A8-5500+HD7660D Trinity 3 3.2 4 4 65 38.4 80000 2012
AMD A8-5600K+HD7660D Trinity 3 3.6 4 4 100 43.2 90000 2012
AMD A10-5700+HD7560D Trinity 3 3.4 4 4 65 40.8 32.12 85000 2012
AMD A10-5800K+HD7560D Trinity 3 3.8 4 4 100 45.6 35 95000 2012
Linpack 理論値=(Mflops/cycle)×Clock(GHz)×Core(数)
ただし、この理論値はIntelのCPUに妥当するが、
AMDにはそのまま妥当しないものと推察される。

またWhetstoneは、Sandra LITEによるWeb場でのベンチマーク値および
グーグルで検索した国内外のデータから記入している。

マルチメディア処理とはPCの総合的なマルチメディア のパフォーマンスであり
マルチメディア 整数 x16 iSSE2、マルチメディア 浮動小数点 x8 iSSE2
マルチメディア 倍精度 x4 iSSE2、メモリーの帯域 、
総合的なメモリーのパフォーマンス、整数 B/F iSSE2 メモリー帯域、
浮動小数点 B/F iSSE2 メモリー帯域:などの総合ベンチマーク

出典:青山貞一、鷹取敦 環境総合研究所(東京都品川区)
注)OC:オーバークロック処理をした値

 次に、2011年以来、私が自宅で3台愛用しているCore i5 2500KについてLinpackベンチマークを行いました。

 ここでも実測に先立ち、グーグル検索ですでに行われているLinpackベンチマークを探し出しました。以下がそれです。

・CPU定格 + DES2無効 ・・・ 44.40GFlops(154W)
・CPU定格 + DES2有効 ・・・ 44.80GFlops(142W)
・オーバークロック ・・・・・・・・・ 57.93GFlops(200W)

 Linpack値は理論値には及ばないものの、定格で44〜45Gflopsを出しており、オーバークロック(OC)では58GflopsとCore i7 3770(K)の理論値を上回る速度を出していることも分かりました。このOCが可能なCPUは、型番の最後にKがついています。

 次に、Core i5 2500Kを対象にLinpackを計測してみました。

◆Core i5 2500K(Sandy Bridge)のLinpack計測事例

 以下に、Linpack計測ソフトを使い、Core i5 2500KのSandy Bridge CPUを計測した例を示します。この計算では、配列規模毎に浮動小数点倍精度実数演算を行わせGflopsをその都度計測する方法をとっています。

 但し、OSはWindows 7   64ビット、主記憶は8GBです。

計測用ソフト:IntelR Math Kernel Library ? LINPACK Download

Intel(R) Optimized LINPACK Benchmark data

Current date/time: Sat Jan 05 18:13:53 2013

CPU frequency: 3.592 GHz

Number of CPUs: 1
Number of cores: 4
Number of threads: 4

Parameters are set to:
Number of tests: 12
Number of equations to solve (problem size) :
1000 2000 3000 4000 5000 10000 15000 20000 25000 30000 35000 40000
Leading dimension of array :
1000 2000 3000 4000 5000 10000 15000 20000 25000 30000 35000 40000
Number of trials to run : 4 4 4 4 4 2 2 2 2 1 1 1
Data alignment value (in Kbytes) : 4 4 4 4 4 4 4 4 4 4 4 4

Size LDA Align. Time(s) GFlops Residual Residual(norm)
1000 1000 4 0.175 3.8136 1.029343e-012 3.510325e-002
1000 1000 4 0.011 63.5388 1.029343e-012 3.510325e-002
1000 1000 4 0.010 64.1637 1.029343e-012 3.510325e-002
1000 1000 4 0.011 62.5204 1.029343e-012 3.510325e-002
2000 2000 4 0.141 37.9122 4.298950e-012 3.739560e-002
2000 2000 4 0.081 66.1635 4.298950e-012 3.739560e-002
2000 2000 4 0.083 64.4245 4.298950e-012 3.739560e-002
2000 2000 4 0.082 65.5352 4.298950e-012 3.739560e-002
3000 3000 4 0.250 71.9928 8.755385e-012 3.371489e-002
3000 3000 4 0.249 72.4442 8.755385e-012 3.371489e-002
3000 3000 4 0.249 72.2818 8.755385e-012 3.371489e-002
3000 3000 4 0.250 72.1380 8.755385e-012 3.371489e-002
4000 4000 4 0.562 75.9878 1.896949e-011 4.134580e-002
4000 4000 4 0.547 78.0402 1.896949e-011 4.134580e-002
4000 4000 4 0.547 78.1017 1.896949e-011 4.134580e-002
4000 4000 4 0.777 54.9298 1.896949e-011 4.134580e-002
5000 5000 4 1.035 80.5782 2.581643e-011 3.599893e-002
5000 5000 4 1.042 80.0483 2.581643e-011 3.599893e-002
5000 5000 4 1.047 79.6173 2.581643e-011 3.599893e-002
5000 5000 4 1.125 74.1119 2.581643e-011 3.599893e-002
10000 10000 4 7.598 87.7648 9.603002e-011 3.386116e-002
10000 10000 4 7.687 86.7553 9.603002e-011 3.386116e-002
15000 15000 4 25.072 89.7602 2.042799e-010 3.217442e-002
15000 15000 4 25.081 89.7274 2.042799e-010 3.217442e-002
20000 20000 4 57.608 92.5935 4.097986e-010 3.627616e-002
20000 20000 4 59.382 89.8274 4.097986e-010 3.627616e-002
25000 25000 4 111.797 93.1859 6.089565e-010 3.462917e-002
25000 25000 4 111.360 93.5514 6.089565e-010 3.462917e-002
30000 30000 4 190.838 94.3302 8.421348e-010 3.319704e-002

 以下は、その計測値のグラフ化です。配列の規模が大きくなるにつれて演算速度が上昇し、最高で94.3Gflopsを記録しています。

 CPUの速度は、3.592GHz(Turbo)です。ときたま谷間がありますが、その速度は、37.9と54.9Gflopsである。計算中のCPU使用率は、4コアともに100%となっていました。

 なお、途中で終了しているのは、対象としたPCの主記憶容量が8GBとなっており、配列の規模がそれを超過したためです。OSはWindows 7 の64ビット Home Editionを使用しています。

 他方、Sandra LITEのWhetstoneの計測では、49.8Gflopsと52.8のGflops理論値に近くなっていました。


Gflops

図  Core i5 2500K(Sandy Bridg e)のLinpack計測事例
    
2013年1月5日 測定:青山貞一



 次の実測は、やはり自宅で愛用しているCore i5 750のLinpack計測です。

◆Core i5 750(Nehalem)のLinpack計測事例

 以下に、Linpack計測ソフトを使い、Core i5 750のNehalem CPUを計測した例を示します。この計算では、配列規模毎に浮動小数点倍精度実数演算を行わせGflopsをその都度計測する方法をとっています。

 但し、OSはWindows 7   32ビット、主記憶は4GBです。

計測用ソフト:IntelR Math Kernel Library ? LINPACK Download

Intel(R) Optimized LINPACK Benchmark data

Current date/time: Sat Jan 05 19:15:47 2013

CPU frequency: 3.206 GHz
Number of CPUs: 1
Number of cores: 4
Number of threads: 4

Parameters are set to:

Number of tests: 9
Number of equations to solve (problem size) :
15000 14000 13000 12000 11000 10000 8000 6000 1000
Leading dimension of array :
15000 14008 13000 12008 11000 10008 8008 6008 1000
Number of trials to run : 1 2 2 2 2 2 2 3 4
Data alignment value (in Kbytes) : 4 4 4 4 4 4 4 4 4
Maximum memory requested that can be used=1569180256, at the size=14000

Size LDA Align. Time(s) GFlops Residual Residual(norm)
14000 14008 4 49.360 37.0688 1.899019e-010 3.429426e-002
14000 14008 4 49.032 37.3173 1.899019e-010 3.429426e-002
13000 13000 4 40.506 36.1679 1.586276e-010 3.319163e-002
13000 13000 4 39.846 36.7666 1.586276e-010 3.319163e-002
12000 12008 4 31.316 36.7960 1.304731e-010 3.202444e-002
12000 12008 4 31.576 36.4930 1.304731e-010 3.202444e-002
11000 11000 4 25.127 35.3229 1.099408e-010 3.207430e-002
11000 11000 4 24.489 36.2437 1.099408e-010 3.207430e-002
10000 10008 4 18.413 36.2170 8.823431e-011 3.111231e-002
10000 10008 4 18.319 36.4036 8.823431e-011 3.111231e-002
8000 8008 4 9.755 35.0036 5.420336e-011 2.981655e-002
8000 8008 4 9.758 34.9927 5.420336e-011 2.981655e-002
6000 6008 4 4.075 35.3583 3.530821e-011 3.424139e-002
6000 6008 4 4.127 34.9138 3.530821e-011 3.424139e-002
6000 6008 4 4.086 35.2594 3.530821e-011 3.424139e-002
1000 1000 4 0.023 29.0297 1.172701e-012 3.999211e-002
1000 1000 4 0.026 26.1940 1.172701e-012 3.999211e-002
1000 1000 4 0.023 29.1255 1.172701e-012 3.999211e-002
1000 1000 4 0.024 27.5422 1.172701e-012 3.999211e-002

 以下は、その計測値のグラフ化です。32ビットの場合は、配列が大から小に向かって計測していますが、配列の規模が小さくなるにつれて演算速度が下がっています。

 32ビットOSの場合は、最高で37.1Gflopsがでています。ちなみに理論値は、32Gflopsと理論値に近くなっています。他方、Sandra LITEのWhetstoneの計測では、35.44Gflopsと理論値の52.8に近くなっています。

Gflops

図  Core i5 750(Nehalem)のLinpack計測事例
    
2013年1月5日 測定:青山貞一


 次の実測も、自宅で愛用しているPentium E6500のLinpack計測です。

◆Pentium E6500 Dual CoreのLinpack計測事例

 以下に、Linpack計測ソフトを使い、Pentium E6500 Dual CoreのCPUを計測した例を示します。この計算では、配列規模毎に浮動小数点倍精度実数演算を行わせGflopsをその都度計測する方法をとっています。

 但し、OSはWindows 7   32ビット、主記憶は4GBです。

Intel(R) Optimized LINPACK Benchmark data

Current date/time: Sat Jan 05 22:05:12 2013

CPU frequency: 2.924 GHz
Number of CPUs: 1
Number of cores: 2
Number of threads: 2

Parameters are set to:

Number of tests: 9
Number of equations to solve (problem size) : 15000 14000 13000 12000 11000 10000 8000 6000 1000
Leading dimension of array : 15000 14008 13000 12008 11000 10008 8008 6008 1000
Number of trials to run : 1 2 2 2 2 2 2 3 4
Data alignment value (in Kbytes) : 4 4 4 4 4 4 4 4 4

Maximum memory requested that can be used=1569180256, at the size=14000

============= Timing linear equation system solver =================

Size LDA Align. Time(s) GFlops Residual Residual(norm)
14000 14008 4 162.847 11.2358 2.706606e-010 4.887843e-002
14000 14008 4 132.177 13.8430 2.706606e-010 4.887843e-002
13000 13000 4 106.944 13.6987 1.571184e-010 3.287585e-002
13000 13000 4 115.810 12.6501 1.571184e-010 3.287585e-002
12000 12008 4 86.785 13.2775 1.394271e-010 3.422217e-002
12000 12008 4 84.723 13.6007 1.394271e-010 3.422217e-002
11000 11000 4 65.546 13.5412 1.098663e-010 3.205257e-002
11000 11000 4 71.129 12.4784 1.098663e-010 3.205257e-002
10000 10008 4 52.950 12.5943 9.876383e-011 3.482513e-002
10000 10008 4 51.886 12.8526 9.876383e-011 3.482513e-002
8000 8008 4 26.901 12.6934 6.257672e-011 3.442262e-002
8000 8008 4 26.882 12.7023 6.257672e-011 3.442262e-002
6000 6008 4 11.593 12.4275 3.583622e-011 3.475345e-002
6000 6008 4 11.600 12.4197 3.583622e-011 3.475345e-002
6000 6008 4 11.598 12.4224 3.583622e-011 3.475345e-002
1000 1000 4 0.066 10.0729 1.112277e-012 3.793150e-002
1000 1000 4 0.069 9.6906 1.112277e-012 3.793150e-002
1000 1000 4 0.070 9.4932 1.112277e-012 3.793150e-002
1000 1000 4 0.068 9.8199 1.112277e-012 3.793150e-002

Performance Summary (GFlops)

Size LDA Align. Average Maximal
14000 14008 4 12.5394 13.8430
13000 13000 4 13.1744 13.6987
12000 12008 4 13.4391 13.6007
11000 11000 4 13.0098 13.5412
10000 10008 4 12.7235 12.8526
8000 8008 4 12.6979 12.7023
6000 6008 4 12.4232 12.4275
1000 1000 4 9.7691 10.0729

End of tests

2013/01/05
22:24

 以下は、その計測値のグラフ化である。32ビットの場合は、配列が大から小に向かって計測していますが、配列の規模が小さくなるにつれて演算速度が下がっています。

 32ビットOSの場合は、最高で14Gflops近くの値がでていますが、理論値の17.6Gflopsには及んでいません。他方、Sandra LITEのWhetstoneの計測では、21.21Gflopsを上回っています。これは使用しているソフトのアルゴリズムなどにも関係があるかも知れません。


図  Core i5 750(Nehalem)のLinpack計測事例
    
2013年1月5日 測定:青山貞一



 その後、Sandra LITEという浮動小数点演算演算装置(FPU)の速度(Whetstone)を計測するWeb版のBenchmarkをグーグル検索で探しました。


Sandra LITEの画面イメージ

 このベンチマークソフトは、対象とするCPUを含むパソコンのWeb上で、対話型で容易かつ短時間(1回、10分以内)に整数計算速度(Dhrystone値)と浮動小数点計算速度(Whetstone値)を計測し、他の類似CPUの値との比較を含めWeb上でしてくれる優れものです。世界中、日本国内で行われている計測結果との比較やランキングまでしてくれます。

 Sandra LITEを使い手持ちのCPUを次々に計測し、表1に加えました。

 さらに、グーグルで検索し世界各国ですでに行われた浮動小数点演算演算装置(FPU)の速度のベンチマーク(Whetstone)やLinpackデータを検索し表1に加えました。

 表1をもとに、私がここ数年間自宅で使っているCPUを速度面で見ると、2010年以降、2012年暮れまでの約2年間で計算速度は相当早くなっていなことも分かります。これはハード、OS、アプリケーションを含め、いわゆる並列処理技術による負うところが大きいと思います。

 シングルコアのCPUにおけるクロック周波数を向上させることの限界を、並列処理という考え方を導入することで、ブレークスルーさせたものです。具体的に言えば、一つのLSIの中に、二つ、四つ、六つ、八つと複数のCPUを統合し、一つの仕事あるいは複数の別々の仕事をそれらのCPUのコアを使って同時並行的に処理させるわけです。

 私たちの場合、大気汚染、放射性物質の大気拡散計算をする場合、通常、風向、風速別に計算させているので、まさに並列処理になじむのです。

 一方、下図はマザーボードの種類により同じCPUでも数値計算速度が異なるというデータです。図を見ると、インテルのCore i5 2500KがH67のM/Bを使った場合とZ68のM/Bを場合で整数、実数、倍精度(Whetstone)ともに10%ほど、Z68の方がベンチマークがあがっていることがわかります。
 

http://www.bjorn3d.com/2011/06/amd-llano-fusion-for-the-mainstream/#.UOxGI-TclI4

 私は2500Kを乗せたPCを3台所有していますが、確かにPCによって5〜10%程度、Whetstone値が異なることを経験しています。これはおそらく使用するメインメモリーの種類についても妥当するはずでしょう。

 ....

 技術革新と言うからには、技術の進歩だけでなく、経済、費用を同時に問題仁しなければなりません。

 私が昨年末、BTOで購入した最新鋭のCore i7 3770マシンは8GBのメモリー、2TBのハードディスクストレージがあってわずか5万6千円です。その半分がCPU代(約2万5千円)といえます。

 2010年に購入したCore i5 750は4GBのメモリー、500GBのHDDのハードディスクで7万円台でした。

 さらに2011年に3台購入したCore i5 2500Kは8GBのメモリー、1TBのHDDで5万5千円台でした。

 速度が10万分の一に満たない20数年前に出たパソコンが30万円もしたことを考えると、この間の技術革新は驚異といえます。昨年暮れ導入したCore i7 3770マシンが5万円台だったことを考えると、速度やメモリー規模が10万倍となり、費用は1/5となっているのです。


現在、筆者が使っている最新のCPU Core i7 3770

 下図は過去約10年におけるCPUの浮動小数点倍精度演算速度の向上をグラフにしたものです。結論として言えることは、この25年間、CPUをはじめとしてパソコン関連の技術革新がすさまじく進んでいるということです。


図1 過去20年におけるCPUの進化
出典:http://www.anandtech.com/show/5058/amds-opteron-interlagos-6200/14


●3次元流体計算プログラムによる速度比較

 Linpack、Whetstone、Crystal Mark などのベンチマークテストは、いずれも浮動小数点倍精度実数演算を計測するベンチマークテストです。

 ※  但し、Crystal Markのベンチマーク計測ソフト

 当然のこととして、ベンチマークテストの結果は、私たちの科学技術計算実務に大いに参考になります。演算速度が速いほうが原発事故時シミュレーションで有利となるからです。
 
 そこで、各種のCPUを私たちが原発事故時シミュレーションなどで使っている実際の流体力学の有限差分計算当てはめたときにどうなるかが重要となります。

 そこで私たちは、主なCPUを対象に、同一の流体力学の有限差分計算プログラムをRunさせた場合の数値(秒数)を計測してみました。このプログラムは、原発事故時シミュレーションで使用しているプログラムの一部です。

 ここで特に注目すべきは、並列処理とコア数の関係です。

◆CPU別の速度比較

 ここでは実際に3次元流体数値計算に使っているプログラムについて、一本のプログラムを動かす場合、二本のプログラムを同時に動かす場合、そして四本のプログラムを同時に動かす場合を計算し、計算時間を秒数で計測してみました。

 なお、プログラムは特定風向、特定風速時のx、y、z 3次元グリッドで構成した風場を計算するもので、通常1風向2000回計算するところを100回分計算したときの秒数を計測するようにしました。


SuperAir3D NPP システムの数値計算中の画面例

 以下は計算結果を示すログの例です。

imax=110 jmax=176 KMAX=36
ITR 1 TIME=68.9 DUVW=4.97e+000 ERAVE=3.34e-001 ERMAX=5.03e+000 AT 3 173 34
ITR 2 TIME=77.7 DUVW=3.50e+000 ERAVE=3.17e-001 ERMAX=3.99e+000 AT 107 173 34
ITR 3 TIME=89.4 DUVW=2.26e+000 ERAVE=3.08e-001 ERMAX=3.40e+000 AT 106 173 34
ITR 4 TIME=99.9 DUVW=1.75e+000 ERAVE=3.02e-001 ERMAX=3.02e+000 AT 106 173 34
ITR 5 TIME=111.5 DUVW=3.12e+000 ERAVE=2.96e-001 ERMAX=2.73e+000 AT 106 173 34
ITR 6 TIME=121.1 DUVW=3.18e+000 ERAVE=2.92e-001 ERMAX=2.50e+000 AT 106 173 34
ITR 7 TIME=135.0 DUVW=3.17e+000 ERAVE=2.88e-001 ERMAX=2.32e+000 AT 106 173 34
ITR 8 TIME=146.8 DUVW=2.62e+000 ERAVE=2.85e-001 ERMAX=2.16e+000 AT 106 173 34
ITR 9 TIME=156.2 DUVW=1.71e+000 ERAVE=2.82e-001 ERMAX=2.03e+000 AT 106 174 34
ITR 10 TIME=167.9 DUVW=1.40e+000 ERAVE=2.79e-001 ERMAX=1.98e+000 AT 5 174 34
ITR 11 TIME=182.7 DUVW=2.15e+000 ERAVE=2.77e-001 ERMAX=1.93e+000 AT 5 174 34
ITR 12 TIME=193.4 DUVW=1.83e+000 ERAVE=2.74e-001 ERMAX=1.87e+000 AT 5 174 34
ITR 13 TIME=211.3 DUVW=1.54e+000 ERAVE=2.71e-001 ERMAX=1.81e+000 AT 5 174 34
ITR 14 TIME=223.0 DUVW=2.28e+000 ERAVE=2.69e-001 ERMAX=1.76e+000 AT 5 174 34
ITR 15 TIME=234.6 DUVW=8.00e-001 ERAVE=2.67e-001 ERMAX=1.71e+000 AT 5 174 34
ITR 16 TIME=249.3 DUVW=8.84e-001 ERAVE=2.65e-001 ERMAX=1.66e+000 AT 5 174 34
ITR 17 TIME=263.1 DUVW=6.98e-001 ERAVE=2.63e-001 ERMAX=1.61e+000 AT 5 174 34
ITR 18 TIME=282.1 DUVW=2.43e+000 ERAVE=2.60e-001 ERMAX=1.56e+000 AT 105 174 34
ITR 19 TIME=292.7 DUVW=6.48e-001 ERAVE=2.59e-001 ERMAX=1.51e+000 AT 6 174 34
ITR 20 TIME=306.4 DUVW=7.28e-001 ERAVE=2.57e-001 ERMAX=1.47e+000 AT 6 174 34
ITR 21 TIME=320.2 DUVW=8.22e-001 ERAVE=2.55e-001 ERMAX=1.43e+000 AT 6 174 34
ITR 22 TIME=329.7 DUVW=1.31e+000 ERAVE=2.54e-001 ERMAX=1.38e+000 AT 6 174 34
ITR 23 TIME=343.6 DUVW=1.24e+000 ERAVE=2.52e-001 ERMAX=1.36e+000 AT 59 124 18
ITR 24 TIME=353.1 DUVW=1.80e+000 ERAVE=2.51e-001 ERMAX=1.36e+000 AT 59 124 18
ITR 25 TIME=365.9 DUVW=1.74e+000 ERAVE=2.50e-001 ERMAX=1.36e+000 AT 59 124 18
ITR 26 TIME=375.7 DUVW=1.70e+000 ERAVE=2.48e-001 ERMAX=1.36e+000 AT 59 124 18
ITR 27 TIME=389.7 DUVW=1.88e+000 ERAVE=2.47e-001 ERMAX=1.36e+000 AT 59 124 18
ITR 28 TIME=399.3 DUVW=1.98e+000 ERAVE=2.46e-001 ERMAX=1.36e+000 AT 59 124 18
ITR 29 TIME=416.4 DUVW=7.86e-001 ERAVE=2.44e-001 ERMAX=1.34e+000 AT 59 124 18
ITR 30 TIME=434.4 DUVW=8.08e-001 ERAVE=2.43e-001 ERMAX=1.34e+000 AT 59 124 18
ITR 31 TIME=446.1 DUVW=1.21e+000 ERAVE=2.42e-001 ERMAX=1.35e+000 AT 59 124 18
ITR 32 TIME=458.7 DUVW=8.61e-001 ERAVE=2.41e-001 ERMAX=1.35e+000 AT 59 124 18
ITR 33 TIME=470.2 DUVW=1.84e-001 ERAVE=2.40e-001 ERMAX=1.35e+000 AT 59 124 18
ITR 34 TIME=510.2 DUVW=4.98e-001 ERAVE=2.38e-001 ERMAX=1.35e+000 AT 59 124 18
ITR 35 TIME=529.0 DUVW=6.39e-001 ERAVE=2.37e-001 ERMAX=1.35e+000 AT 59 124 18
ITR 36 TIME=540.5 DUVW=7.34e-001 ERAVE=2.36e-001 ERMAX=1.35e+000 AT 59 124 18
ITR 37 TIME=552.1 DUVW=7.49e-001 ERAVE=2.35e-001 ERMAX=1.35e+000 AT 59 124 18
ITR 38 TIME=563.6 DUVW=3.93e-001 ERAVE=2.35e-001 ERMAX=1.36e+000 AT 59 124 18
ITR 39 TIME=583.4 DUVW=5.48e-001 ERAVE=2.34e-001 ERMAX=1.36e+000 AT 59 124 18
ITR 40 TIME=596.9 DUVW=5.07e-001 ERAVE=2.33e-001 ERMAX=1.35e+000 AT 59 124 18
ITR 41 TIME=612.4 DUVW=7.70e-001 ERAVE=2.32e-001 ERMAX=1.34e+000 AT 59 124 18
ITR 42 TIME=624.0 DUVW=1.29e+000 ERAVE=2.31e-001 ERMAX=1.34e+000 AT 59 124 18
ITR 43 TIME=634.6 DUVW=8.28e-001 ERAVE=2.30e-001 ERMAX=1.35e+000 AT 59 124 18
ITR 44 TIME=646.2 DUVW=1.74e+000 ERAVE=2.30e-001 ERMAX=1.35e+000 AT 59 124 18
ITR 45 TIME=657.8 DUVW=7.67e-001 ERAVE=2.29e-001 ERMAX=1.35e+000 AT 59 124 18
ITR 46 TIME=672.4 DUVW=5.71e-001 ERAVE=2.28e-001 ERMAX=1.34e+000 AT 59 124 18
ITR 47 TIME=691.3 DUVW=9.32e-001 ERAVE=2.27e-001 ERMAX=1.34e+000 AT 59 124 18
ITR 48 TIME=703.0 DUVW=1.04e+000 ERAVE=2.26e-001 ERMAX=1.34e+000 AT 59 124 18
ITR 49 TIME=714.8 DUVW=1.09e+000 ERAVE=2.26e-001 ERMAX=1.35e+000 AT 59 124 18
ITR 50 TIME=724.5 DUVW=1.58e+000 ERAVE=2.25e-001 ERMAX=1.35e+000 AT 59 124 18
ITR 51 TIME=735.0 DUVW=8.72e-001 ERAVE=2.24e-001 ERMAX=1.35e+000 AT 59 124 18
ITR 52 TIME=746.6 DUVW=1.26e+000 ERAVE=2.24e-001 ERMAX=1.35e+000 AT 59 124 18
ITR 53 TIME=759.3 DUVW=1.52e+000 ERAVE=2.23e-001 ERMAX=1.36e+000 AT 59 124 18
ITR 54 TIME=770.7 DUVW=8.53e-001 ERAVE=2.22e-001 ERMAX=1.37e+000 AT 59 124 18
ITR 55 TIME=786.3 DUVW=6.05e-001 ERAVE=2.22e-001 ERMAX=1.34e+000 AT 59 124 18
ITR 56 TIME=803.9 DUVW=3.48e-001 ERAVE=2.21e-001 ERMAX=1.33e+000 AT 59 124 18
ITR 57 TIME=839.5 DUVW=2.96e-001 ERAVE=2.21e-001 ERMAX=1.33e+000 AT 59 124 18
ITR 58 TIME=879.4 DUVW=4.44e-001 ERAVE=2.20e-001 ERMAX=1.32e+000 AT 59 124 18
ITR 59 TIME=895.0 DUVW=4.33e-001 ERAVE=2.19e-001 ERMAX=1.32e+000 AT 59 124 18
ITR 60 TIME=911.7 DUVW=2.58e-001 ERAVE=2.19e-001 ERMAX=1.32e+000 AT 59 124 18
ITR 61 TIME=935.8 DUVW=2.77e-001 ERAVE=2.18e-001 ERMAX=1.32e+000 AT 59 124 18
ITR 62 TIME=957.8 DUVW=2.59e-001 ERAVE=2.18e-001 ERMAX=1.32e+000 AT 59 124 18
ITR 63 TIME=981.8 DUVW=2.37e-001 ERAVE=2.17e-001 ERMAX=1.32e+000 AT 59 124 18
ITR 64 TIME=998.6 DUVW=4.55e-001 ERAVE=2.17e-001 ERMAX=1.32e+000 AT 59 124 18
ITR 65 TIME=1012.4 DUVW=3.57e-001 ERAVE=2.16e-001 ERMAX=1.32e+000 AT 59 124 18
ITR 66 TIME=1028.2 DUVW=6.92e-001 ERAVE=2.16e-001 ERMAX=1.32e+000 AT 59 124 18
ITR 67 TIME=1040.1 DUVW=6.78e-001 ERAVE=2.15e-001 ERMAX=1.32e+000 AT 59 124 18
ITR 68 TIME=1052.7 DUVW=5.14e-001 ERAVE=2.14e-001 ERMAX=1.33e+000 AT 59 124 18
ITR 69 TIME=1068.4 DUVW=2.25e-001 ERAVE=2.14e-001 ERMAX=1.32e+000 AT 59 124 18
ITR 70 TIME=1116.6 DUVW=4.25e-001 ERAVE=2.14e-001 ERMAX=1.32e+000 AT 59 124 18
ITR 71 TIME=1132.7 DUVW=2.51e-001 ERAVE=2.13e-001 ERMAX=1.32e+000 AT 59 124 18
ITR 72 TIME=1156.6 DUVW=1.66e-001 ERAVE=2.13e-001 ERMAX=1.32e+000 AT 59 124 18
ITR 73 TIME=1207.1 DUVW=1.04e-001 ERAVE=2.13e-001 ERMAX=1.31e+000 AT 59 124 18
ITR 74 TIME=1258.5 DUVW=1.33e-001 ERAVE=2.12e-001 ERMAX=1.31e+000 AT 59 124 18
ITR 75 TIME=1284.5 DUVW=2.37e-001 ERAVE=2.12e-001 ERMAX=1.31e+000 AT 59 124 18
ITR 76 TIME=1301.6 DUVW=4.25e-001 ERAVE=2.11e-001 ERMAX=1.31e+000 AT 59 124 18
ITR 77 TIME=1316.5 DUVW=2.43e-001 ERAVE=2.11e-001 ERMAX=1.31e+000 AT 59 124 18
ITR 78 TIME=1335.2 DUVW=1.77e-001 ERAVE=2.10e-001 ERMAX=1.32e+000 AT 59 124 18
ITR 79 TIME=1359.2 DUVW=1.38e-001 ERAVE=2.10e-001 ERMAX=1.31e+000 AT 59 124 18
ITR 80 TIME=1408.5 DUVW=1.80e-001 ERAVE=2.09e-001 ERMAX=1.31e+000 AT 59 124 18
ITR 81 TIME=1428.8 DUVW=1.50e-001 ERAVE=2.09e-001 ERMAX=1.31e+000 AT 59 124 18
ITR 82 TIME=1453.8 DUVW=1.67e-001 ERAVE=2.09e-001 ERMAX=1.31e+000 AT 59 124 18
ITR 83 TIME=1477.9 DUVW=1.36e-001 ERAVE=2.08e-001 ERMAX=1.31e+000 AT 59 124 18
ITR 84 TIME=1504.1 DUVW=1.64e-001 ERAVE=2.08e-001 ERMAX=1.31e+000 AT 59 124 18
ITR 85 TIME=1523.4 DUVW=1.30e-001 ERAVE=2.07e-001 ERMAX=1.31e+000 AT 59 124 18
ITR 86 TIME=1549.2 DUVW=2.71e-001 ERAVE=2.07e-001 ERMAX=1.31e+000 AT 59 124 18
ITR 87 TIME=1566.4 DUVW=2.73e-001 ERAVE=2.06e-001 ERMAX=1.31e+000 AT 59 124 18
ITR 88 TIME=1583.0 DUVW=1.28e-001 ERAVE=2.06e-001 ERMAX=1.31e+000 AT 59 124 18
ITR 89 TIME=1629.7 DUVW=1.70e-001 ERAVE=2.06e-001 ERMAX=1.31e+000 AT 59 124 18
ITR 90 TIME=1652.2 DUVW=1.16e-001 ERAVE=2.05e-001 ERMAX=1.31e+000 AT 59 124 18
ITR 91 TIME=1700.0 DUVW=1.16e-001 ERAVE=2.05e-001 ERMAX=1.31e+000 AT 59 124 18
ITR 92 TIME=1727.5 DUVW=1.16e-001 ERAVE=2.04e-001 ERMAX=1.31e+000 AT 59 124 18
ITR 93 TIME=1751.8 DUVW=5.12e-002 ERAVE=2.04e-001 ERMAX=1.31e+000 AT 59 124 18
ITR 94 TIME=1907.1 DUVW=4.13e-002 ERAVE=2.02e-001 ERMAX=1.31e+000 AT 59 124 18
ITR 95 TIME=2056.9 DUVW=4.06e-002 ERAVE=2.00e-001 ERMAX=1.30e+000 AT 59 124 18
ITR 96 TIME=2206.6 DUVW=3.85e-002 ERAVE=1.98e-001 ERMAX=1.30e+000 AT 59 124 18
ITR 97 TIME=2359.0 DUVW=3.67e-002 ERAVE=1.96e-001 ERMAX=1.30e+000 AT 59 124 18
ITR 98 TIME=2509.7 DUVW=3.51e-002 ERAVE=1.94e-001 ERMAX=1.30e+000 AT 59 124 18
ITR 99 TIME=2659.2 DUVW=3.37e-002 ERAVE=1.92e-001 ERMAX=1.30e+000 AT 59 124 18
I
TR 100 TIME=2812.1 DUVW=3.25e-002 ERAVE=1.90e-001 ERMAX=1.30e+000 AT 59 124 18

 単位は秒、秒数は少ない方が早いことを示しています。

@対象CPU:Core i7 3770, 343GHz, 4コア, 4スレッド, 64Bit, 8GB
Whetstone: 92.28GFLOPS
CrystalMark: 68.935GFLOPS
AIR3D プログラム1つ同時:1168秒
AIR3D プログラム2つ同時:1282秒
AIR3D プログラム4つ同時:1520秒

A対象CPU:Core i5 3550, 3.3GHz, 4コア, 4スレッド, 64Bit, 8GB
Whetstone: 52.46GFLOPS
CrystalMark: 65.269GFLOPS
AIR3D プログラム1つ同時:1198秒
AIR3D プログラム2つ同時:1355秒
AIR3D プログラム4つ同時 1611秒

B対象CPU:Core i5 2500K, 3.4GHz, 4コア, 4スレッド, 64Bit, 8GB
Whetstone: 78GFLOPS
CrystalMark: 63.264GFLOPS
AIR3D プログラム1つ同時 1311秒
AIR3D プログラム2つ同時:1543秒
AIR3D プログラム4つ同時:2013秒

C対象CPU:Core i5 750, 2.67GHz, 4コア, 4スレッド, 64Bit, 8GB
Whetstone: 33.19GFLOPS
CrystalMark: 46.507GFLOPS
AIR3D プログラム1つ同時: 1411秒
AIR3D プログラム2つ同時: 1640秒
AIR3D プログラム4つ同時: 1918秒

D対象CPU:Core i5 750, 2.67-3.2GHz, 4コア, 4スレッド, 32Bit, 4GB
Whetstone: 35.44GFLOPS
CrystalMark: 50.099GFLOPS
AIR3D プログラム1つ同時: 1115秒
AIR3D プログラム2つ同時: 1315秒
AIR3D プログラム4つ同時: 1532秒

E対象CPU:Core i5 550, 2.4GHz, 2コア, 4スレッド, 64Bit, 4GB
Whetstone: 35.44GFLOPS
CrystalMark: 45.833GFLOPS
AIR3Dプログラム 1つ同時:1914秒
AIR3Dプログラム 2つ同時: 2150秒

AIR3D プログラム4つ同時: 4243秒

F対象CPU:Core i5 540, 3.1GHz, 2コア, 4スレッド, 32Bit, 4GB
Whetstone: 33.38GFLOPS
CrystalMark: 36.617GFLOPS
AIR3Dプログラム 1つ同時:2250秒
AIR3Dプログラム 2つ同時:2504秒
AIR3D プログラム4つ同時:4929秒

G対象CPU:AMD Athlon II X2 245, 2.90GHz, 2コア, 2スレッド, 32Bit, 2GB
Whetstone: 18.34GFLOPS
CrystalMark: 22.343GFLOPS
AIR3Dプログラム 1つ同時:2359秒
AIR3Dプログラム 2つ同時:2857秒

H対象CPU:Pentium E6500, 2.94GHz, 2コア, 2スレッド, 32Bit, 2GB
Whetstone: 21GFLOPS
CrystalMark: 21.21GFLOPS
AIR3Dプログラム 1つ同時:2448秒
AIR3Dプログラム 2つ同時:3048秒
AIR3D プログラム4つ同時:5568秒


●プログラム数別・CPU別の秒数

◆プログラム1つの場合のベンチマーク
AIR3D プログラム1つ同時:1115秒 750(32bit) 1.00
AIR3D プログラム1つ同時:1168秒 3770    1.048
AIR3D プログラム1つ同時:1198秒 3550    1.074
AIR3D プログラム1つ同時:1311秒 2500K   1.222
AIR3D プログラム1つ同時:1411秒 750(64bit) 1.265
AIR3Dプログラム 1つ同時:1914秒 550     1.717
AIR3Dプログラム 1つ同時:2250秒 540     1.926
AIR3Dプログラム 1つ同時:2359秒 Athlon    2.018
AIR3Dプログラム 1つ同時:2448秒 E6500   2.196

◆プログラム2つの場合のベンチマーク
AIR3D プログラム2つ同時: 1282秒 3770    1.00 
AIR3D プログラム2つ同時: 1316秒 750(32bit) 1.026
AIR3D プログラム2つ同時: 1355秒 3550    1.057 
AIR3D プログラム2つ同時: 1543秒 2500K   1.203
AIR3D プログラム2つ同時: 1640秒 750(64bit) 1.279
AIR3Dプログラム 2つ同時: 2150秒 550     1.677
AIR3Dプログラム 2つ同時: 2504秒 540     1.953
AIR3Dプログラム 2つ同時: 2857秒 Athlon    2.238
AIR3Dプログラム 2つ同時: 3048秒 E6500   2.378

◆プログラム4つの場合のベンチマーク
AIR3D プログラム2つ同時: 1520秒 3770    1.00
AIR3D プログラム2つ同時: 1532秒 750(32bit) 1.008 
AIR3D プログラム2つ同時: 1611秒 3550    1.060 
AIR3D プログラム2つ同時: 1918秒 750(64bit) 1.262
AIR3D プログラム2つ同時: 2013秒 2500K   1.324
AIR3Dプログラム 2つ同時: 4243秒 550     1.677
AIR3Dプログラム 2つ同時: 4929秒 540     2.791
AIR3Dプログラム 2つ同時: 5568秒 E6500   3.366


図  プログラム数別・CPU別の秒数
出典:環境総合研究所 2013.1.10

 上記の結果からわかることは、計算時間は当然のことながらLinpack 値、Whetstone値、Cristal Mark値に反比例して秒数が少ないことがわかりました。

 次に、コア数(スレッド数ではなく)に対応し、Linpack値 、Whetstone値、Crystal Mark値が配分されており、2コアのCPUに4つのプログラムを同時にRunさせた場合には、2つのプログラムの計算に要する時間のちょうど2倍の秒数がかかり並列処理効果がないことが分かりました。

 したがって、4つのプログラムを並行処理させる場合には、4コアCPU以上のCPUが必要なことがわかります。すなわち、科学技術計算では、スレッド数ではなくあくまでコア数が大切となるわけです。

 ところで自宅と研究所でそれぞれ使っている750のCPUですが、自宅のものは32ビットOS,と4GBメモリー、研究所のものは64bitOSと8GBメモリーとなっており、両方とも同じMSIのマザーボードを使っていますが、なぜか32ビットOS,と4GBメモリーの750がLinpack値 、Whetstone値、Crystal Mark値で3770,3550よりも低いのに、少ない秒数となっていました。何度、計測し直しても上記の結果は間違いがありませんが、いまのところ理由はよくわかっていません。

一つ考えられるのは、この3次元流体プログラムをコンパイする際の最適化の方法です。それによりCPUのLinpackやWhetstoneがが高いCPUでもこの3次元流体計算ではそれほのパーフォーマンスが得られないと推察されます。


●動画エンコーディング速度

 以上、主に浮動小数点演算の速度を見てきましたが、パソコンではグラフィックス表示速度や動画編集のさくさく感、さらに動画ファイルのエンコーディングにかかる時間なども大きな課題となります。

 本格的なベンチマークは別の機会に譲るとして、簡単なファイルエンコードを計測してCPU毎の実力を比較してみました。

 事例は独立系メディアの動画ファイル作成に係わるものです。

 実験はハイビジョンタイプのMpeg2の動画をマイクロソフトのWMV形式のHD動画に変換するのに要する秒数を計測しました。実際には変換全体では時間がかかるので、全体の5%をエンコーディングするのに要する秒数を計測しました。



 下は計測結果です。思いの他、Intel社の第三世代CPU、Core i7 3770が好成績となりました。これもびっくりです。
 
 CPUの型番     メモリー  秒数   メーカー名、購入時期など
======================================================
 Core i5  3770  8GB    18秒   Intel  第三世代 Ivy Bridge 2012年冬 
 Core i5  3550  8GB    22秒   Intel  第三世代 Ivy Bridge 2012年冬
 Core i5 2500K 8GB   25秒   Intel  第二世代 Sandy Bridge 2011年冬
 Core i5  750  4GB   36秒   Intel  第一世代 2010年春 
 Core i3  540  4GB   58秒   Intel  第一世代 2010年春
 Pentium  E6500  2GB   70秒   Intel 2009年春 Intel Dual Core
 Athlon×2       2GB   72秒  AMD 2009年春 AMD Dual Core

 変換中、リソースモニターで監視したところ、3770の8つのスレッドの稼働率がいずれも77%となっていました。2500Kと3770はコア数は同じ、クロック数も0.1しか変わりませんが、スレッド数で3770が2倍の8となっていることが高速化の理由といえそうです。ちなみに、2500Kでは、4つのスレッドの稼働率が86〜88%となっていました。


Core i5 750のリソースモニター(4コア、4スレッド)


Core i7 3770のリソースモニター(4コア、8スレッド)



消費電力

 一方、TDP(消費電力)について見てみると、Core i5 750とCore i5 2500Kがともに95Wであるのに対して、Core i7 3770(K)のTDPはスレッドが8つとなっているが77Wと大幅23%も減少しています。

 Core i5 やCore i7のように、4コアCPUのメリットは、性能が高まる割にTDP(消費電力)が少ないことです。Core i5 や Core i7のようなマルチコアの場合、シングルコアの場合より低い周波数で動作させることが可能となり、駆動電圧を下げることが可能となります。消費電力は電圧のほぼ2乗に比例するから、消費電力を大きく下げられるのです。


CPU価格

 以上の性能評価は、大部分が浮動小数点倍精度演算速度に限った比較であり、CPUは実際には各種のグラフィックス表示機能、ファイル転送変換機能はじめ多数の機能があり、それぞれに対応したベンチマークテストがあります。

 通常のPC使用では、科学技術計算用のLinpackのベンチマークだけでCPUの性能を評価するわけには行きません。というよりLinpackによる評価は一般PCユーザーからすれば特殊なものとさえ言えましょう。

 2012年12月末時点での価格コムによる各CPUの実売価格は以下の通りです。

Core i5 750        ー
Core i5 2500       18979円
Core i5 2500K      18440円
Core i7 3770       24765円
Core i7 3770(K)     27344円

 上記の価格は、価格コムの2012年12月31日時点での最低価格です。ただし、ーはすでに価格コムに価格が示されていないことを示します。

●AMDのCPU

 今回は大部分がインテル社のCPUを対象にしてきましたが、CPUの世界には、インテルと並ぶAMD社があります。

 AMD社は、2012年秋にA10  5800KなどAMD Trinity Aシリーズを出荷しました(表2、表3参照)。


2AMD Trinity Aシリーズ

 これらのCPUは整数演算速度は高速、内蔵グラフィックス表示やゲームの3次元表示なども高速ですが、本論で課題としている浮動小数点倍精度実数演算速度は、35Gflops程度で、Intel社 のCore i5 3470ないし Core i3 3220 よりも低いものとなっています。

 A10 5800KのLinpackは理論値は、3.8GHzクロック動作時で45.6程度と推定されますが、表1からは理論値よりかなり低くなっています。この35という値は、Sandra LITE系のWhetstooneでもほぼ同じ値が出ていたので、それほど間違はないはずです。

 この原因は、AMDのCPUは浮動小数点演算を担当するFPUがIntelに比べかなり非力であることに原因があると思えます。おそらく1cycle当たりのMflopsが3(Intel の場合は4)以下しかないものと推察できます。

表2 AMD AシリーズCPUの概要

出典:http://weekly.ascii.jp/elem/000/000/110/110175/

 しかし、AMD社の最新プロセッサーであるA10 5800Kが実売価格は12000円程度と非常にリーズナブルであり、内蔵グラフィックス機能がIntelの内蔵グラフィックス機能であるHD4000などよりはるかに拡充されていることからすると、筆者らのように3次元流体計算シミュレーションなど科学技術計算にこだわらないユーザーにあっては、AMDのCPUはきわめて高い費用対効果をもったすばらしいCPUであると思えます。

 また今後、AMDがナノテク技術の向上を含めFPUの改善に取り組めば、費用効果抜群のCPUを送り出すことができ、この分野におけるIntel独占状態を改善することが可能となるでしょう。

 以下は、A10-5800Kを含むAMD CPUのGflops値(Linpack に類するSandra Arithmetic 赤い方)です。A10-5800Kは35.82となっており、最下段にあるi3 2105とほぼ同等となっています。浮動小数点倍精度演算で高速なAMDのCPUとしてはPhenomUX6 1000シリーズがあり、上から4つ目のPhenomUX6 は56.32Gflopsを出していますが、6つのコアがあることからすると、やはりAMDのFPUは非力であるといえます。


AMD CPUのGflops値(赤い方がWhetstone値)


AMD CPUのGflops値

 ただし、そこそこのFPU能力ではあっても、同じくそこそこのグラフィックス機能をもったGPUをひとつのCPUに統合したAMDの最新CPU(A10シリーズ)をCAD,CAMに生かした新たな利用の途があるようです。

 ACUBE A300M/A320Mプロフェッショナル・プラットフォームがそれです。ワークステーションインテグレータとエンドユーザが、エントリ・メインストリームCADとDCCワークフローにおいて結びつけた非常に有効な新らたなコンピューティング・プラットフォームといえます。


ACUBE A300M/A320M


将来展望

 インテル社のCPUは絶えず限界を超越し、すさまじいCPUの技術革新を達成してきたことは間違いありません。

 一方、AMDはFPU(浮動小数点演算装置)が非力であるため、いくらCPUのクロック周波数を上げても浮動小数点倍精度演算でインテルに追いつかないことが大きな課題でした。

 しかし、AMD社も今後、FPUを改善すれば、この分野(高度な科学技術計算)でも一気にインテルに近づき超えることも可能です。これはインテル1社独占とさせないためにも、ぜひやってほしいと思います。

 最後にCPUの数値演算速度やグラフィックス機能の向上、そしてメモリーの大規模化には、当然のこととして、ナノテク技術の革新が不可欠です。

 これについては、米国カリフォルニア州サンディエゴから青山研究室に留学して来ていた学生の父親が、まさにLSI技術の核心部分の研究開発を永年サンディエゴの地で行ってきました。それもベンチャー企業の技術幹部として。

 たまたま数年前、サンディエゴで技術幹部にお会いすることができ、そのときいろいろ議論することができました。その内容を以下に示します。

◆青山貞一:パソコン計算速度は一段と向上し、ハードディスクは不要となる!
◆青山貞一:サンディエゴ:最先端研究開発型ベンチャー企業の実態

 読んでいただければおわかりになると思いますが、このサンディエゴに本社を置く研究開発型ベンチャー企業は、過去何度もLSIの集積度を高める上で限界にぶつかりながら、その極限でブレークスルーしてきた会社です。

 現在、Intel社のLSI上の配線は20nm台、AMD社のそれは40nm台が主流だが、ベンチャー企業の技術系幹部によれば、今後、光源はエキシマレーザからEUV(13.5nm)に移行すると明言していました。


 もちろん、そうなればメモリー系は飛躍的な集積度アップが見込めます。CPU系も熱処理問題を解決さえすれば、さらなる飛躍が見込めるはずです。

 読者の皆さんが何気なく毎日使われているパソコンは、その背後には費用を下げながら集積度を上げ、CPUの高速化とメモリーの巨大化を同時に技術革新する技術とベンチャー企業の存在があります。

 私たち環境総合研究所(東京都目黒区)は、パソコンが世に出たときから、パソコンを環境問題の解決のために使う、そのためのソフト開発に25年以上努力してきました。

 その間、パソコンの計算速度は表1にあるように約20万倍も向上し、価格は逆に低下してきたのです。今後も、私たちはパソコンを環境問題、放射能汚染問題の解決に役立たせるべく努力する所存です。

 皆様、今年もよろしくお願いいたします!
 
表3 AMDのCPU Aシリーズ関連データ
AMD A-Series Component Desktop APUs 
APU Model  AMD Radeon? Brand  TDP  CPU Cores  CPU Clock (Max/Base)  AMD Radeon? Cores  GPU Clock 
A10-5800K  HD 7660D  100W  4.2 GHz / 3.8 GHz  384  800 MHz 
A10-5700 HD 7660D  65W  4 4.0 GHz / 3.4 GHz  384  760 MHz 
A8-5600K  HD 7560D  100W  3.9 GHz / 3.6 GHz  256  760 MHz 
A8-5500  HD 7560D  65W  3.7 GHz /  3.2 GHz  256  760 MHz 
A6-5400K  HD 7540D  65W  3.8 GHz /  3.6 GHz  192  760 MHz 
 A4-5300     HD 7480D  65W     2    3.6 GHz /  3.4 GHz        128  724 MHz