6.9 OpenCL モード

OpenCL モードでは、OpenCL コードを視覚的に表現することができます。このモードでは、キャプチャセッション中に各スレッドでどのコマンドが実行されているかが表示され、コマンドの依存関係を探索するためのメカニズムが用意されています。

Streamline™ では、Mali T6/7xx デバイスからの情報を使用してカーネルの依存関係と実行状況が示された OpenCL タイムラインを表示することができます。これは、Mali ライセンスを持つユーザだけが利用できる早期アクセス機能です。詳細については、担当のサポート窓口までお問い合わせ下さい。
OpenCL(Open Computing Language)は、タスクベースおよびデータベースの並列処理を利用してジョブまたはカーネルを並列実行するためのフレームワークです。OpenCL コードの動作を視覚化できるように、 Streamline タイムラインビューには OpenCL モードが用意されています。
図 6-13 タイムラインビューの OpenCL モード
タイムラインビューの OpenCL モード

OpenCL では、コマンドは、キューに追加された後、利用可能なハードウェアデバイス(通常は CPU、GPGPU、または DSP)のいずれかで並列処理されます。キュー内のコマンドは順次実行されますが、他のキュー内のコマンドの実行が完了してから実行されるコマンドも存在します。
コマンド名は、その実行の持続時間ごとに色分けされた領域に表示されます。ビン内に 2 つ以上のコマンドがあり、スペースが十分にある場合、そのビン内のコマンドの数が薄い灰色で表示されます。コマンド間の依存関係は結線で示されます。結線の両端には、依存関係の方向を示す丸いマークが付いています。塗りつぶされた丸が付いたコマンドは、塗りつぶされていない丸が付いたコマンドに依存しています。
キュー内のコマンドの実行間に隙間がある場合があります。次の図では、キュー内に 6 つのコマンドが配置されていますが、隙間ができています。 Streamline では、問題のコマンドをクリックして、関連性のない情報を非表示にし、その依存関係のつながりを表示することによってコマンドが実行されない理由を調べることができます。
図 6-14 OpenCL モードでのコマンド間の隙間
OpenCL モードでのコマンド間の隙間

次の図では、選択されているコマンドが黄色い線で強調表示され、依存するコマンドに結線でつながっています。これを見ると、選択されているコマンドが、別のデバイス上の異なるキュー内に配置されているコマンドの完了を待っていることが隙間の理由であることがわかります。
図 6-15 OpenCL モードでの選択されたコマンド
OpenCL モードでの選択されたコマンド

OpenCL モードのすべてのデータはタブ化された階層として表示されます。OpenCL モードで左側にあるタブのいずれかをクリックすると、そのタブとそれぞれの下位タブを選択できます。例えば、特定のデバイスをクリックすると、 Streamline では、そのデバイスの各キューとそれぞれのキューの[実行][同期]、および[メモリ]の各行が強調表示されます。
ズームアウトまたはスクロールすると、選択されているコマンドがキュー内で待機状態になっている場所が示されます。黄色の線はコマンドがキューに入った地点とキューから出た地点を示します。
図 6-16 OpenCL モードでのズームアウト
OpenCL モードでのズームアウト

OpenCL モードでコマンドの上にマウスポインタを置くと、コマンド名、コマンドの開始時間、開始してからコマンドが起動するまでに要した時間、コマンドの保存期間を示すツールチップが表示されます。
図 6-17 OpenCL モードのツールチップ
OpenCL モードのツールチップ

OpenCL モードのグラフの一番下には、検索およびフィルタフィールドがあります。フィールドに文字列を入力すると、その文字列を含んでいるコマンドのみ表示されるように OpenCL モードが更新されます。
[すべての依存関係を表示]オプションを選択すると、すべてのコマンドの依存関係が、選択されているかいないかに関係なく表示されます。
図 6-18 OpenCL モードでのフィルタ処理
OpenCL モードでのフィルタ処理

非機密扱いPDF file icon PDF 版ARM DUI0482QJ
Copyright © 2010-2014 ARM.All rights reserved.