2016-09-19 21 views
0

OpenCLとJOCLを使用してGPU上で並列カーネルを実行しています。gpuでの時間測定の実行と割り当て

1 /作業項目や作業グループの項のカーネルサイズを知るために任意の機能があり、どのようにそれが私のNvidia GPUプラットフォームで実行されます。

私が知りたいですか?

2/GPU/CPUデータ転送なしでカーネルの実行時間を知る可能性がありますか?カーネルを起動する前にJavaツールSystem.currentTimeMillis(); を使用しましたが、データ転送時間が含まれています。

3 /もっと正確に各GPUコアの実行時間を知る可能性はありますか?カーネルで

+0

ありがとうhttp://jocl.org/samples/JOCLEventSample.java – Marco13

+0

で、イベントを使用してカーネルの実行時間を取得する方法を示す専用の例がありますについての十分な情報を与えますそれは有用です –

答えて

0

1)、

get_global_size(0) gives number of items in x dimension 
get_global_size(1) gives number of item arrays in y dimension 
get_global_size(2) gives number of item matrices in z dimension 

総数は、それらの乗算であるが、カーネルが起動された場合にのみ、1次元ののみ最初の機能は十分です。

get_local_size(0 or 1 or 2); 

は、グループ内のアイテムではなく、アイテム全体で同じものを示します。

get_num_groups (0 or 1 or 2) 

は、類似しているが、総グループ数が多い。

http://www.jocl.org/cloth/docs/doc-utils/org/jocl/utils/Events.html

computeExecutionTimeMs(org.jocl.cl_eventイベント) 計算実行時間:寸法の

数は、ホストコードから

int dims=get_work_dim() 

2)イベントベースのパフォーマンスクエリから取得されミリ秒単位で指定します。

1)、2)、3)プロファイラ

は全て「各コア」を除いて表示します(ただし、すべての回で同じコアにマップされないことがあり、「レーン」の情報を提供しますが、あなたが見ることができることができるものをAシングルスレッドがやっていた)部分。 https://developer.nvidia.com/nvidia-nsight-visual-studio-editionビジュアルとテーブルは、ボトルネックやカーネルのホットスポット

+0

ありがとう、私はプロファイラについての質問が、私は日食でそれを使用することはできますか?リンクでは、彼らはVisual Studioだけを引用した。 –

+0

これがプロセスに「接続」されている場合、jvmやjar実行プロセスに関連するものに接続する機会があります。おそらく、Visual Studioからコマンドラインを実行している何者かがうまくいくかもしれません。 –

関連する問題