HOME サイトマップ  
大学研究機関等パワーユーザの方々を対象に
主に科学計算用 Custom-Made PCを製作販売しております

ライブラリによるDGEMMの性能例

DGEMM性能グラフ

上のグラフはDGEMMを単純にC言語で実装した場合と、BLAS、ATLAS、Intel MKLの各種ライブラリを使用して計算した場合の性能です.
CPUはIntel core i7 960(3.2GHz, 4core)で、このCPUの倍精度実数に関する理論演算性能は51.2GFlopsです.コンパイラとして、ATLASのビルドとアプリケーションの作成ではGNU 4.4.5、他のケースでは全てインテルコンパイラ12.0.3を使用しています.
グラフの”C実装 1core”は、C言語で単純にDGEMMの計算を実装し、インテルコンパイラで最適化オプション-O3をつけてコンパイルした場合の結果です.ライブラリを使用した場合と比べてかなり低い性能であり、最適化を考慮したプログラミングを行うことの重要性がわかります.”BLAS 1core”はBLASライブラリを使用した場合です.Cで単純に実装した場合よりは良い性能ですが、仮に理論演算性能を単純に1coreに換算した場合の理論性能を考えると12.8GFlopsであり、20%程度しか性能が得られていないことになります.

一方、最適化されたライブラリであるIntel MKL、ATLASは良い性能となっています.特にIntel MKLは理論性能の約90%と高い性能であり、既存コードでIntel MKLで置換可能な部分は、ライブラリの呼び出しに置き換えることで性能が上がることも有り得ます.ATLASでは理論性能の約70%近くであり、Intel MKLほどの性能は出ていませんが、商用のインテルコンパイラを使用せずにGNUコンパイラを使用することができるというメリットがあります.


(C)Copyright OTB Transnational Inc. 2017 All rights reserved.