• 検索結果がありません。

SMG Field Computex 2011 New Category Update

N/A
N/A
Protected

Academic year: 2021

シェア "SMG Field Computex 2011 New Category Update"

Copied!
31
0
0

読み込み中.... (全文を見る)

全文

(1)

1

Intel ® Software Developer Day

インテル

® OpenCL SDK のご紹介

と開発環境

2011年7月15日 インテル株式会社 ソフトウェア&サービス統拢部 アプリケーション・エンジニア 久保寺 陽子

(2)

アジェンダ

 OpenCLとは •ヘテロジニアス・コンピューティング •インテルのOpenCLへの取り組み

インテル® OpenCL SDK の概要 • インテル® OpenCL SDKを使用したプログラム開発方法 • インストール方法 • コンパイラー・オプション • オフライン・コンパイラー

インテル® グラフィックス・パフォーマンス・アナライザー (GPA) の概要

インテル® OpenCL SDK +インテル® GPA 4.0に

(3)

3

OpenCLとは

• OpenCL は新たな標準 • クロス・プラットフォーム • ヘテロジニアス • ローレベルのアクセス可能 • 様々なアプリケーションをサポート • メディア、イメージ処理、グラフィックス等 CPUs Multiple cores driving performance increases GPUs Increasingly general purpose data-parallel computing Emerging Intersection Heterogeneous Computing

Diagram based on deck presented in OpenCL BOF at SIGGRAPH 2010 by Neil Trevett, NVIDIA, OpenCL Chair, http://www.khronos.org/developers/library/2010_siggraph_bof_opencl/OpenCL-BOF-Intro-and-Overview_SIGGRAPH-Jul10.pdf

(4)

OpenCLプラットフォーム・モデル

• 1つのホスト + 1つ以上の計算デバイス

- 各計算デバイスは1つ以上の計算ユニットから構成される

(5)

5

OpenCL 実行モデル

• OpenCLアプリケーションは計算デバイスに ワークをサブミットしたホスト上で動作する - ワークアイテム: OpenCLデバイスのワークの基本単位 - カーネル: ワークアイテムのコード。基本的にはC関数 - プログラム: カーネルとその他の関数(動的なライブラ リーと相似)の集合 - コンテキスト: ワーク・アイテムを実行する環境 … デバイスやメモリー、コマンドキューを含む • アプリケーションは実行インスタンスをキューイ ング - インオーダーでキューに入る … 1つのキューは1つのデ バイスに対応 - 実行はインオーダーまたはアウトオブオーダー

Diagram based on deck presented in OpenCL BOF at SIGGRAPH 2010 by Neil Trevett, NVIDIA, OpenCL Chair, http://www.khronos.org/developers/library/2010_siggraph_bof_opencl/OpenCL-BOF-Intro-and-Overview_SIGGRAPH-Jul10.pdf

(6)

並列化における開発者の選択肢

インテルでは高性能な並列コンピューティング・ツールと技術を開発者が選択できる

• インテル® Parallel Building Blocks (インテル®PBB) は広範囲なアプリケーションの並列化に対応.

• OpenCL*は具体的なセグメントの顧客のニーズに対処し、それらのアプリケーション性能を最大化するた

TM

Microsoft, Intel, GNU C++ で互換 様々なOS、プラットフォームをサポート

(7)

7 メインストリーム、一般の開発者 デジタル・ンテンツ 作成 メディア

OpenCL*はどこで使うか?

開発者の選択: インテルは開発者に広い範囲の並列処理ツールを提供。OpenCL は一定の分野やシナリオで有 効。 OpenCLの 利点/欠点: 利点:1つのAPI でCore TM、 プロセッサー・グラフィックス, ヘテロジニアス・デバイス/プラット フォームをサポート

欠点: 高度な知識を必要とするローレベルAPIや制限された limited composability

CoreTM+ Processor Gfx CoreTM+ Processor Gfx

ゲーム CoreTM+ Processor Gfx OpenCL はアプリケーションに依存する一定のセグメントに有用 ターゲット HW Core 、 プロセッサ ・グラフィックス, クロスベンダーをサポートする単一API ローレベルの制御・APIを提供し、OpenGLやDirectXと相互運用可能 OpenCLをい つ使う? ハイパフォーマン ス・コンピューティン グ Xeon/MIC Consumer Client HPC/Enterprise

Intel®TBB1, IPP2, OpenCL,

MDSK3, DirectX Intel

®PBB4, OpenCL,

OpenGL, DirectX TBB, DirectX, OpenGL, OpenCL

ツール&API Intel®PBB, OpenCL

