性能分析とベンチマーク
出典: フリー百科事典『ウィキペディア(Wikipedia)』 (2018/01/30 13:41 UTC 版)
「CPU設計」の記事における「性能分析とベンチマーク」の解説
初期のコンピュータの時代は、加算に何マイクロ秒、乗算に何マイクロ秒、除算に何マイクロ秒、といったように、1命令を発行してから完了するまでの時間を性能の目安としていた。しかし、オペコードやオペランドをメモリから読み書きする時間やその待ち時間なども考慮されるべきであることから、各命令を毎秒何回というようにして評価されるようになり、これはMIPS値に代表される「毎秒何回、何かを実行できる」というタイプの指標の発祥とも言える。続いて、実際のプログラムで実行されている命令の種別の比率に応じて、その速度が合計(ミックス)されるべきだという発想から、何々ミックスという名前の指標が生まれた。最も有名なものはギブソンミックスであろう。現代でも各種試験などで用語問題に出されることがあるようだが、1972年に石田晴久が D. H. Gibson に問い合わせた結果を紹介した記事「ギブソン・ミックスの起源について」中に紹介されている提案者 Jack Clark Gibson の言に「今日,どういう理由か分らないが,すでに時代遅れと思われるこの方法」とある通り、1972年の時点で既に「時代遅れ」であった概念である。そして結局、何らかのプログラムを走らせて測定するのが最も良い指標なのではないかということで、ベンチマークプログラムを利用した計測が行われるようになった。 箴言として「信頼できるベンチマークが欲しいなら、あなたが実際に使いたいアプリケーションソフトウェアそのものを実行することだ」などと言われたり、ジャーゴンファイルのbenchmarkの項には“In the computer industry, there are three kinds of lies: lies, damn lies, and benchmarks.”などとあったりするように、各種のベンチマークプログラムは絶対的にあてにできるものではない。しかし、定量的な比較のためにはベンチマークプログラムしか方法がないのも確かであり、より良い(何を良いとするかという観点は主観的だが)あるいは、各種の目的に応じたベンチマークが提案されている。 以下にだいたい時代順で、主要なベンチマークの名前を挙げ、一部は解説を付ける。詳細は記事のあるものは各記事を参照のこと。 Whetstone(ウェットストーン、1972年) - 主に浮動小数点数計算を評価する。「湿った石」(wet stone)ではなく地名に由来する Dhrystone(ドライストーン、1984年) - 主に整数計算や文字列処理を評価する。ウェットストーンに対して「乾いた石」というダジャレだが、綴りに「h」が入るヒネりはウェットストーンの綴りから持ってきたもの。ベストセラーのミニコンピュータ VAX 11/780(通称「MIPS原器」)におけるこのベンチマークの値を基準とした、いわゆるVAX MIPS(DMIPS)は現代でもしばしば見る SPECシリーズ(1988年〜) 高性能計算(HPC)とベンチマークHPLとHPCG(HPLもHPCGも、倍精度浮動小数点演算を多用し、行列の乗算により大規模な連立一次方程式を解くコードによるものであり、計算科学(科学・技術・工学の各分野で必要な大規模計算)向けの良いベンチマークとなっている。HPLは密行列(配列)の計算が、HPCGでは粗行列の計算が重要であり、ドンガラ曰く「HPLとHPCGはブックエンドの片方ともう片方」)HPL(LINPACK) - LINPACK自体は線型代数数値演算ライブラリで、近年はLAPACKなどに取って代わられているが、HPC分野の標準ベンチマークとして、HPLが使われている(TOP500発足以来集計が続けられている) HPCG(en:HPCG benchmark) - 共役勾配法(conjugate gradient method)の計算によるベンチマーク Green500では計算性能を消費電力で割って、効率の値として算出している Graph500では、Traversed Edges Per Second(TEPS)という値を評価している HPC分野についてはHPCチャレンジベンチマークの記事も参照 EEMBC (Embedded Microprocessor Benchmark Consortium、en:EEMBC) の ConsumerMark 他に、以下のような評価の観点(一例)がある。 1秒当たりの命令実行数 - 多くの消費者は既存の多数あるソフトウェアをそのまま実行できるアーキテクチャを選ぶ傾向にある(通常、インテルのIA-32アーキテクチャ)。また、そのような大多数の人々はベンチマークについて知識を持たず、クロック周波数でCPUを選ぶ傾向がある。 FLOPS - 1秒当たりの浮動小数点演算回数。科学技術計算で重視される。 1ワット当たりの性能 - 並列コンピュータを構築する場合(例えば、Google)、消費電力のワット数当たりの性能値を重視する。これは、CPUに電力を供給するコストがCPU自体の価格を上回るためである。 また、並列コンピュータ構築に当たって、価格性能比を重視する場合もある。 リアルタイムシステムでは、最悪ケースの応答時間の保証が重要である。これはつまり、CPUの割り込みレイテンシが小さく、かつ予測可能であればよい(DSPなど)。 アセンブリ言語でプログラムを書く場合、命令セットが重視される。 携帯機器など消費電力を低く抑える必要がある場合は、性能よりも消費電力が重視される。 携帯機器や宇宙船のシステムでは、大きさや重さが重要となる。 近年、環境への影響が小さいこと(製造時、使用時、廃棄時)が重視されつつある(グリーンコンピューティング)。 これらの一部は共存できない。特にとにかく高速に動作することを目標として設計したCPUでは、「1ワット当たりの性能」や「1円当たりの性能」や「応答時間の保証」などは良くない(逆も同様)。
※この「性能分析とベンチマーク」の解説は、「CPU設計」の解説の一部です。
「性能分析とベンチマーク」を含む「CPU設計」の記事については、「CPU設計」の概要を参照ください。
- 性能分析とベンチマークのページへのリンク