47
© 2013, Intel Corporation. 無断での引用、転載を禁じます。*その他の社名、製品名などは、一般に各社の表示、商標または登録商標です。 IA 搭載の組込み機器向け ソフトウェア開発における最適化と並列化 - インテル ® アーキテクチャーと最新動向 - インテル株式会社 技術本部 ソフトウェア技術統括部 菅原 清文 QCon Tokyo 2013

IA 搭載の組込み機器向け ソフトウェア開発における最適化と並 …qcontokyo.com/tokyo-2013/data_2013/KiyoSugawara_QConTokyo2013.pdf · © 2013, Intel Corporation

  • Upload
    others

  • View
    0

  • Download
    0

Embed Size (px)

Citation preview

© 2013, Intel Corporation. 無断での引用、転載を禁じます。*その他の社名、製品名などは、一般に各社の表示、商標または登録商標です。

IA 搭載の組込み機器向け ソフトウェア開発における最適化と並列化 - インテル® アーキテクチャーと最新動向 -

インテル株式会社

技術本部 ソフトウェア技術統括部

菅原 清文

QCon Tokyo 2013

© 2013, Intel Corporation. 無断での引用、転載を禁じます。*その他の社名、製品名などは、一般に各社の表示、商標または登録商標です。

本日の内容

• マイクロプロセッサーのトレンド

− IA と組込み向け機器

• ソフトウェア開発の課題

• 組込み機器向け開発ツール

• インテルにおけるソフトウェアのあゆみ

2

© 2013, Intel Corporation. 無断での引用、転載を禁じます。*その他の社名、製品名などは、一般に各社の表示、商標または登録商標です。

みなさん、まだ覚えてますか ?

3

8031

8051

80186

8096

80196

80960

© 2013, Intel Corporation. 無断での引用、転載を禁じます。*その他の社名、製品名などは、一般に各社の表示、商標または登録商標です。

ストレージ ワイヤレス POS ルーター

セキュリティー IPTV/IMS MAG VoIP

ゲーム 産業向け PC 医療

IP カメラ ユーティリティー

交通

ホーム ストレージ

メディアフォン IVI

ホーム・ オートメーション

デジタル 信号

ロボット センサー

ポータブル 医療

産業 オートメーション

組込み

インテル® x86 アーキテクチャー 組込み分野での成長

PC/サーバー

低消費電力 低いコスト

より高度な実装

2015 年* までに接続されるデバイス

プリント・ イメージング

*出展:インテル

© 2013, Intel Corporation. 無断での引用、転載を禁じます。*その他の社名、製品名などは、一般に各社の表示、商標または登録商標です。

家電製品 モバイル・インターネット・デバイス

ネットブック/ ネットトップ

組込み

インテル® Atom™ プロセッサーの マーケットセグメント

インテル® Atom™ プロセッサーはインテル® アーキテクチャーを新たな分野へ広める

インテル® Atom™

プロセッサー Z 製品ファミリー

インテル® Atom™

プロセッサー N 製品ファミリー

インテル® Atom™

プロセッサー E 製品ファミリー

インテルl® Atom™

プロセッサー CE4100

インテル® Atom™

プロセッサー Z 製品ファミリー

インテル® Atom™

プロセッサー D 製品ファミリー

インテル® Atom™

プロセッサー D シリーズ

RTOS

Windows*

インテル® ソフトウェア開発ツールが利用可能

Linux*/Tizen*/

Android*

Linux* Linux*/Tizen* Linux*/Tizen*

5

© 2013, Intel Corporation. 無断での引用、転載を禁じます。*その他の社名、製品名などは、一般に各社の表示、商標または登録商標です。

インテル® Atom™ プロセッサー・ファミリー ロードマップ

DiamondVille†

45nm プロセス技術 32nm プロセス技術 22nm プロセス技術

2008 年ネットブック向けインテル® Atom™ プロセッサー

6

Pine Trail†

2009 年ネットブック向けインテル® Atom™ プロセッサー

Menlow† 2008 年タブレット PC、超小型 PC 向け インテル® Atom™ プロセッサー

Oak Trail†

2011 年タブレットPC 向けインテル® Atom™ プロセッサー

Clover Trail†

2012 年タブレット PC 向けインテル® Atom™ プロセッサー

Bay Trail†

タブレット PC 向け インテル® Atom™ プロセッサー

Cedar Trail†

2011 年ネットブック向けインテル® Atom™ プロセッサー

Moorestown†

2010 年スマートフォン 向けインテル® Atom™ プロセッサー

Medfield†

2012 年スマートフォン 向けインテル® Atom™ プロセッサー

Clover Trail+†

スマートフォン・タブレット向けインテル® Atom™ プロセッサー