1Intel®Threading Building Blocks (TBB) 2Intel®Integrated Performance Primitives 3Intel® Media SDK

4 Intel®Parallel Building Blocks (PBB)

GPUアプリを将来のインテル ・プラットフォームにポーティン

(8)

OpenCL とヘテロジニアス・コンピューティング

• OpenCLはデバイスに依存しない1つのプログラミ ング環境を提供するプラットフォームAPIである • ヘテロジニアスな並列計算を実現 • CPUやGPU等をコーディネートすること • OpenCLを使うことにより、単一プログラム内で全 ての計算資源(CPUやGPU等)を最大限に活用す ることが可能: • 単一プログラムがヘテロジニアス・プロセッサー環境内で、人 間が最適化したように高性能で動作する • インテルの新世代プロセッサーの採用: CPUとGPUの新たな レベルでの統合

(9)

9

OpenCLのデータ並列実行モデルのマッピング

• 暗黙のSIMDデータ並列(例.シェーダースタイル): • “スカラープログラム”としてカーネル・プログラムを記述 • アルゴリズムに沿うようにベクターデータを使用 • カーネル・プログラムはコンパイラー/ランタイム/ハードウェア によって自動的にSIMD計算資源に割り当てられる • 明示的 SIMD データ並列: • カーネル・プログラムは命令の1つのストリームを定義 • 並列化はソースプログラムの段階からワイド・ベクタータイプを 使用 • ベクターサイズは実装されているHWで決まる • プログラマーはattributeを使用してベクトルデータのヒントを記 述できる • vec_type_hint(typen)

CPU は両方のマッピングをサポート

(10)

データ並列

: IA プロセッサーのオプション

• 明示的SIMD データ並列 • プログラマーはベクター・データのタイプ(width)を選択 • コンパイラーに対してattribute で指示 • Vec_type_hint(typen) • 暗黙の SIMD データ並列 • CPUs, GPUs, …へのマッピング • SSE/AVX : 並列に4/8 のワークアイテムを処理 • 2つの方法のハイブリッド • AVX : 4ワイドのワークアイテム2個を並列に処理可能

(11)

11

インテルの

OpenCLへの取り組み

• インテルは Khronosのファウンダー&プロモーター ‒ インテルはOpenCLを自社のプラットフォームでサポートし、OpenCLの機能 セットにも関与 • インテル は開発者に選択肢の1つとしてツールを提供 ‒ インテル® OpenCL SDK は革新的な並列プログラミングツールにインテルが 検証した最新の追加を行う. • 現在、インテル® OpenCL SDKのCPU版は公開中 ‒ http://software.intel.com/en-us/articles/intel-opencl-sdk/

(12)

アジェンダ

 OpenCLとは ヘテロジニアス・コンピューティング インテルのOpenCLへの取り組み

インテル® OpenCL SDK の概要 • インテル® OpenCL SDKを使用したプログラム開発方法 • インストール方法 • コンパイラー・オプション • オフライン・コンパイラー

インテル® グラフィックス・パフォーマンス・アナライザー (GPA) の概要

インテル® OpenCL SDK +インテル® GPA 4.0に

(13)

13

現在公開中

インテル® OpenCL SDK インテル® OpenCL SDK version • http://software.intel.com/en-us/articles/intel-opencl-sdk/. 機能: • インテル® CoreTM プロセッサーのサポート • OpenCL 1.1 に準拠 • 32ビットと64ビット・アプリケーションをサポート • サポートOS:Windows と Linux (64bitのみ)

(14)

インテル

® OpenCL SDK の利点

性能 • インテルのハードウェアを効率的に使用: • インテル・プロセッサー・グラフィックスのプログラム機能の使用 • SIMD命令やマルチコア・スケーラビリティ等のインテル® IA の利点 をシームレスに利用 • カーネルプログラムをインテルCPUとプロセッサー・グラフィックスに 分ける 使いやすさ • 1つのAPI でインテル® プロセッサー・グラフィックスとインテル® CPUをサポー ト • 将来のインテル® アーキテクチャーとプラットフォームに互換 • ツールと技術の統合: • 現在: TBB, OpenGL. • 将来: Media SDK, DX 標準化 • 標準APIを採用して、開発期間を短縮

(15)

15

プロファイリング・ツール デバッグツール 静的ツール

• OpenCL プロファイル APIのサポート

• POpenCL API を通してOpenCLカウンタを提 供 • スタンドアローンのカウンタービューワー • OpenCL プラットフォーム・アナライザー • OpenCL タスク・インストルメント • OpenCL キュー・インストルメント • iGPA タスク・アナライザー

