PowerPoint Presentation

Similar documents
PowerPoint Presentation

Product Brief 高速なコードを素早く開発 インテル Parallel Studio XE 2017 インテル ソフトウェア開発ツール 概要 高速なコード : 現在および次世代のプロセッサーでスケーリングする優れたアプリケーション パフォーマンスを実現します 迅速に開発 : 高速かつ安定し

インテル® Parallel Studio XE 2013 Linux* 版インストール・ガイドおよびリリースノート

インテル® Parallel Studio XE 2013 Windows* 版インストール・ガイドおよびリリースノート

インテル® Parallel Studio XE 2015 Composer Edition for Linux* インストール・ガイドおよびリリースノート

Click to edit title

インテル® Fortran Studio XE 2011 SP1 Windows* 版インストール・ガイドおよびリリースノート

Click to edit title

PowerPoint Presentation

インテル® Parallel Studio XE 2019 Composer Edition for Fortran Windows : インストール・ガイド

Intel_ParallelStudioXE2013_ClusterStudioXE2013_Introduction.pptx

インテル® VTune™ Amplifier XE を使用したストレージ向けの パフォーマンス最適化

インテル® Parallel Studio XE 2019 Composer Edition for Fortran Windows 日本語版 : インストール・ガイド

Mission Statement

議題 プロセッサーの動向とコード モダナイゼーション インテル アドバンスト ベクトル エクステンション 512 ( インテル AVX-512) 命令と演算性能 ベクトル化を支援するインテル Advisor ループの性能を可視化するルーフライン表示 姫野ベンチマークを用いたインテル Xeon Phi

CPU Levels in the memory hierarchy Level 1 Level 2... Increasing distance from the CPU in access time Level n Size of the memory at each level 1: 2.2

目次 1 はじめに 製品に含まれるコンポーネント 動作環境... 4 オペレーティング システム... 4 Microsoft Visual Studio* 製品 製品のダウンロード 製品版をインストールする場合 評価版を

(速報) Xeon E 系モデル 新プロセッサ性能について

Microsoft* Windows* 10 における新しい命令セットの利用

インテル® Xeon Phi™ プロセッサー上で MPI for Python* (mpi4py) を使用する

スレッド化されていないアプリケーションでも大幅なパフォーマンス向上を容易に実現

インテル C++ および Fortran コンパイラー for Linux*/OS X*/Windows

Intel Software Presentation Template

Microsoft PowerPoint - Intel Parallel Studio XE 2019 for Live

内容 インテル Advisor ベクトル化アドバイザー入門ガイド Version インテル Advisor の利用 ワークフロー... 3 STEP1. 必要条件の設定... 4 STEP2. インテル Advisor の起動... 5 STEP3. プロジェクトの作成

インテル Parallel Studio XE 2017 Composer Edition for Fortran Windows* インストール ガイド Rev (2017/06/08) エクセルソフト株式会社

Parallel Studio XE Parallel Studio XE hotspot ( )

ベース0516.indd

Microsoft Word - HOKUSAI_system_overview_ja.docx

インテル(R) Visual Fortran Composer XE

appli_HPhi_install

VXPRO R1400® ご提案資料

Microsoft PowerPoint Quality-sama_Seminar.pptx

高速なコードを素早く開発 インテル Parallel Studio XE 設計 ビルド 検証 チューニング C++ C Fortran Python* Java* 標準規格に基づく並列モデル : OpenMP* MPI インテル TBB バージョン 2017 の主な機能 インテル Distribut

高速なコードを 素早く開発 インテル Parallel Studio XE 2017 最適化に関する注意事項 2016 Intel Corporation. 無断での引用 転載を禁じます * その他の社名 製品名などは 一般に各社の表示 商標または登録商標です パフォーマンスを最大限に引き出そう

Slides: TimeGraph: GPU Scheduling for Real-Time Multi-Tasking Environments

バトルカードでゲーマーやエンスージアストへの販売促進

Jackson Marusarz 開発製品部門

高速なコードを 迅速に開発 インテル Parallel Studio XE 2016 最適化に関する注意事項 2015 Intel Corporation. 無断での引用 転載を禁じます * その他の社名 製品名などは 一般に各社の表示 商標または登録商標です パフォーマンスを最大限に引き出そう

インテル(R) Visual Fortran コンパイラ 10.0

untitled

修士論文

Microsoft PowerPoint - handai.pptx

AI 人工知能 高度なプログラミングをすることなく 人間の心理と関連した認識機能を実行するために 経験を基にした機械の学習する能力 人工知能 マシンラーニング長期間にわたってより多くのデータを使用することにより 性能が向上するアルゴリズム ディープラーニング多層ニューラル ネットワークが膨大な量のデ

Intel® Compilers Professional Editions

2.1 インテル マイクロアーキテクチャー Haswell インテル マイクロアーキテクチャー Haswell は インテル マイクロアーキテクチャー Sandy Bridge とインテル マイクロアーキテクチャー Ivy Bridge の成功を受けて開発された この新しいマイクロアーキテクチャーの