Merrifield†

スマートフォン・タブレット向けインテル® Atom™ プロセッサー

Tunnel Creek†

2010 年組込み機器向けインテル® Atom™ プロセッサー

† 開発コード名

http://ark.intel.com/ja/ で製品仕様を検索できます

© 2013, Intel Corporation. 無断での引用、転載を禁じます。*その他の社名、製品名などは、一般に各社の表示、商標または登録商標です。

本日の内容

• マイクロプロセッサーのトレンド

− IA と組込み向け機器

− プロセッサーの変化

• ソフトウェア開発の課題

• 組込み機器向け開発ツール

• インテルにおけるソフトウェアのあゆみ

7

© 2013, Intel Corporation. 無断での引用、転載を禁じます。*その他の社名、製品名などは、一般に各社の表示、商標または登録商標です。

ハードウェアの進化: トランジスター数

0.001

0.01

0.1

1

10

100

1000

10000

1970 1975 1980 1985 1990 1995 2000 2005 2010

milliontransistors

ProcessorTransistorCountsプロセッサーのトランジスター数

100万トランジスター

ムーアの法則はまだ健在: トランジスター集積度は 毎年ほぼ 2 倍で成長

ソース: インテル

8

© 2013, Intel Corporation. 無断での引用、転載を禁じます。*その他の社名、製品名などは、一般に各社の表示、商標または登録商標です。

製造プロセスの進化

14nm へ続く

予測されるシリコンの進歩

ムーアの法則を継続 電力、コスト、サイズを制御しながら高い パフォーマンスと機能を備えた新しいデバイス の開発を可能にする

9

© 2013, Intel Corporation. 無断での引用、転載を禁じます。*その他の社名、製品名などは、一般に各社の表示、商標または登録商標です。

ハードウェアの進化: クロックレート

0.0001

0.001

0.01

0.1

1

10

1970 1975 1980 1985 1990 1995 2000 2005 2010

GHz

ProcessorClockRatesプロセッサーのクロックレート

クロックレートの上昇の鈍化: 2004 年頃からクロックレートは横這い

出展: インテル

10

© 2013, Intel Corporation. 無断での引用、転載を禁じます。*その他の社名、製品名などは、一般に各社の表示、商標または登録商標です。

プロセッサーが直面する 3 つの壁

1. 電力の壁(Power Wall)

• クロックレートの増加による電力の増加は容認できない

2. 命令レベルの並列性の壁(ILP Wall)

• 利用できる命令レベルの並列性の限界

3. メモリーの壁(Memory Wall)

• メモリー速度とプロセッサー速度の向上の相違

11

© 2013, Intel Corporation. 無断での引用、転載を禁じます。*その他の社名、製品名などは、一般に各社の表示、商標または登録商標です。

プロセッサーの総消費電力

12

© 2013, Intel Corporation. 無断での引用、転載を禁じます。*その他の社名、製品名などは、一般に各社の表示、商標または登録商標です。

電力のトレンド (i486を基準とする)

消費電力は うなぎのぼり

0

5

10

15

20

25

30

0 2 4 6 8

スカラー演算性能

電力

電力 = パフォーマンス ^ 1.74

i486 インテル® Pentium®

インテル® Pentium® Pro

インテル® Pentium® 4 (Wmt†)

インテル® Pentium® 4 (Psc†)

13

† 開発コード名

© 2013, Intel Corporation. 無断での引用、転載を禁じます。*その他の社名、製品名などは、一般に各社の表示、商標または登録商標です。

電力の問題に注目

パイプラインの深さ

0

2

4

6

8

10

1 2 3 4 5 6 7 8 9 10 相対的なパイプラインの段数

電力効率

最適な条件

パイプラインとパフォーマンス

0

2

4

6

8

10

1 2 3 4 5 6 7 8 9 10 相対的な周波数 (パイプライン化)

パフォーマンス

収益逓減

製造プロセス技術

0

2

4

6

8

10

1 2 3 4 5 6 7 8 9 10 相対的な周波数

リーク値は 指数関数的に増加

ワットあたりのパフォーマンスを改善するため、パイプラインの 深さと周波数を最適化する

14

© 2013, Intel Corporation. 無断での引用、転載を禁じます。*その他の社名、製品名などは、一般に各社の表示、商標または登録商標です。

電力を最適化したアーキテクチャー: 正しい方向への大きな一歩

消費電力は うなぎのぼり

0

5

10

15

20

25

30

0 2 4 6 8

スカラー演算性能

電力

電力 = パフォーマンス ^ 1.74

インテル® Pentium® M i486 インテル® Pentium®

インテル® Pentium® Pro

インテル® Pentium® 4 (Wmt†)

