結構前から検索ワードに多数挙がっていたので書くべきだとは思ってました…
専門じゃないので間違ってる可能性があるのでご了承を.
記事執筆時点のバージョン : v3.4.1
ベンチマーク測定の代表格
iPhoneに限らずMacでも名の知れた便利マーク測定アプリですが, 僕を含め取り上げられるのは大抵総合スコアのみです.
実際には細かい内容に従ってスコアが出ているんですが, それを含めて簡単に紹介しましょう.
今回はプロセッサのベンチマークスコアを測定する「Run Processor Benchmark」についてです.
よく見るのはこの画面ですね.
実際にはこの下に詳細がずっと続いています.
System Infromation
まずはベンチマークスコアでなく対象デバイスの情報であるSystem Informationです.
Operating System
Operating System(OS)とはコンピュータプログラムの一つで, ユーザーが使用するアプリケーション(ソフトウェア)のためにハードウェアを提供するために存在します.
基本的に対象となる任意のソフトウェアはこのOSを介して利用することができます.
特にAppleが提供するOSの一つが「iOS」であり, 記事執筆時点での最新は iOS 9.3.2となっています(記事執筆時点では開発者向けに iOS 9.3.3βがリリースされたところです).
Model
デバイスのモデル名で, 一般に呼称されるものです.
Model ID
デバイスの「品番」のようなものです.
Modelと違い, Model IDでは例えばiPadのWi-fi+LTE, Wi-Fi, SIMフリーなどは区別され別呼称となります.
Motherboard
デバイスの電子装置を配置するための主要な回路基盤のことです.
意味合いとしては「基盤」の方だと思うんですが, 大抵はそこにはめ込むCPUの方が注目されます.
先日のサムスン製か台湾製か…みたいに.
Processor
デバイスにおける処理の中心的存在がプロセッサーです.
タップ操作などの情報を受け取って演算を行うのはここになります.
プロセッサーとCPUはおおよそ同じ意味ですが, 例えばグラフィック描画に特化したGPUなどの存在を考えると, プロセッサーはCPUよりも広い概念と言えます.
Processor ID
プロセッサーには各メーカーによって「様式(アーキテクチャ)」が決まっており, この名前がProcessor IDに相当します.
ARMというのはARMという半導体メーカーが決めたアーキテクチャの規格…というか設計のライセンスです.
L1 Instruction Cache
Cache(キャッシュ)というのは, ネットワークにおいて一つの領域ともう一つの領域の間で一部のデータを一時的に保存し, 再利用することで通信の遅延を極力抑えるための手段であり, その領域を指します.
ここではそのうちメモリに関するキャッシュで, CPUとメモリとの間の性能アクセスの範囲拡大に応じて多数構造となっているそうです.
どれを使うかは方式によって異なり, 各々に応じてCPUに近い順からL1, L2, L3とされています.
(少なくとも)iPhone 6の場合は L1 キャッシュは更に2つに分かれ
- 命令キャッシュ(Instruction Cache):仕様頻度の高いプログラムを一時記憶する領域
- データキャッシュ(Data Cache):仕様頻度の高いデータを一時記憶する領域
となっています.
画像の通りiPhone 6にL3は入っていないみたいですね.
L1 Data Cache
上記参照.
L2 Cache
同上.
L3 Cache
同上.
Memory
Random Access Memoryと呼ばれ, CPUで行うデータを記憶するための部分です.
対してストレージなどをInternal Memoryと呼びます.
メモリは電源が落ちるとデータは消去されます.
よく, メモリは「作業台」, ストレージ(またはHDD)は「倉庫」に例えられます.
「作業台」は作業を素早く行えますが, 「倉庫」に対して広くはありません.
一方「倉庫」は作業を行うためにデータを取ってきたり戻したりするのに時間はかかりますが, 「作業台」に対してスペースはたっぷりあります.
また基本的に「倉庫」で作業することはできません(例外はあります).
Integer
ここからがベンチマークスコアの詳細になります.
画像はSHA1という項目までになっていますが実際はもっと先まであります.
詳細ではシングルコア, マルチコアそれぞれについてスコアを表示しているため, いずれも2つずつになっています.
(以降は僕が誤解してる可能性があります, 悪しからず…)
AES
Advanced Encryption Standardの略で, セキュリティにおける暗号化規格です.
暗号化規格なので安全性や実装のしやすさ, 消費電力などの要素はもちろんのこと, ここでは「処理速度」を評価しています.
Twofish
こちらも暗号化規格の一つです.
先程のAESは世界から応募された暗号で選考されたもので, Twofishは最終選考に選ばれたものの惜しくも敗れたそうですが, 性能に関しては評価されているそうです.
こちらも処理速度がスコアとして評価されています.
SHA1
Secure Hash Algorithmの略で, 検索の高速化やデータ比較処理, データ改ざんの検証などに使われる関数, アルゴリズムです.
こちらは脆弱性の改訂や改良, 公募などによってナンバリングが入っており, SHA-0からSHA-3まであるようです.
こちらもスコアの評価は処理速度によります.
SHA2
上記参照
BZip2 Compress
BZip2とはデータ圧縮方式, またはフォーマットの一つです.
gzipやZIPの仲間で, これらよりも圧縮率が高いんだとか.
ただし処理速度が相対的にイマイチ.
こちらは圧縮する際の処理速度によるスコアです
BZip2 Decompress
こちらは上記の解凍側.
JPEG Compress
JPEGファイル, 例えばカメラで撮影した写真の圧縮速度によるスコアです.
JPEG Decompress
上記の解凍側.
PNG Compress
PNGファイル, 例えばスクリーンショットの圧縮速度によるスコアです.
PNG Decompress
上記の解凍側.
Sobel
画像の輪郭を検出するためのフィルタ処理の一つにSobelというオペレータがあるそうです.
その処理速度によるスコアです.
Lua
多分ですがブラジル産のスクリプト言語Luaのことでしょうかね?
その処理速度によるスコアと思われます.
Dijkstra
プログラミングへの関わりの深いグラフ理論の最短経路探索アルゴリズムです.
いかなる処理にしても最短経路で済めばそれに越したことはありません.
ここではその処理速度がスコアになっています.
Floating Point
浮動小数点演算の処理能力についてのようです.
BlackScholes
債権や証券, 株, ローンといったリスクを伴う資産, 商品の収益性を高める手法をデリバティブと呼びます(金融商品自体をデリバティと言ったりします).
蛇足ですが「どの銀行にお金を預ければ良いか」なんてことでもそう言えるので一応身近な考え方ではあります.
金融商品は様々な要因で価格が揺れ動きますが, それをある程度特徴づけるのがブラック-ショールズ方程式と呼ばれる偏微分方程式です.
ここでは単位時間当たりの, 期間の分割数(ノード(node)と言います)の処理の速度がスコアになっているようです.
Mandelbrot
マンデルブロ集合とはフラクタルの一種で, 然るべき定義を満たした複素数をガウス平面(複素数平面)にプロットしたものです.
ちょっとパラメータを変えるだけで多様に姿を変えるんですが, 上の画像が有名でしょう.
ここでは1秒あたりの浮動小数点演算の回数(flops)がスコアになっています.
今更ですがこういう微分方程式や集合の描画などの処理速度を以て, 指標としているんでしょうかね?
Sharpen Filter
画像のシャープをかける処理の速度をスコアにしているようです.
Blur Filter
ぼかしフィルターの処理速度がスコアになっているようです.
SGEMM
例えば行列 , スカラー に対して
を計算すること, 或いはその計算能力のことをGEMMと言います.
SGEMMは単精度(4バイト=32ビット), DGEMMは倍精度(8バイト=64ビット)になります.
DGEMM
上記参照.
SFFT
デジタル処理や画像処理など多くに使われているフーリエ変換に関するもので, それまで主流だった離散高速フーリエ変換アルゴリズム(FFT, Fast Fourier Transform)に, 無駄な処理をできるだけ減らすことを実現したSFFT(Sparse Fast Fourier Transform)というものだそうです.
記事を見てもさっぱりです...
DFFT
上記SFFTに絡むものだとはおもうんですが分かりませんでした…
Dは離散(discrete)のDかな?
N-Body
任意の数値(対象)同士を相互作用させるシステム, シミュレーション処理のようです.
自分も書いておいてさっぱり分かってません(汗)
ゲーム何かで複数のキャラクタの相互反応を与えるものでしょうかね?GPUに絡んでるようですし.
Ray Trace
波の伝播を追跡することで, 音や光のグラフィックを実現する計算手法だそうです.
ゲームは勿論, CGグラフィックスでの代表的な存在みたいですね.
Memory
ここからはメモリ周りの処理に関する項目のようです.
ここも画像より下に続いてます.
Stream Copy
送受信するデータのバッファのように, 連続して流れるようなデータ, 或いはデータを流れるものとみなすとき, そのデータをストリームと言うそうです.
そういったデータの格納先をそう呼ぶ場合があるようです.
その際, 優先順位(割り込みなど)で手元のストリームを別のストリームにコピーして処理したいときがあるんだとか.
ここではその処理の速度がスコアになっているようです.
Stream Scale
よく分かりませんね…
scaleは例えば「大きさ」なわけですが, 短期間(一定期間)での処理速度か何かでしょうかね?
Stream Triad
こちらも分かりませんでした.
triadは「3つ組」とか「三人組」といった意味ですね.
〆
難しい単語ばかりで専門でなければさっぱりですね^^;
そのためのスコアによる評価ですね, 大抵はそれでも分かったようで結局分かってないので総合スコアだけ見る事になるんですが^^;
(記事下の余白消すの忘れてました...)