AMD製品に最適化されたC/C++コンパイラAOCCのベンチマークが公開、最適化は微妙か

AMD製品に最適化されたC/C++コンパイラAOCC

先週AMDのC/C++コンパイラAOCC 1.0が発表されました。Intelの開発し日本ではXLSoftが販売するC/C++ Fortranの商用コンパイラと対応する製品と言えます。

Intelの商用コンパイラに含まれるIntel MKL(Math Kernel Library)という数学ライブラリは、Intelプロセッサに実装されている最新機能をフル活用します。プロセッサに実装した性能向上の仕組みが、実際のアプリケーションに対して有効なものだと認めさせるという役割を持つとも言えます。最近ではFacebook社の開発するディープラーニング・フレームワーク「Caffe2」にて、38.6倍のスループットを達成した例もあります。

以上のことからプロセッサメーカーが独自のコンパイラを開発することは重要な意味を持つと言えます。AMDの独自コンパイラの最新の動きがAOCCです。

ベンチマークが公開、最適化は今ひとつか

PhoronixによってAOCC、GCC 6.3/7.0/8/0、Clang 4.0/5.0それぞれでコンパイルした複数のベンチマーク・ソフトについてのベンチマーク結果が公開されました。環境は以下の通りです。

  • ハードウエア
    • CPU: AMD Ryzen 7 1700 Eight-Core @ 3.00GHz
    • MB: MSI B350 TOMAHAWK (MS-7A34) v1.0
    • メモリ容量 16384MB
    • ストレージ: 120GB Samsung SSD 840

  • ソフトウエア
    • OS: Ubuntu 17.04
    • カーネル: 4.11.0-999-generic (x86_64) 20170420
    • デスクトップ: Unity 7.5.0
    • X: X Server 1.19.3
    • ファイルシステム: ext4
    • 解像度: 1920×1080

  • 比較用コンパイラ
    • Clang 4.0.0
    • GCC 6.3.0 20170406
    • Clang 4.0.0-1ubuntu1
    • Clang 5.0.0-svn303308-1~exp1
    • GCC 7.1.0
    • GCC 8.0.0 20170514

オプション

  • AMD AOCC 1.0: Optimized build with assertions; Default target: x86_64-unknown-linux-gnu; Host CPU: znver1
  • GCC 6.3.0: –build=x86_64-linux-gnu –disable-browser-plugin –disable-vtable-verify –disable-werror –enable-checking=release –enable-clocale=gnu –enable-default-pie –enable-gnu-unique-object –enable-gtk-cairo –enable-java-awt=gtk –enable-java-home –enable-languages=c,ada,c++,java,go,d,fortran,objc,obj-c++ –enable-libmpx –enable-libstdcxx-debug –enable-libstdcxx-time=yes –enable-multiarch –enable-multilib –enable-nls –enable-objc-gc=auto –enable-plugin –enable-shared –enable-threads=posix –host=x86_64-linux-gnu –program-prefix=x86_64-linux-gnu- –target=x86_64-linux-gnu –with-abi=m64 –with-arch-32=i686 –with-arch-directory=amd64 –with-default-libstdcxx-abi=new –with-multilib-list=m32,m64,mx32 –with-target-system-zlib –with-tune=generic -v
  • GCC 7.1.0: –disable-multilib –enable-checking=release –enable-languages=c,c++
  • GCC 8.0.0 20170514: –disable-multilib –enable-checking=release –enable-languages=c,c++
  • Scaling Governor: acpi-cpufreq ondeman

計27のベンチマークが掲載されていますが、そのうちAOCCのスコアが最も高かったものは以下の5つ、2位以上のものは9つに留まりました。AOCC 1.0の性能は今のところ微妙なようです。

  • 一位
    • SciMark: Composite
    • SciMark: Dense LU Matrix Factorization
    • 姫野ベンチ
    • LAME MP3 Encoding v3.99.3
    • PostgreSQL pgbench v9.4.3
  • 二位
    • TSCP v1.81
    • GraphicsMagick: Local Adaptive Thresholding
    • Stockfish v2014-11-26
    • Bullet Physics Engine v2.8.1

今後に期待か

AOCCの現在の性能は微妙だと言えますが、AMDがIntelと勝負出来る製品を作り続け、その中で独自の機能を搭載するなどの戦略を取る際重要な役割を担うと考えられます。今後注目すべきものであることは間違いないでしょう。

関連記事

Facebookがオープンソースのディープラーニング・プラットフォームCaffe2をアナウンス

ROCm(Radeon Open Compute)の最新版がリリース、バージョン1.5に

ソース

http://www.phoronix.com/scan.php?page=article&item=amd-ryzen-aocc

Add a Comment

メールアドレスの入力は任意です。(公開されることはありません)