浅いパイプラインを備えたモバイル CPU より少ない電力

15

† 開発コード名

インテル® Pentium® 4 (Psc†)

© 2013, Intel Corporation. 無断での引用、転載を禁じます。*その他の社名、製品名などは、一般に各社の表示、商標または登録商標です。

出展: インテル

MMX

SSE

AVX

MIC

4004

8008, 8080

8086, 8088…

80386

並列化の普及: レジスター幅も時代とともに広く

ハードウェアの並列化: レジスター幅

16

© 2013, Intel Corporation. 無断での引用、転載を禁じます。*その他の社名、製品名などは、一般に各社の表示、商標または登録商標です。

123456789101112131415161718192021

1970 1975 1980 1985 1990 1995 2000 2005 2010

ProcessorCoreandThreadCounts

Threads

Cores

ハードウェアの並列化: コア数とスレッド数

スレッド数

コア数

プロセッサー・コア数とスレッド数

並列化の普及: ハードウェア・スレッド (コアと ハイパースレッド) 数は 2002年 以降、急劇に増加

出展: インテル

17

© 2013, Intel Corporation. 無断での引用、転載を禁じます。*その他の社名、製品名などは、一般に各社の表示、商標または登録商標です。

本日の内容

• マイクロプロセッサーのトレンド

• ソフトウェア開発の課題

• 組込み機器向け開発ツール

• インテルにおけるソフトウェアのあゆみ

18

© 2013, Intel Corporation. 無断での引用、転載を禁じます。*その他の社名、製品名などは、一般に各社の表示、商標または登録商標です。

並列演算はユビキタス

今やすべてのコンピューターは並列コンピューターに

• サーバー

• ラップトップ

• 携帯電話

ではソフトウェアは?

マイクロソフト社の Herb Sutter 氏が Dr. Dobbs ジャーナルで言ったこと;

無料のランチは終わった:ソフトウェアの基礎は同時性を求めることに 変わった

ソフトウェアは並列性をなくして、一つの世代の CPUから次の世代の改善された H/W へ移行する場合、性能を得ることができない

アプリケーションの性能は ISV における競争力の源となる

19

© 2013, Intel Corporation. 無断での引用、転載を禁じます。*その他の社名、製品名などは、一般に各社の表示、商標または登録商標です。

ソフトウェア開発における 6 つのトレンド

それぞれ 1958 年から 1973 年の間に誕生し、1990 年代から 2000 年代 に台頭し始めて、5 年強をかけて成熟したツール/言語/フレームワーク/ ランタイム体系が構築された

オブジェクト ジェネリック GC GUI ネットワーク

並行化

1990 1992 1994 1996 1998 2000 2002 2004 2006 2008 2010 2012

大きな相違点: 並行化時代の到来を察知している

20

© 2013, Intel Corporation. 無断での引用、転載を禁じます。*その他の社名、製品名などは、一般に各社の表示、商標または登録商標です。

ソフトウェア開発における課題

• キャッシュとメモリー階層のアクセスを最適化

• ベクトルユニットを明示的に活用

• 複数のコアを明示的に活用

21

© 2013, Intel Corporation. 無断での引用、転載を禁じます。*その他の社名、製品名などは、一般に各社の表示、商標または登録商標です。

どのように並列アプリケーションを作成するか

22

もとの問題解決 タスクは共有データと ローカルデータを持つ

タスクへ分解する

並列プログラム 環境をコード化

対応するソースコード

Program SPMD_Emb_Par ()

{

TYPE *tmp, *func();

global_array Data(TYPE);

global_array Res(TYPE);

int N = get_num_procs();

int id = get_proc_id();

if (id==0) setup_problem(N,DATA);

for (int I= 0; I<N;I=I+Num){

tmp = func(I);

Res.accumulate( tmp);

}

}

Program SPMD_Emb_Par ()

{

TYPE *tmp, *func();

global_array Data(TYPE);

global_array Res(TYPE);

int N = get_num_procs();

int id = get_proc_id();

if (id==0) setup_problem(N,DATA);

for (int I= 0; I<N;I=I+Num){

tmp = func(I);

Res.accumulate( tmp);

}

}

Program SPMD_Emb_Par ()

{

TYPE *tmp, *func();

global_array Data(TYPE);

global_array Res(TYPE);

int N = get_num_procs();

int id = get_proc_id();

if (id==0) setup_problem(N,DATA);

for (int I= 0; I<N;I=I+Num){

tmp = func(I);

Res.accumulate( tmp);

}

}

Program SPMD_Emb_Par ()