Hundreds of Thousands of Customers in 190 Countries

for (int x = 0; x < X_MAX; x++) { /* これらの 3 つの行は外部ループの自己データと * 合計データの両方にカウントされます */ bar[x * 2] = x * ; bar[(x * 2) - 1] = (x - 1.0) *

Microsoft PowerPoint - 1_コンパイラ入門セミナー.ppt

Tutorial-GettingStarted

目次 1 はじめに 製品コンポーネント 動作環境 インストールを行う前に 製品版と評価版 製品のインストール手順 製品の登録 製品のダウンロード ライセンスファイルの取得

インテル(R) C++ Composer XE 2011 Windows版 入門ガイド

untitled

Microsoft Word - quick_start_guide_16 1_ja.docx

2D/3D CAD データ管理導入手法実践セミナー Autodesk Vault 最新バージョン情報 Presenter Name 2013 年 4 月 2013 Autodesk

Presentation title

PowerPoint Presentation

TOOLS for UR44 Release Notes for Windows

Zinstall WinWin 日本語ユーザーズガイド

スライド 1

65pt Intel Clear PRO Presentation Title

ムーアの法則 : インテルでは順調に存続中 65nm 2005 製造中 45nm nm nm 2011 * 開発中 15nm 2013 * リサーチ 11nm 2015 * 8nm 2017 * インテルの革新的技術を順次適用予定 2 インテル製品は 予告なく

インテル® Parallel Studio XE 2017 Composer Edition for Fortran Windows - インストール・ガイド -

本文ALL.indd

Microsoft Word - IVF15.0.1J_Install.doc

PowerPoint プレゼンテーション

1重谷.PDF

1 つのツールを実行するだけで違いが出るのでしょうか? はい 多くの場合 複雑なバグを発見して アプリケーションの安定性を向上させることができます このガイドでは インテル Inspector XE 解析ツールを使用して コードの問題を排除する方法を説明します これにより コードの信頼性が向上し 開

テクノロジーのビッグトレンド 180 nm nm nm nm nm On 2007 Track 32 nm には 150 億台の端末がネットワーク接続 * * "Gantz, John. "The Embedded

システム imac 21.5 インチディスプレイ 3.6GHz i5 Dual core / HT 2.8GHz i7 Quad core / HT ATI Radeon 4850 ATI Radeon HD はいいいえいいえはいいいえ ATI はいいいえ

IntelR Compilers Professional Editions

目次 1 はじめに 本文書の概要 PVF ソフトウェアと VISUAL STUDIO PVF ソフトウェアの種類 MICROSOFT VISUAL STUDIO の日本語化について VISUAL STUDIO

$ cmake --version $ make --version $ gcc --version 環境が無いあるいはバージョンが古い場合は yum などを用いて導入 最新化を行う 4. 圧縮ファイルを解凍する $ tar xzvf gromacs tar.gz 5. cmake を用

インテル® VTune™ Amplifier : Windows 環境向けスタートガイド

MATLAB® における並列・分散コンピューティング ~ Parallel Computing Toolbox™ & MATLAB Distributed Computing Server™ ~

インテル(R) Visual Fortran Composer XE 2013 Windows版 入門ガイド

Introduction to OpenMP* 4.0 for SIMD and Affinity Features with Intel® Xeon® Processors and Intel® Xeon Phi™ Coprocessors

1

ワークステーション推奨スペック Avid Avid Nitris Mojo SDI Fibre 及び Adrenaline MC ソフトウェア 3.5 以降のバージョンが必要です Dual 2.26 GHz Quad Core Intel 構成のに関しては Configuration Guideli

DPD Software Development Products Overview

インテル MKL を使用した小行列乗算の高速化 インテル MKL チーム

Introducing Intel® Parallel Studio XE 2015

インテル® キャッシュ・アクセラレーション・ソフトウェア (インテル® CAS) Linux* 版 v2.8 (GA)

PowerPoint プレゼンテーション

Microsoft PowerPoint - sales2.ppt

Introduction Purpose This training course describes the configuration and session features of the High-performance Embedded Workshop (HEW), a key tool

インテル Advisor Python* API を使用したパ フォーマンス向上の考察 この記事は Tech.Decoded に公開されている Gaining Performance Insights Using the Intel Advisor Python* API の日本語参考訳です コード

hotspot の特定と最適化

Veritas System Recovery 16 Management Solution Readme

チュートリアル: インテル® MPI ライブラリー向け MPI Tuner (Windows*)

Microsoft Word ●IntelクアッドコアCPUでのベンチマーク_吉岡_ _更新__ doc


基本操作ガイド

ストリーミング SIMD 拡張命令2 (SSE2) を使用した SAXPY/DAXPY




基本操作ガイド

HP Workstation 総合カタログ

システムソリューションのご紹介

Transcription:

インテル Xeon Phi プロセッサー ( 開発コード名 : Knights Landing) とインテル Distribution for Python* による高速化 エクセルソフト株式会社ソリューション事業部マネージャー黒澤一平

言語と環境について 対応言語 環境プロセスインテル ソフトウェア開発製品機能 C C++ Fortran 言語 コンパイル / リンク インテル Parallel Studio XE 全エディションに含まれるインテル C++ Fortran コンパイラー 最適化 性能解析インテル VTune Amplifier XE パフォーマンス問題解析 ベクトル化 並列化インテル Advisor 高速化アドバイス提供 MPI コンパイル / リンク インテル Parallel Studio XE 全エディションに含まれる インテル C++ Fortran コンパイラー + インテル MPI ライブラリー 最適化 性能解析インテル Trace Analyzer & Collector MPI パフォーマンス問題解析 ベクトル化 並列化インテル Advisor 高速化アドバイス提供 Python* 実行環境 インテル Distribution for Python* + インテル MKL + インテル コンパイラー (Cython) 最適化された Python* 実行環境 性能解析インテル VTune Amplifier XE パフォーマンス問題解析 Java* 性能解析インテル VTune Amplifier XE パフォーマンス問題解析 Hadoop*/Spark* 実行環境 インテル DAAL マシン / ディープラーニング用の 最適化された関数 Caffe 実行環境インテル MKL 最適化された関数 2

考慮するべき並列性 ベクトル化 コアの命令セットを利用 1 コアごとの性能向上 複数のデータ要素を同時に処理 (SIMD) スレッド並列化 複数コアを利用 1 プロセッサーの性能向上 複数タスクの同時実行 MPI 並列化 複数マシンを利用 複数のマシンを使用 複数プロセスの同時実行 3

1 秒あたりの 2 項オプション SP ( 値が大きいほうが良い ) ベクトル化とマルチスレッド化 最適化の効果マルチスレッド化 + ベクトル化はより良い効果が得られる ベクトル化とスレッド化 179 倍 2007 インテル Xeon プロセッサー X5472 ( 開発コード名 Harpertown) 2009 インテル Xeon プロセッサー X5570 ( 開発コード名 Nehalem) 2010 インテル Xeon プロセッサー X5680 ( 開発コード名 Westmere) 2012 インテル Xeon プロセッサー E5-2600 製品ファミリー ( 開発コード名 Sandy Bridge) 2013 インテル Xeon プロセッサー E5-2600 v2 製品ファミリー ( 開発コード名 Ivy Bridge) 2014 インテル Xeon プロセッサー E5-2600 v3 製品ファミリー ( 開発コード名 Haswell) スレッド化ベクトル化シリアル 性能に関するテストに使用されるソフトウェアとワークロードは 性能がインテル マイクロプロセッサー用に最適化されていることがあります SYSmark* や MobileMark* などの性能テストは 特定のコンピューター システム コンポーネント ソフトウェア 操作 機能に基づいて行ったものです 結果はこれらの要因によって異なります 製品の購入を検討される場合は 他の製品と組み合わせた場合の本製品の性能など ほかの情報や性能テストも参考にして パフォーマンスを総合的に評価することをお勧めします 詳細については http://www.intel.com/performance/ ( 英語 ) を参照してください 4

Common Instruction Set インテル AVX-512 対応コンパイラーオプションインテル Xeon Phi プロセッサー ( 開発コード名 : Knights Landing 以下 KNL ) と将来のインテル Xeon プロセッサーとの違い MPX,SHA, コンパイラー オプション ターゲット AVX-512VL -xmic-avx512 KNL のみ AVX-512PR AVX- 512BW -xcore-avx512 -xcommon-avx512 将来のインテル Xeon プロセッサーのみ KNL および将来のインテル Xeon プロセッサーのみ AVX2 AVX-512ER AVX- 512CD AVX-512F AVX2* AVX- 512DQ AVX-512CD AVX-512F AVX2 開発コード名 NHM: Nehalem SNB: Sandy Bridge HSW: Haswell KNL: Knights Landing SSE: インテル ストリーミング SIMD 拡張 ( インテル SSE) AVX: インテル アドバンスト ベクトル エクステンション ( インテル AVX) AVX2: インテル アドバンスト ベクトル エクステンション 2 ( インテル AVX2) AVX-512: インテル アドバンスト ベクトル エクステンション 512 ( インテル AVX-512) SSE* NHM AVX SSE* SNB AVX SSE* HSW AVX SSE* KNL AVX SSE* Future Intel Xeon Processor 5

0 インテル AVX-512 インテル AVX-512 インテル AVX2 インテル SSE YMM0-15 32 bytes XMM0-15 16- bytes Vector Registers IA32 (32bit) Intel64 (64bit) 15 SSE (1999) 8 x 128bit 16 x 128bit 31 ZMM0-31 64 bytes AVX and AVX-2 (2011 / 2013) AVX-512 (2014 KNL) 8 x 256bit 16 x 256bit 8 x 512bit 32 x 512bit 6

ベクトル化におけるインテル コンパイラーの役割 ベクトル化可能な処理を自動的にベクトル化する新しい SIMD 命令セットへの対応の労力を最小限にする 入力 : ソースコード 汎用的なプログラミング方法 特定のアーキテクチャーへの依存度を小さくする プログラマーの意図を適切に ( かつ容易に ) コンパイラーへ伝える ベクトル化の判断 自動的に解釈 ベクトル化のヒントを解釈 SIMD 対応関数 SIMD プラグマ / ディレクティブ 最適化とコード生成インテル SSE ~ インテル AVX-512 出力 : バイナリー 7

インテル Distribution for Python* 8

インテル ソフトウェア開発製品の Python* 開発環境 インテル Distribution for Python* NumPy SciPy など インテル MKL Cython インテル コンパイラー Hadoop* インテル DAAL Spark* 性能解析 インテル VTune Amplifier XE 9

インテル Distribution for Python* 内のインテル MKL # Python* コード例 C = numpy.dot(a, B) Python* インテル Distribution for Python* Python* 実行時 numpy から呼ばれる ATLAS などの BLAS 関数 インテル Distribution for Python* 実行時 インテル MKL の BLAS 関数 対応関数が使用されると インテル Distribution for Python* は自動的にインテル MKL を呼び出します ソースコードを変更することなく より高速な演算を行うことができます 10

Performance (GFlops) Performance (GFlops) インテル MKL はインテル アーキテクチャーの性能を最大化 200 DGEMM Performance Boost by using Intel MKL vs. ATLAS* Intel Core Processor i7-4770k 1500 Intel Xeon Processor E5-2699 v3 150 1000 100 50 0 64 80 96 104 112 120 128 144 160 176 192 200 208 224 240 256 384 Matrix size (M = 10000, N = 6000, K = 64,80,96,, 384) Intel MKL - 1 thread Intel MKL - 2 threads Intel MKL - 4 threads ATLAS - 1 thread ATLAS - 2 threads ATLAS - 4 threads 500 0 256 300 450 800 1000 1500 2000 3000 4000 5000 6000 7000 8000 Matrix size (M = N) Intel MKL - 1 thread Intel MKL - 18 threads Intel MKL - 36 threads ATLAS - 1 thread ATLAS - 18 threads ATLAS - 36 threads Configuration Info - Versions: Intel Math Kernel Library (Intel MKL) 11.3, ATLAS* 3.10.2; Hardware: Intel Xeon Processor E5-2699v3, 2 Eighteen-core CPUs (45MB LLC, 2.3GHz), 64GB of RAM; Intel Core Processor i7-4770k, Quad-core CPU (8MB LLC, 3.5GHz), 8GB of RAM; Operating System: RHEL 6.4 GA x86_64; Software and workloads used in performance tests may have been optimized for performance only on Intel microprocessors. Performance tests, such as SYSmark and MobileMark, are measured using specific computer systems, components, software, operations and functions. Any change to any of those factors may cause the results to vary. You should consult other information and performance tests to assist you in fully evaluating your contemplated purchases, including the performance of that product when combined with other products. * Other brands and names are the property of their respective owners. Benchmark Source: Intel Corporation Optimization Notice: Intel s compilers may or may not optimize to the same degree for non-intel microprocessors for optimizations that are not unique to Intel microprocessors. These optimizations include SSE2, SSE3, and SSSE3 instruction sets and other optimizations. Intel does not guarantee the availability, functionality, or effectiveness of any optimization on microprocessors not manufactured by Intel. Microprocessor-dependent optimizations in this product are intended for use with Intel microprocessors. Certain optimizations not specific to Intel microarchitecture are reserved for Intel microprocessors. Please refer to the applicable product User and Reference Guides for more information regarding the specific instruction sets covered by this notice. Notice revision #20110804. 11

インテル Distribution for Python* との比較 DBN-Kyoto (https://github.com/pcs-theano/benchmarks) $ time./run.sh < 略 > 2000x3 10... loading data Load Data set: dataset1.pkl Data set permutation Data purge invariance Data scaling Data shape after preprocessing: (248195, 1864)... building the model... getting the pretraining functions... pre-training the model The pretraining code for file DBN_benchmark.py ran for 0.00m... getting the finetuning functions... finetuning the model epoch 1, minibatch 19855/19855, test error 49.455974 % Stat Layers:3 LayerSize:2000 BatchSize:10 PreTrainingLayer:3 Time:4286.32 epoch 2, minibatch 19855/19855, test error 50.544026 % Stat Layers:3 LayerSize:2000 BatchSize:10 PreTrainingLayer:4 Time:4151.65 epoch 3, minibatch 19855/19855, test error 50.544026 % Stat Layers:3 LayerSize:2000 BatchSize:10 PreTrainingLayer:5 Time:4200.77 epoch 4, minibatch 19855/19855, test error 48.531130 % Stat Layers:3 LayerSize:2000 BatchSize:10 PreTrainingLayer:6 Time:4298.54 epoch 5, minibatch 19855/19855, test error 37.082410 % Stat Layers:3 LayerSize:2000 BatchSize:10 PreTrainingLayer:7 Time:4303.88 epoch 6, minibatch 19855/19855, test error 29.748136 % Stat Layers:3 LayerSize:2000 BatchSize:10 PreTrainingLayer:8 Time:4241.45 epoch 7, minibatch 19855/19855, test error 24.045940 % Stat Layers:3 LayerSize:2000 BatchSize:10 PreTrainingLayer:9 Time:4319.48 epoch 8, minibatch 19855/19855, test error 23.032440 % Stat Layers:3 LayerSize:2000 BatchSize:10 PreTrainingLayer:10 Time:4280.90 epoch 9, minibatch 19855/19855, test error 22.593190 % Stat Layers:3 LayerSize:2000 BatchSize:10 PreTrainingLayer:11 Time:4274.51 epoch 10, minibatch 19855/19855, test error 22.143865 % Stat Layers:3 LayerSize:2000 BatchSize:10 PreTrainingLayer:12 Time:4319.48 Optimization complete with best test performance 22.143865 % obtained at iteration 198550 The fine tuning code for file DBN_benchmark.py ran for 1408.30m 通常の Python* real 712m21.525s user 1230m50.721s sys 178m34.818s 12

インテル Distribution for Python* との比較 DBN-Kyoto (https://github.com/pcs-theano/benchmarks) $ time./run.sh 2000x3 10... loading data Load Data set: dataset1.pkl Data set permutation Data purge invariance Data scaling Data shape after preprocessing: (248195, 1864)... building the model... getting the pretraining functions... pre-training the model The pretraining code for file DBN_benchmark.py ran for 0.00m... getting the finetuning functions... finetuning the model epoch 1, minibatch 19855/19855, test error 49.455974 % Stat Layers:3 LayerSize:2000 BatchSize:10 PreTrainingLayer:3 Time:2000.64 epoch 2, minibatch 19855/19855, test error 50.544026 % Stat Layers:3 LayerSize:2000 BatchSize:10 PreTrainingLayer:4 Time:1999.05 epoch 3, minibatch 19855/19855, test error 50.544026 % Stat Layers:3 LayerSize:2000 BatchSize:10 PreTrainingLayer:5 Time:2005.97 epoch 4, minibatch 19855/19855, test error 48.531130 % Stat Layers:3 LayerSize:2000 BatchSize:10 PreTrainingLayer:6 Time:2006.81 epoch 5, minibatch 19855/19855, test error 37.082410 % Stat Layers:3 LayerSize:2000 BatchSize:10 PreTrainingLayer:7 Time:2005.94 epoch 6, minibatch 19855/19855, test error 29.748136 % Stat Layers:3 LayerSize:2000 BatchSize:10 PreTrainingLayer:8 Time:2008.75 epoch 7, minibatch 19855/19855, test error 24.045940 % Stat Layers:3 LayerSize:2000 BatchSize:10 PreTrainingLayer:9 Time:2007.97 epoch 8, minibatch 19855/19855, test error 23.036470 % Stat Layers:3 LayerSize:2000 BatchSize:10 PreTrainingLayer:10 Time:2007.93 epoch 9, minibatch 19855/19855, test error 22.615354 % Stat Layers:3 LayerSize:2000 BatchSize:10 PreTrainingLayer:11 Time:2006.12 epoch 10, minibatch 19855/19855, test error 22.121701 % Stat Layers:3 LayerSize:2000 BatchSize:10 PreTrainingLayer:12 Time:2014.01 Optimization complete with best test performance 22.121701 % obtained at iteration 198550 The fine tuning code for file DBN_benchmark.py ran for 4014.05m real 335m22.928s user 3821m14.855s sys 193m43.648s インテル Distribution for Python* さらに Cython + インテル コンパイラーを使用することでさらなる高速化 インテル Xeon プロセッサー E5-2620 v2 製品ファミリー 2 CPU 32GB メモリー CentOS* 7.2 インテル Distribution for Python* 2017 Beta 13

インテル MKL (Math Kernel Library) インテル DAAL (Data Analytics Acceleration Library) 14

ディープ ニューラル ネットワーク (DNN) 人間の脳細胞を模倣した学習システム 深い階層の処理層において異なる演算を行う 従来の方式 従来のニューラル ネットワークでは判断基準を教える必要がある例 : 猫の画像を認識 人間が猫の特徴を教える DNN DNN ではコンピューター自身が判断基準を学習することができる例 : 猫の画像を認識 自動的に猫の特徴を学習 15

Caffe にインテル MKL の DNN を用いる Caffe: ディープ ラーニング フレームワーク Caffe のコンフィグファイルでインテル MKL を設定することで インテル MKL の数学関数を利用することができるようになります USE_MKL2017_AS_DEFAULT_ENGINE := 1 出典 : http://caffe.berkeleyvision.org/ 16

インテル MKL の DNN 関数による Caffe の高速化 2 つの処理を高速化 ベクトル化と並列化により 学習スピードの最適化 特徴の分類スピードの最適化 インテル AVX2 以上の命令セットを有するプロセッサーをサポート ( 開発コード名 Haswell 以降 ) 17

インテル DAAL データ分析で行われるすべてのステージをカバー データソース ビジネス科学工学 Web/SNS すべてのステージに対して最適化されたアルゴリズムを提供 18

インテル DAAL の性能 さまざまなインテル プロセッサー向けに最適化済み 次世代プロセッサーへの移行を簡略化 対応プロセッサー - インテル Atom プロセッサー - インテル Core i3/i5/i7 プロセッサー ファミリー - インテル Xeon プロセッサー - インテル Xeon Phi プロセッサー ( 開発コード名 : Knights Landing) インテル DAAL の内部実装はインテル IPP とインテル MKL が提供する関数 19

インテル DAAL 対応言語と環境 Python* C++ Java* 言語に対応 Python* や Java* などのマネージドコード環境でも ネイティブコードの性能が得られます Python* C++ Java* ALGORITHMS ADVANCED DATA MINING MACHINE/DEEP LARNING SUMMARY STATISTICS インテル DAAL Spark Hadoop Cassandra Storm MPI Cluster インテル アーキテクチャーのプロセッサー 20

Speedup Computing Correlation Matrix Using Intel DAAL vs. KDB Computing correlation matrices using Intel DAAL with KDB data source 14 12 12X 10 8 6 7X 4 2 0 100K x 100 100K x 1000 Table size Configuration Info - Versions: Intel Data Analytics Acceleration Library 2017 Beta update 1, KDB+ version 3.3 (Parallel mode); Hardware: Intel Xeon Processor X5650, 2 Six-core CPUs (12MB LLC, 2.67GHz), 72GB of RAM; Operating System: RHEL 7.0 x86_64. Software and workloads used in performance tests may have been optimized for performance only on Intel microprocessors. Performance tests, such as SYSmark and MobileMark, are measured using specific computer systems, components, software, operations and functions. Any change to any of those factors may cause the results to vary. You should consult other information and performance tests to assist you in fully evaluating your contemplated purchases, including the performance of that product when combined with other products. * Other brands and names are the property of their respective owners. Benchmark Source: Intel Corporation Optimization Notice: Intel s compilers may or may not optimize to the same degree for non-intel microprocessors for optimizations that are not unique to Intel microprocessors. These optimizations include SSE2, SSE3, and SSSE3 instruction sets and other optimizations. Intel does not guarantee the availability, functionality, or effectiveness of any optimization on microprocessors not manufactured by Intel. Microprocessor-dependent optimizations in this product are intended for use with Intel microprocessors. Certain optimizations not specific to Intel microarchitecture are reserved for Intel microprocessors. Please refer to the applicable product User and Reference Guides for more information regarding the specific instruction sets covered by this notice. Notice revision #20110804. 21

Speedup Computing PCA Using Intel DAAL vs. Spark* MLLib PCA (correlation method) on an 8-node Hadoop* cluster based on Intel Xeon Processors E5-2697 v3 8 6 6X 6X 7X 7X 4X 4 2 0 1M x 200 1M x 400 1M x 600 1M x 800 1M x 1000 Table size Configuration Info - Versions: Intel Data Analytics Acceleration Library 2016, CDH v5.3.1, Apache Spark* v1.2.0; Hardware: Intel Xeon Processor E5-2699 v3, 2 Eighteen-core CPUs (45MB LLC, 2.3GHz), 128GB of RAM per node; Operating System: CentOS 6.6 x86_64. Software and workloads used in performance tests may have been optimized for performance only on Intel microprocessors. Performance tests, such as SYSmark and MobileMark, are measured using specific computer systems, components, software, operations and functions. Any change to any of those factors may cause the results to vary. You should consult other information and performance tests to assist you in fully evaluating your contemplated purchases, including the performance of that product when combined with other products. * Other brands and names are the property of their respective owners. Benchmark Source: Intel Corporation Optimization Notice: Intel s compilers may or may not optimize to the same degree for non-intel microprocessors for optimizations that are not unique to Intel microprocessors. These optimizations include SSE2, SSE3, and SSSE3 instruction sets and other optimizations. Intel does not guarantee the availability, functionality, or effectiveness of any optimization on microprocessors not manufactured by Intel. Microprocessor-dependent optimizations in this product are intended for use with Intel microprocessors. Certain optimizations not specific to Intel microarchitecture are reserved for Intel microprocessors. Please refer to the applicable product User and Reference Guides for more information regarding the specific instruction sets covered by this notice. Notice revision #20110804. 22

23

ソースコードの近代化 24

ネイティブコードについて KNL に向けた準備 作業対応ツール実施内容 コンパイル / リンクインテル コンパイラーインテル Xeon プロセッベクトル化インテル コンパイラーサーの場合と同じようにコンインテル Advisor パイル 実装 解析することができます マルチスレッド化 ベクトル / マルチスレッド性能解析 MPI 性能解析 インテル コンパイラーインテル Advisor インテル Advisor インテル VTune Amplifier XE インテル Trace Analyzer & Collector ただし 512 ビットのベクトル化と 高並列性を目指す必要があります インテル ソフトウェア開発製品は初心者でも上級者に近い最適化を行えるようなさまざまな補助機能を提供します 開発コード名 25

ソフトウェア開発者が考慮するべき並列性 ベクトル化 コアの命令セットを利用 1 コアごとの性能向上 複数のデータ要素を同時に処理 (SIMD) スレッド並列化 複数コアを利用 1 プロセッサーの性能向上 複数タスクの同時実行 MPI 並列化 複数マシンを利用 複数のマシンを使用 複数プロセスの同時実行 26

1 秒あたりの 2 項オプション SP ( 値が大きいほうが良い ) ベクトル化とマルチスレッド化 最適化の効果マルチスレッド化 + ベクトル化はより良い効果が得られる ベクトル化とスレッド化 179 倍 2007 インテル Xeon プロセッサー X5472 ( 開発コード名 Harpertown) 2009 インテル Xeon プロセッサー X5570 ( 開発コード名 Nehalem) 2010 インテル Xeon プロセッサー X5680 ( 開発コード名 Westmere) 2012 インテル Xeon プロセッサー E5-2600 製品ファミリー ( 開発コード名 Sandy Bridge) 2013 インテル Xeon プロセッサー E5-2600 v2 製品ファミリー ( 開発コード名 Ivy Bridge) 2014 インテル Xeon プロセッサー E5-2600 v3 製品ファミリー ( 開発コード名 Haswell) スレッド化ベクトル化シリアル 性能に関するテストに使用されるソフトウェアとワークロードは 性能がインテル マイクロプロセッサー用に最適化されていることがあります SYSmark* や MobileMark* などの性能テストは 特定のコンピューター システム コンポーネント ソフトウェア 操作 機能に基づいて行ったものです 結果はこれらの要因によって異なります 製品の購入を検討される場合は 他の製品と組み合わせた場合の本製品の性能など ほかの情報や性能テストも参考にして パフォーマンスを総合的に評価することをお勧めします 詳細については http://www.intel.com/performance/ ( 英語 ) を参照してください 27

メモリー帯域幅による制約 演算が並列化されると 帯域幅の利用率が高まる コアコアコアコア 処理自体の工夫も必要となる 処理 A 処理 B 処理 C メモリー上のデータ メモリー ループ (A, B, C) 例 : 複数処理のループをまとめて 処理間で再利用されるデータについてのメモリーアクセス回数を減らす 28

最適化例 インテル コンパイラー インテル VTune Amplifier XE インテル Advisor を用いて最適化を行います 依存関係の削除 メモリージャンプの削除 ベクトル化 マルチスレッド化 マイクロアーキテクチャー レベルの最適化 インテル ソフトウェア開発製品のアドバイス機能や解析結果を用いることで 初心者でも上級者のように 上級者はより早く最適化を行うことができるようになります 29

OpenMP* アドバイス機能 インテル VTune Amplifier XE の OpenMP* 解析機能を使用することで OpenMP* を用いたマルチスレッド化のパフォーマンス問題と 改善点を確認することができ 修正した場合のパフォーマンスの向上度合いが表示されます 30

HPC 向けの新しい解析タイプ HPC Performance Characterization Analysis は HPC 分野で有用な情報である GFLOPs や 関数 / ループごとの CPU 使用率や CPU 使用効率 メモリー / キャッシュに関する情報 1 サイクルあたりの FLOPs ベクトル化状況を確認することができます 31

インテル AVX-512 向けの最適化 インテル Xeon Phi プロセッサー ( 開発コード名 : Knights Landing) を始めに 今後多くのインテル AVX-512 命令セットをサポートするプロセッサーがリリースされていきます 今日 コードの近代化を行うことでインテル AVX-512 命令セットや多くのコアが搭載されたプロセッサー向けの 将来にも有効な最適化を行うことができます 必要な作業はベクトル化 + マルチスレッド化 32

高速なコードを素早く開発 : インテル Advisor 最新プロセッサーで性能を出すためにはベクトル化とマルチスレッド化が必須 ベクトル化でおきる問題 : インテル AVX-512 を使用したのに速くならない そもそもどこをベクトル化すれば良い? 最新プロセッサー用の組込み関数を使用する必要がある? コンパイラーのベクトル化レポートのどこを見れば良い? マルチスレッド化でおきる問題 : マルチスレッド化したけれど速くならない スレッド数を増やしたら性能劣化する マルチスレッド化に時間がかかってしまう これらの問題 疑問をインテル Advisor が解決 33

ベクトル化したコードの効率性をインテル Advisor で評価 34

インテル Advisor によるアドバイス機能 エイリアスによる依存関係の可能性がベクトル化を妨げている場合 インテル Advisor は修正案を提供します ここでは #pragma simd や #pragma ivdep の使用を提案されました 35

法務上の注意書きと最適化に関する注意事項 本資料の情報は 現状のまま提供され 本資料は 明示されているか否かにかかわらず また禁反言によるとよらずにかかわらず いかなる知的財産権のライセンスも許諾するものではありません 製品に付属の売買契約書 Intel's Terms and Conditions of Sale に規定されている場合を除き インテルはいかなる責任を負うものではなく またインテル製品の販売や使用に関する明示または黙示の保証 ( 特定目的への適合性 商品性に関する保証 第三者の特許権 著作権 その他 知的財産権の侵害への保証を含む ) をするものではありません 性能に関するテストに使用されるソフトウェアとワークロードは 性能がインテル マイクロプロセッサー用に最適化されていることがあります SYSmark* や MobileMark* などの性能テストは 特定のコンピューター システム コンポーネント ソフトウェア 操作 機能に基づいて行ったものです 結果はこれらの要因によって異なります 製品の購入を検討される場合は 他の製品と組み合わせた場合の本製品の性能など ほかの情報や性能テストも参考にして パフォーマンスを総合的に評価することをお勧めします 2016 Intel Corporation. 無断での引用 転載を禁じます Intel インテル Intel ロゴ Intel Core Intel Atom Xeon Intel Xeon Phi VTune は アメリカ合衆国および / またはその他の国における Intel Corporation の商標です * その他の社名 製品名などは 一般に各社の商標または登録商標です 最適化に関する注意事項 インテル コンパイラーでは インテル マイクロプロセッサーに限定されない最適化に関して 他社製マイクロプロセッサー用に同等の最適化を行えないことがあります これには インテル ストリーミング SIMD 拡張命令 2 インテル ストリーミング SIMD 拡張命令 3 インテル ストリーミング SIMD 拡張命令 3 補足命令などの最適化が該当します インテルは 他社製マイクロプロセッサーに関して いかなる最適化の利用 機能 または効果も保証いたしません 本製品のマイクロプロセッサー依存の最適化は インテル マイクロプロセッサーでの使用を前提としています インテル マイクロアーキテクチャーに限定されない最適化のなかにも インテル マイクロプロセッサー用のものがあります この注意事項で言及した命令セットの詳細については 該当する製品のユーザー リファレンス ガイドを参照してください 注意事項の改訂 #20110804 36

補足資料 : 2 項オプション SP のシステム構成 システム構成 最適化に関する注意事項インテル コンパイラーでは インテル マイクロプロセッサーに限定されない最適化に関して 他社製マイクロプロセッサー用に同等の最適化を行えないことがあります これには インテル ストリーミング SIMD 拡張命令 2 インテル ストリーミング SIMD 拡張命令 3 インテル ストリーミング SIMD 拡張命令 3 補足命令などの最適化が該当します インテルは 他社製マイクロプロセッサーに関して いかなる最適化の利用 機能 または効果も保証いたしません 本製品のマイクロプロセッサー依存の最適化は インテル マイクロプロセッサーでの使用を前提としています インテル マイクロアーキテクチャーに限定されない最適化のなかにも インテル マイクロプロセッサー用のものがあります この注意事項で言及した命令セットの詳細については 該当する製品のユーザー リファレンス ガイドを参照してください 注意事項の改訂 #20110804 インテル社内での測定値 スケーリング されていないコアクロックの コア / ソケット L1 データ L1 命令 L2 L3 H/W メモリーメモリープリフェッチ HT ターボ C コンパイラー プラットフォーム 周波数 ソケット 数 キャッシュキャッシュキャッシュキャッシュメモリー 周波数 アクセス 有効 有効 有効 ステート OS カーネル バージョン インテル Xeon Fedora* 3.11.10- プロセッサー 5472 3GHz 4 2 32K 32K 12MB なし 32GB 800MHz UMA Y N N 無効 20 301.fc20 icc 14.0.1 インテル Xeon プロセッサー X5570 2.90GHz 4 2 32K 32K 256K 8MB 48GB 1333MHz NUMA Y Y Y 無効 Fedora* 20 3.11.10-301.fc20 icc 14.0.1 インテル Xeon プロセッサー X5680 3.33GHz 6 2 32K 32K 256K 12MB 48MB 1333MHz NUMA Y Y Y 無効 Fedora* 20 3.11.10-301.fc20 icc 14.0.1 インテル Xeon プロセッサー E5-2690 製品ファミリー 2.90GHz 8 2 32K 32K 256K 20MB 64GB 1600MHz NUMA Y Y Y 無効 Fedora* 20 3.11.10-301.fc20 icc 14.0.1 インテル Xeon プロセッサー E5-2697 v2 製品ファミリー 2.70GHz 12 2 32K 32K 256K 30MB 64GB 1867MHz NUMA Y Y Y 無効 Fedora* 20 3.11.10-301.fc20 icc 14.0.1 開発コード名 Haswell 2.20GHz 14 2 32K 32K 256K 35MB 64GB 2133MHz NUMA Y Y Y 無効 Fedora* 20 3.13.5-202.fc20 icc 14.0.1 37