この記事は、インテルの The Parallel Universe Magazine 26 号に収録されている、さまざまなツールと手法によりマシンラーニングで Python* のパフォーマンスを向上する方法に関する章を抜粋翻訳したものです。
長年にわたり、Java* は開発者に人気のある言語で、エンタープライズ、組込み、IoT (モノのインターネット) 向けアプリケーションを牽引してきました。インテル® VTune™ Amplifier XE の電力およびパフォーマンス・プロファイラー (インテル® ソフトウェア・ツール・スイートに含まれる) は、長い間、Java* や .NET のようなマネージドコードのプロファイルを行ってきました。Python* も、使いやすさとシステムを効率良く統合できることから、人気のプログラミング言語になりました。
この 2 つの異なるプログラミング言語の人気の高まりを受け、これらの言語で開発されたアプリケーションが CPU 性能を効率良く利用できるように、インテル® VTune™ Amplifier XE のプロファイル機能が拡張され、Java* および Python* ベースのアプリケーションに対応しました。ここでは、インテル® VTune™ Amplifier XE を使用して、アプリケーションの振る舞いを詳しく理解します。
インテル® VTune™ Amplifier XE とは?
インテル® VTune™ Amplifier XE は、多くの CPU 時間を費やしているモジュール/プロセス (hotspot) の特定を支援する、パフォーマンスおよび電力プロファイラーです。サンプリングにより、最小限のオーバーヘッドで、マイクロアーキテクチャー・レベルの問題 (例えば、キャッシュミス、ページウォーク、TLB 問題など) を見つけることができます。
アプリケーション・パフォーマンスをプロファイルする理由
アプリケーション・パフォーマンスのプロファイルは、多くの CPU クロックサイクルを費やしているさまざまなコードブロックを特定するのに必要です。この情報は、手動でタイミング API を挿入して取得することもできます。ただし、プロジェクトに多数のモジュールが含まれる場合、手動では問題のあるモジュールの検証と特定に多くの時間がかかります。インテル® VTune™ Amplifier XE の各種プロファイラーは、問題にドリルダウンするのに役立ちます。
インテル® VTune™ Amplifier XE の機能
インテル® VTune™ Amplifier XE には、直感的で使いやすいさまざまな機能があります。
- サンプリング: インストルメンテーションと比べて最小限のオーバーヘッドでプロファイルできます。
- 使いやすいプロファイラー: さまざまなグループ/フィルター/呼び出し元-呼び出し先オプションにより、問題のコード領域を絞り込むことができます。
- 異なるレベルの情報: ソースレベルとアセンブリー・レベルで情報を提供します。
- マイクロアーキテクチャーに関する情報: アプリケーションのマイクロアーキテクチャーに関するさまざまな情報を提供します。
Java* アプリケーションのプロファイル
Java* アプリケーションのプロファイルは、4 つのステップから成ります。
- インテル® VTune™ Amplifier XE プロジェクトを作成します。
- プロファイルするアプリケーション/プロセスを選択します。
- 解析タイプを選択します。
- 結果を収集して、解釈します。
Windows® 上でのインテル® VTune™ Amplifier XE プロジェクトの作成
最初に、amplxe-vars バッチファイルを使用して環境変数を設定します。例えば、インテル® VTune™ Amplifier XE がデフォルトのディレクトリーにインストールされている場合は、次のコマンドを実行します。
C:\[Program Files]\IntelSWTools\VTune Amplifier XE\amplxe-vars.bat
バッチファイルは、製品名とビルド番号を表示します。
次に、インテル® VTune™ Amplifier XE を起動します。スタンドアロン GUI インターフェイスの場合は、amplxe-gui
コマンドを実行します。コマンドライン・インターフェイスの場合は、amplxe-cl
コマンドを実行します。
インテル® VTune™ Amplifier XE プロジェクトを作成します (スタンドアロンの場合のみ)。
- 右上のメニューボタンをクリックして、[New] > [Project] を選択します。
- [Create Project] ダイアログボックスでプロジェクトの名前と場所を指定します。
注: Linux* プラットフォーム上でプロジェクトを新規作成する方法は、「インテル® VTune™ Amplifier XE 2017 for Linux* 入門」 (英語) を参照してください。
プロファイルするアプリケーション/プロセスの選択
[Analysis Target] タブの左ペインでターゲットシステムを選択し、右ペインで解析ターゲットタイプを選択します。次のいずれかを選択できます。- Launch Application: プロファイルするアプリケーションを起動します。
- Attach to Process: すでに実行中のアプリケーションにプロファイラーをアタッチします。
- Profile System: アプリケーションとシステムコールの相互作用を検証します。