{

TYPE *tmp, *func();

global_array Data(TYPE);

global_array Res(TYPE);

int Num = get_num_procs();

int id = get_proc_id();

if (id==0) setup_problem(N, Data);

for (int I= ID; I<N;I=I+Num){

tmp = func(I, Data);

Res.accumulate( tmp);

}

}

実行のユニット化 + 抽出された依存性の ための新たな共有データ

© 2013, Intel Corporation. 無断での引用、転載を禁じます。*その他の社名、製品名などは、一般に各社の表示、商標または登録商標です。

並行化の評価フレームワークにおける 3 つの原理

I. 非同期エージェントに よる隔離

II. 並行収集によるスケーラビリティー

III. 安全な共有リソースに よる一貫性

タグライン ブロッキングの回避 フリーランチの復活 共有状態問題の回避

要約 個別にタスクを実行し、 メッセージにより通信する ことで応答性を維持

複数のコアを使用し、 グループ単位で処理を実行 することでより素早く結果 を取得。データ/アルゴリズムの構造を並列化

共有リソース (特に、共有 メモリーの可変オブジェクト)

へのアクセスを同期させることで競合を回避

例 GUI、Web サービス、 バックグラウンド印刷/ コンパイル

ツリー、クイックソード、 コンパイル

メモリーにある可変共有

オブジェクト、データベース・テーブル

主要な目的 応答性 スループット、 スケーラビリティー

競合なし、デッドロックなし

条件 隔離、個別 低オーバーヘッド、副作用なし 結合可能、直列化可能

現在の抽象概念 スレッド、メッセージキュー スレッドプール、OpenMP* 明示的ロック、ロックフリー・ ライブラリー、トランザクション

可能な抽象概念 アクティブ・オブジェクト、Future

Chore、Future、Parallel STL、PLINQ

トランザクション・メモリー、 改善されたロック

23

© 2013, Intel Corporation. 無断での引用、転載を禁じます。*その他の社名、製品名などは、一般に各社の表示、商標または登録商標です。

O(1)、O(K)、または O(N) の並行化?

14

O(1): シーケンシャルと同様

フリーランチは終わり (CPU バウンドの場合): パフォーマンスは一定かわずかに向上

潜在的に応答性は悪い

O(K): 明示的に固定されたスループット

(入力ワークロードに対して) K 個の CPU 向けにハードウェア接続されたスレッド数

< K CPU の場合はパフォーマンスが向上せず、> K CPU の場合はスケーリングされない

O(N): スケーラブルなスループット ワークロードをさまざまな作業に分割

N コアまでマップ可能な並行化の活用

24

© 2013, Intel Corporation. 無断での引用、転載を禁じます。*その他の社名、製品名などは、一般に各社の表示、商標または登録商標です。

いくつかのヒント 有用だが、ほとんどはすでに導入済み

自動並列化 (コンパイラー、ILP など):

• アムダールの法則: 逐次プログラムは … シーケンシャル

• 正確なプログラム解析が必要: 単純な言語 (Fortran) や ポインターを使用する言語では困難

• プログラマーは並行化についての知識が必要

関数型言語:

• 自然に並列化されている … ただし粒度が細かすぎる

• 純粋な不変データを使用 … 商用利用のものを除く

• 一般的な開発者向けではない

• これらの言語の主要な抽象概念/スタイル (クロージャーなど) を利用し、命令型言語でサポートする

OpenMP*、OpenMPI など:

• “非常に強力な手法” だが、限られた箇所でのみ適用可能

25

© 2013, Intel Corporation. 無断での引用、転載を禁じます。*その他の社名、製品名などは、一般に各社の表示、商標または登録商標です。

自動的なベクトル化と並列化は困難

26

void addme(int n, double a[n], double b[n], double c[n]) { for (int i = 0; i < n; ++i) a[i] = b[i] + c[i]; }

double summe(int n, double a[n]) { double mysum = 0; for (int i = 0; i < n; ++i) mysum += a[i]; return mysum; }

引数配列 a、b そして c が

オーバーラップする可能性がある。プログラマーが意図しなくても、オーバーラップの可能性は シリアルの規制を招く

各ループ反復は直前の反復に 依存しているため、各反復を 並列に実行することができない

void addme(int n, double a[n], double b[n], double c[n]) { a[:] = b[:] + c[:]; }

double summe(int n, double a[n]) { reducer_opadd <double> mysum(0); cilk_for (int i = 0; i < n; ++i) mysum += a[i]; return mysum.get_value(); }

© 2013, Intel Corporation. 無断での引用、転載を禁じます。*その他の社名、製品名などは、一般に各社の表示、商標または登録商標です。

THINK PARALLEL (さもなければ滅びる)

ソフトウェア開発者の挑戦:

マルチコア処理は新たな標準

並列性の活用は今後パフォーマンスを 実現するための最良の方法