• VTune Amplifier XE への統合(CPU のみ)

• JIT プロファイリング • OpenCL カーネル・デバッガー (CPU の み) • MSFT 2008/2010 Visual Studio む けのデバッグエンジン • .cl ファイルからのカーネル・バッグ • OpenCL オフラインコンパイラー • オフラインコンパイル時に提供されるサー ビル: シンタックス・チェッカー, アセンブ ラー表示, LLVM 表示 等. • 2 つのモードで使用可能: GUI モードとコマ ンドライン・モード

インテル

®

OpenCL SDK ツールとサンプル

サンプルプログラム OpenCLサンプルで提供されるもの: • サンプル毎のドキュメント • OpenCL チュートリアルと最適化ガイド • インテル・プラットフォーム最適化コードと命令

(16)

アジェンダ

 OpenCLとは ヘテロジニアス・コンピューティング インテルのOpenCLへの取り組み

インテル® OpenCL SDK の概要  インテル® OpenCL SDKを使用したプログラム開発方法 • インストール方法 • コンパイラー・オプション • オフライン・コンパイラー

インテル® グラフィックス・パフォーマンス・アナライザー (GPA) の概要

インテル® OpenCL SDK+インテル® GPA 4.0に

(17)

17

インテル

® OpenCL SDKのインストール環境

•Intel® OpenCL SDKのバージョン •Windows 版: 32bit、64bit •Linux版: 64bit •サポートするHW: •SSE4以降のSIMD命令をサポートしているプロセッサー •具体的には、Intel® Core™ マイクロアーキテクチャー •サポートOS:

•Microsoft Windows 7 (32-bit version、64-bit version)

•Microsoft Windows Vista (32-bit version、64-bit version) •Novell SUSE Linux* Enterprise Server 11 SP1 (64-bit

version)

(18)
(19)

19

Visual Studio における使用方法

ヘッダーファイルのインクルード

(20)

オフライン・コンパイラー

(21)

21

(22)
(23)

23

(24)

アジェンダ

 OpenCLとは ヘテロジニアス・コンピューティング インテルのOpenCLへの取り組み

インテル® OpenCL SDK の概要  インテル® OpenCL SDKを使用したプログラム開発方法  インストール方法  コンパイラー・オプション  オフライン・コンパイラー

インテル® グラフィックス・パフォーマンス・アナライザー (GPA) の概要

インテル® OpenCL SDK+インテル® GPA 4.0に

(25)

25

インテル

® グラフィックス・パフォーマンス・

アナライザーの概要

•ツール ‒システム・アナライザー ‒フレーム・アナライザー ‒タスク・アナライザー •留意事項 ‒単一コンピューターやネットワーク上から の起動が可能 ‒全てのDirectX* に対応したデバイスで 動作 ‒ゲームレベルのコンテキスト ‒キャプチャー・ファイルの共有

(26)

インテル

® グラフィックス・パフォーマンス・アナライザー4.0

の新機能

• 全体の機能 • Microsoft DirectX* 11 サポート • 新たな “how to” ヘルプ・ビデオの提供 • インテル® GPA システム・アナライザー/インテル® GPA フレーム・ アナライザー • インテル® HD グラフィックス 2000/3000 ハードウェア上での新たなGPU メトリックスをサポート

• インテル® GPA プラットフォーム・アナライザー (beta release)

• インテル® GPA 3.0(βバージョン)でリリースされたプラットフォーム表示の機能をス タンドアローン・アプリケーションにした

(27)

27

アジェンダ

 OpenCLとは ヘテロジニアス・コンピューティング インテルのOpenCLへの取り組み

インテル® OpenCL SDK の概要  インテル® OpenCL SDKを使用したプログラム開発方法  インストール方法  コンパイラー・オプション  オフライン・コンパイラー

インテル® グラフィックス・パフォーマンス・アナライザー (GPA) の概要

インテル® OpenCL SDK+インテル® GPA 4.0による解析 • まとめ

(28)

IGPAを使用した際のOpenCLプログラムの解析

デモ

(29)

29

まとめ

• インテル は開発者に選択肢の1つとしてOpenCLに関する ツールを提供 します。 ‒ インテルはOpenCLを自社のプラットフォームでサポートし、 OpenCLの機能セットにも関与しています。 • 現在、OpenCLのCPU版は公開中です。 ‒ http://software.intel.com/en-us/articles/intel-opencl-sdk/ • インテルが提供するツールもOpenCL

(30)
(31)