27

© 2013, Intel Corporation. 無断での引用、転載を禁じます。*その他の社名、製品名などは、一般に各社の表示、商標または登録商標です。

本日の内容

• マイクロプロセッサーのトレンド

• ソフトウェア開発の課題

• 組込み機器向け開発ツール

• インテルにおけるソフトウェアのあゆみ

28

© 2013, Intel Corporation. 無断での引用、転載を禁じます。*その他の社名、製品名などは、一般に各社の表示、商標または登録商標です。

インテル® System Studio

「Wind River では、Wind River Linux* がサポートされるインテル® System Studio がリリースされたことを嬉しく 思います。インテル® アーキテクチャーの深い洞察が提供されることで、信頼性が高く、応答性に優れた電力効率の良い Wind River Linux* ソリューションを組込み/システム開発者が迅速に実装できるようになります。」 Wind River 社 製品管理 オペレーティング環境担当副社長 Dinyar Dastoor 氏

29

© 2013, Intel Corporation. 無断での引用、転載を禁じます。*その他の社名、製品名などは、一般に各社の表示、商標または登録商標です。

インテル® System Studio の機能一覧

† SVEN = System Visible Event Nexus

フェーズ コンポーネント 機能 利点

検証/ デバッグ/フラッシュ

インテル® JTAG デバッガー

詳細なシステム/アプリケーションのデバッグ

• OS カーネル・ソフトウェア、ドライバー、ファーム ウェア、BIOS、UEFI をソースレベルでデバッグ

• SVEN† - デバッグ用の非常に高速な SoC トレース・ インフラストラクチャー

• 問題を素早く解決できるように CPU、SoC、 チップセットを詳細にデバッグ

• プロダクション・コードにトレース・インストルメンテーションを残すことでシステム全体にわたって問題を迅速に解決

GDB* デバッガー • 拡張された GDB* アプリケーション・デバッガー • 詳細なアプリケーションのデバッグとトレースにより問題を素早く解決

• 並列ソフトウェアで競合を検出

インテル® Inspector • コードの信頼性を向上させるメモリーとスレッドの解析 • 生産性とコードの品質を高め、コストを削減し、早期にメモリー/スレッド/セキュリティーの問題を発見

チューニング

インテル® VTune™ Amplifier

詳細なソフトウェアの解析とチューニング • SoC 全体の解析 • 電力とパフォーマンスのプロファイリング • VMM でのサンプリング

• SoC 動作を素早く詳細に解析 • 従来の推測作業を排除し、短時間で容易に電力 効率とパフォーマンスの最適化の可能性を特定

• リソースが制限された環境での詳細な解析

ビルド

インテル® C++ コンパイラー

コンパイラーとパフォーマンス・ライブラリー

• ハイパフォーマンスな C/C++ クロスコンパイラー、 インテル® Cilk™ Plus スレッディング・ランタイム

• 信号処理、メディア処理、データ処理向けの ハイパフォーマンスなソフトウェア・ビルディング・ブロック

• FFT (1/2/3 次元)、線形代数など、各種操作用の ハイパフォーマンスな算術関数

• IA ベースの組込みシステムのパフォーマンスを 向上し、マルチコアと将来のメニーコアのスケーラ ビリティーを活用

• クロスプラットフォーム開発と使いやすい Eclipse* への統合

• 信号処理、データ処理、メディア処理向けの主要なソフトウェア・ビルディング・ブロックにより開発期間を短縮し、パフォーマンスを向上

• GCC* との互換性

インテル® インテグレーテッド・ パフォーマンス・プリミティブ (インテル® IPP)

インテル® マス・カーネル・ ライブラリー (インテル® MKL)

インテル® System Studio によりシステムの信頼性の強化、 電力効率とパフォーマンスの向上を実現

30

© 2013, Intel Corporation. 無断での引用、転載を禁じます。*その他の社名、製品名などは、一般に各社の表示、商標または登録商標です。

システムで問題がある場所は?

時間がかかりすぎている 時間を無駄に している

長時間待機 している

頻繁にウェイクアップ している

• 時間がかかっている関数を 重点的にチューニング

• コールスタックを確認 • ソースレベルで時間を確認

• ソースレベルで キャッシュミスを確認

• 関数をキャッシュミスの回数でソートし確認

• 待機時間ごとにロックを確認

• 待機中の CPU 利用率は 赤または緑で表示

• ソースでウェイクアップの 原因を確認

• CPU コアの周波数を確認

31 高度なプロファイリングにより高電力効率とスケーラブルな

マルチコア・パフォーマンスを達成

「インテル® VTune™ Amplifier はパフォーマンス・ボトルネックの正確

な場所をピンポイントで特定できるため、時間を大幅に節約できました。

これまで使用したどの解析ツールよりも格段に優れています。」

RiverSilica Technologies 社 共同設立者兼ソフトウェエア・

アーキテクト Jagadish Kamath 氏

インテル® VTune™ Amplifier 2013 電力/パフォーマンス・アナライザー

31

© 2013, Intel Corporation. 無断での引用、転載を禁じます。*その他の社名、製品名などは、一般に各社の表示、商標または登録商標です。

主な機能

• CPU および SoC イベントの監視

•パフォーマンス・モニタリング・ユニット (PMU)

• ソフトウェア・ベース

• リモートデータ収集 (SSH)

• 低オーバーヘッドのサンプリング

• インストルメンテーションは不要

• 結果はソースまたはアセンブリーで表示

使用モデル

• 2 つのコンポーネント

インテル® VTune™ Amplifier の GUI (ホスト上)

サンプリング・コレクター (ターゲットデバイス上)

• ターゲットデバイスでデータを収集し、 ホストシステムで結果を解析

インテル® VTune™ Amplifier 2013 組込みシステムにおける電力とパフォーマンスをプロファイリング

CPU および SoC 全体のイベントのクロスプラットフォーム・サンプリング

32

© 2013, Intel Corporation. 無断での引用、転載を禁じます。*その他の社名、製品名などは、一般に各社の表示、商標または登録商標です。

インテル® VTune™ Amplifier 2013 電力/パフォーマンス・アナライザー

• より多くのプロファイル・データ

– SoC 全体の解析 ウェイクアップと周波数

– スタティック・コール・カウント – ハードウェア・イベントとスタック

より低いオーバーヘッドで、高い精度 小さな関数内の hotspot を検出

– インテル® Atom™ プロセッサー、 SoC イベント

– Ivy Bridge† イベント – Haswell† イベント

新しいプロセッサー出荷と同時に更新

• 簡単に利用

– リモートデータ収集 • インライン展開向けのソース表示

(インテル® コンパイラーと GCC* コンパイラー)

• Java* チューニング Java* ソースに結果をマッピング

• タスク・アノテーション API タスクの可視化

• ユーザー定義の情報 イベントから特定の情報を生成

• ホットキーを設定可能 解析の開始および停止を簡単に制御

• より優れた高度なプロファイル機能 (例: バンド幅のプロファイル)

CPU のアクティビティー

簡単に利用、豊富なデータ、強力な解析 † 開発コード名

33

© 2013, Intel Corporation. 無断での引用、転載を禁じます。*その他の社名、製品名などは、一般に各社の表示、商標または登録商標です。

インテル® VTune™ Amplifier 2013 SoC 全体の解析

SoC = ヘテロジニアス・マルチコア

• 複数アーキテクチャー

• いくつかの異なる特殊なプロセッサー

• 共通のメモリーバス

• 複数のプロセッサー間でのデータ交換

多様なデバイス

• データのエンコード/デコード専用の マイクロエンジン

• さまざまな I/O デバイス

• 高度な電力管理

• 共通のメモリー/データ・バス・システム

インテル® Atom™ プロセッサー Z2760 SoC のハイレベルブロック図

SoC コンポーネントへのアクセスと可視性

34

© 2013, Intel Corporation. 無断での引用、転載を禁じます。*その他の社名、製品名などは、一般に各社の表示、商標または登録商標です。

インテル® VTune™ Amplifier 2013 CPU および SoC 全体の電力とパフォーマンスの解析

• ウェイクアップを最小限に抑えて CPU の消費電力を削減

– ウェイクアップの原因を特定

• アプリケーションでトリガーする タイマー

• 割り込みを H/W 命令レベルで 表示

• ウェイクアップ・レートの表示

– CPU をウェイクアップするイベントのソースコードを表示

– SoC の異なる IP ブロックの相互作用の影響を解析

– CPU のクロック周波数をコアごとに表示 (CPU のクロック周波数はアクティビティー・レベルにより変更可能)

選択してフィルターし、1 つのウェイクアップ・オブジェクトを表示:

ウェイクアップの原因をそれぞれ識別してタイマー・コール・スタックを表示

35

© 2013, Intel Corporation. 無断での引用、転載を禁じます。*その他の社名、製品名などは、一般に各社の表示、商標または登録商標です。

インテル® JTAG デバッガー システムの開発および検証を高速化

主な機能

• イベントトレースを使用してライブ JTAG システムをデバッグ (SVEN) • レジスターの詳細な説明を含むビット・フィールド・エディター

• EFI/UEFI ファームウェア、ブートローダー、Linux* OS を認識

• フラッシュおよび周辺レジスターのサポート