33 最適化に関する注意事項 インテル® コンパイラー、関連ライブラリーおよび関連開発ツールには、インテル製マイクロプロセッサーおよび互換マイ クロプロセッサーで利用可能な命令セット( SIMD 命令セットなど) 向けの最適化オプションが含まれているか、あるいは オプションを利用している可能性がありますが、両者では結果が異なります。また、インテル® コンパイラー用の特定のコ ンパイラー・オプション( インテル® マイクロアーキテクチャーに非固有のオプションを含む) は、インテル製マイクロプロ セッサー向けに予約されています。これらのコンパイラー・オプションと関連する命令セットおよび特定のマイクロプロセッ サーの詳細は、『インテル® コンパイラー・ユーザー・リファレンス・ガイド』の「コンパイラー・オプション」を参照してください。 インテル® コンパイラー製品のライブラリー・ルーチンの多くは、互換マイクロプロセッサーよりもインテル製マイクロプロ セッサーでより高度に最適化されます。インテル® コンパイラー製品のライブラリー・ルーチンの多くは、互換マイクロプロ セッサーよりもインテル製マイクロプロセッサーでより高度に最適化されます。インテル® コンパイラー製品のコンパイラー とライブラリーは、選択されたオプション、コード、およびその他の要因に基づいてインテル製マイクロプロセッサーおよび 互換マイクロプロセッサー向けに最適化されますが、インテル製マイクロプロセッサーにおいてより優れたパフォーマンス が得られる傾向にあります。 インテル® コンパイラー、関連ライブラリーおよび関連開発ツールは、互換マイクロプロセッサー向けには、インテル製マ イクロプロセッサー向けと同等レベルの最適化が行われない可能性があります。これには、インテル® ストリーミング SIMD 拡張命令 2( インテル® SSE2)、インテル® ストリーミング SIMD 拡張命令 3( インテル® SSE3)、ストリーミング SIMD 拡張命令 3 補足命令 (SSSE3) 命令セットに関連する最適化およびその他の最適化が含まれます。 インテルでは、インテル製ではないマイクロプロセッサーに対して、最適化の提供、機能、効果を保証していません。本 製品のマイクロプロセッサー固有の最適化は、インテル製マイクロプロセッサーでの使用を目的としています。インテルで は、インテル® コンパイラーおよびライブラリーがインテル製マイクロプロセッサーおよび互換マイクロプロセッサーにおい て、優れたパフォーマンスを引き出すのに役立つ選択肢であると信じておりますが、お客様の要件に最適なコンパイラー を選択いただくよう、他のコンパイラーの評価を行うことを推奨しています。インテルでは、あらゆるコンパイラーやライブ ラリーで優れたパフォーマンスが引き出され、お客様のビジネスの成功のお役に立ちたいと願っております。お気づきの 点がございましたら、お知らせください。 改訂 #20110307 33

Diagram based on deck presented in OpenCL BOF at SIGGRAPH 2010 by Neil Trevett, NVIDIA, OpenCL Chair, http://www.khronos.org/developers/library/2010_siggraph_bof_opencl/OpenCL-BOF-Intro-and-Overview_SIGGRAPH-Jul10.pdf
Diagram based on deck presented in OpenCL BOF at SIGGRAPH 2010 by Neil Trevett, NVIDIA, OpenCL Chair, http://www.khronos.org/developers/library/2010_siggraph_bof_opencl/OpenCL-BOF-Intro-and-Overview_SIGGRAPH-Jul10.pdf

参照

関連したドキュメント

 On the Approximability of Budgeted Allocations and Improved Lower Bounds for Submodular Welfare Maximization and GAP, by. Deeparnab Chakrabarty,

of IEEE 51st Annual Symposium on Foundations of Computer Science (FOCS 2010), pp..

情報理工学研究科 情報・通信工学専攻. 2012/7/12

Oracle WebLogic Server の脆弱性 CVE-2019-2725 に関する注 意喚起 ISC BIND 9 に対する複数の脆弱性に関する注意喚起 Confluence Server および Confluence

ビュージスタ GRAN-Gio ビュージスタ GRAN-Block ビュージスタ MULTI- ハードウッド ビュージスタ MULTI- ラティス ビュージスタ MULTI- サガン ビュージスタ

一般社団法人 美栄 日中サービス支援型 グループホーム セレッソ 1 グループホーム セ レッソ 札幌市西区 新築 その他 複合施設

Heat Mass Transfer, Vol.23 1996 ©Tokyo Electric Power Company Holdings, Inc.. All

3 学位の授与に関する事項 4 教育及び研究に関する事項 5 学部学科課程に関する事項 6 学生の入学及び卒業に関する事項 7