• ページ変換テーブルとディスクリプター・テーブルへのアクセス

• 動的にロードされたカーネルモジュールのデバッグ

• LBR オンチップ命令トレースのサポート

• SMP の実行制御サポート

36

© 2013, Intel Corporation. 無断での引用、転載を禁じます。*その他の社名、製品名などは、一般に各社の表示、商標または登録商標です。

SVEN (System Visible Event Nexus) 概要

ソフトウェア・インストルメンテーションに 基づいたトレース

– 挿入したコードにより主要なシステム イベントを記録

詳細な SoC および CPU のシステムビュー

– 複数のコア (IA、DSP ほか)

– ユーザーコードとカーネルコード

超低オーバーヘッドのサンプリング

– 約 1/10 マイクロ秒

– 明確に定義されたイベント構造

– プロダクション・ビルドに残すことも可能

• JTAG* によるイベントトレース • スマート・ブレークポイント

− 主要イベントの実行で中断

SoC および CPU にアクセスする主要ソフトウェア・コンポーネントをインストルメントする超高速かつ安全なダイナミック・テクノロジー

• システム・イベント・トレースのビジュアル化、解析、デバッグ • コマンドライン・ インターフェイス

• グラフィカル・ユーザー・ インターフェイス

超高速 SoC ソフトウェア・イベント・トレース・メカニズムにより 問題を素早く解決

37

© 2013, Intel Corporation. 無断での引用、転載を禁じます。*その他の社名、製品名などは、一般に各社の表示、商標または登録商標です。

SVEN - システムの聴診器 JTAG によるシステムおよび SoC のトレース

トレースのビジュアル化

– 高度なナビゲーション、検索、フィルター

– グラフィックとテキストによるイベントの表示

– ユーザー制御によるトレース行のグループ化

スマート・イベント・トリガー

– イベントトレースを使用してライブ JTAG システムをデバッグ

– トレースイベントの呼び出しで中断する スマート・ブレークポイント

– スマート・ブレークポイントを設定することで 詳細な解析が可能 例:

• USB ドライバーのすべてのイベントでブレーク

• “ERROR” で始まるすべてのデバッグ文字列でブレーク

• レジスター X へのアクセスでブレーク

• レジスター X のビット [7-9] の値が 0b101 の場合はブレーク

• タイムライン・ビュー • 検索およびフィルター

• スマート・イベント・トリガーの定義

強力な JTAG* およびイベントトレースによりシステムの安定性を強化

38

© 2013, Intel Corporation. 無断での引用、転載を禁じます。*その他の社名、製品名などは、一般に各社の表示、商標または登録商標です。

インテル® C++ コンパイラー パフォーマンスの向上

ハイパフォーマンス

• インテル® AVX およびインテル® AVX2 命令を使用して高度に最適化したコードを生成

• インテル® Cilk™ Plus:

タスキングとベクトル化

• 最短実行時間により低電力アプリケーションの 開発に貢献

標準およびクロスビルド環境のサポート

• インテル® C++ コンパイラーは GNU* の クロスビルドをサポート

• Eclipse* CDT、Poky-Linux* ベースの Yocto Project* ADT への統合をサポート

• C99 および C++ 11 のサポート

クロスプラットフォーム、ハイパフォーマンス、GNU* との互換性

39

© 2013, Intel Corporation. 無断での引用、転載を禁じます。*その他の社名、製品名などは、一般に各社の表示、商標または登録商標です。

http://isus.jp (日本語)

関連情報

• インテル® System Studio は、インテル® アーキテクチャー・ベースの組込み/モバイル開発者に開発期間の短縮、システムの信頼性の強化、電力効率とパフォーマンスの向上に役立つシステムの深い洞察を提供します。

• 関連リンク

– インテル® プレミアサポート:

– フォーラム:

– インテル® ソフトウェア開発製品:

– 技術情報ポータルサイト:

製品の詳細、評価版、購入に関する情報: http://intel.ly/system-studio (英語)

http://software.intel.com/en-us/forum/intel-system-studio/ (英語)

http://www.intel.co.jp/content/www/jp/ja/developer/software-products.html (日本語)

https://premier.intel.com (英語)

40

© 2013, Intel Corporation. 無断での引用、転載を禁じます。*その他の社名、製品名などは、一般に各社の表示、商標または登録商標です。

本日の内容

• マイクロプロセッサーのトレンド

• ソフトウェア開発の課題

• 組込み機器向け開発ツール

• インテルにおけるソフトウェアのあゆみ

41

© 2013, Intel Corporation. 無断での引用、転載を禁じます。*その他の社名、製品名などは、一般に各社の表示、商標または登録商標です。

インテルにおけるソフトウェアの背景

オペレーティング・システム

プラットフォーム・ファームウェア

App App

データベース

App

プロセッサー アーキテクチャー

チップセット

Platform Hardware

深いレベルでの技術強調

• プラットフォーム・ アーキテクチャー

• プラットフォーム・ ファームウェア

• オペレーティング・システム

• データベース

• オープンソース

42

基本ソフトウェア | 開発ツール | 標準化 | トレーニング

Intel® Developer Zone

Intel® Software Partners

© 2013, Intel Corporation. 無断での引用、転載を禁じます。*その他の社名、製品名などは、一般に各社の表示、商標または登録商標です。

インテルの先進のプラットフォームで革新を促進し世界中の優秀な才能を発掘

Western United States

Arizona Folsom, CA Santa Clara, CA Southern CA Colorado New Mexico Portland, OR Utah Washington

Eastern / Midwestern United States

Illinois Massachusetts New Hampshire Texas Virginia

South America

Argentina

Israel / Western Europe

Koln, Germany Munich, Germany Ulm, Germany Israel Stockholm, Sweden Winnersh, UK

Russia

Moscow Nizhniy Novgorod Sarov St. Petersburg

China

Beijing Hong Kong Shanghai Shenzhen Xi’An Zizhu

Asia

Sydney, Australia Bangalore, India Mumbai, India Japan

インテルの世界規模のソフトウェア R&D ラボ

50 以上の拠点 20か国以上にまたがる

India

Bangalore

43 43

© 2013, Intel Corporation. 無断での引用、転載を禁じます。*その他の社名、製品名などは、一般に各社の表示、商標または登録商標です。

インテルにおけるソフトウェアの近況

44

http://software.intel.com

© 2013, Intel Corporation. 無断での引用、転載を禁じます。*その他の社名、製品名などは、一般に各社の表示、商標または登録商標です。

http://www.isus.jp

45

© 2013, Intel Corporation. 無断での引用、転載を禁じます。*その他の社名、製品名などは、一般に各社の表示、商標または登録商標です。

本資料の情報は、現状のまま提供され、本資料は、明示されているか否かにかかわらず、また禁反言によるとよらずにかかわらず、

いかなる知的財産権のライセンスを許諾するものではありません。製品に付属の売買契約書『Intel‘s Terms and Conditions of

Sale』に規定されている場合を除き、インテルはいかなる責任を負うものではなく、またインテル製品の販売や使用に関する明示または

黙示の保証(特定目的への適合性、商品適格性、あらゆる特許権、著作権、その他知的財産権の侵害への保証を含む)に関しても

いかなる責任も負いません。

性能に関するテストや評価は、特定のコンピューター・システム、コンポーネント、またはそれらを組み合わせて行ったものであり、この

テストによるインテル製品の性能の概算の値を表しているものです。システム・ハードウェアの設計、ソフトウェア、構成などの違いにより、

実際の性能は掲載された性能テストや評価とは異なる場合があります。システムやコンポーネントの購入を検討される場合は、ほかの

情報も参考にして、パフォーマンスを総合的に評価することをお勧めします。インテル製品の性能評価についてさらに詳しい情報をお知

りになりたい場合は、http://www.intel.co.jp/jp/performance/resources/benchmark_limitations.htm を参照してください。

Intel、インテル、Intel ロゴ、Intel Atom、Intel Atom Inside、Intel Core、Core Inside、Pentium、Xeon、Xeon Inside、

Intel Xeon Phi、Cilk、VTune は、アメリカ合衆国および / またはその他の国における Intel Corporation の商標です。

*その他の社名、製品名などは、一般に各社の表示、商標または登録商標です。

法務上の注意書きと最適化に関する注意事項

最適化に関する注意事項

インテル® コンパイラーは、互換マイクロプロセッサー向けには、インテル製マイクロプロセッサー向けと同等レベルの最適化が行われない可能性があります。これには、インテル® ストリーミング SIMD 拡張命令 2 (インテル® SSE2)、インテル® ストリーミング SIMD 拡張命令 3 (インテル® SSE3)、ストリーミング SIMD 拡張命令 3 補足命令 (SSSE3) 命令セットに関連する最適化およびその他の最適化が含まれます。インテルでは、インテル製ではないマイクロプロセッサーに対して、最適化の提供、機能、効果を保証していません。本製品のマイクロプロセッサー固有の最適化は、インテル製マイクロプロセッサーでの使用を目的としています。インテル® マイクロアーキテクチャーに非固有の特定の最適化は、インテル製マイクロプロセッサー向けに予約されています。この注意事項の適用対象である特定の命令セットの詳細は、該当する製品のユーザー・リファレンス・ガイドを参照してください。

改訂 #20110804

47