2017-05-04 5 views
0

OSとドライバがOpenCLカーネルのタイミングにどのような影響を与えますか?私たちが使用していますいずれかのOpenCLカーネルの実行時間を測定するため

の1- CPUタイマ ..しかし、私たちは、OCL機能がを非ブロックされていることを考慮する必要があるので、私たちはclFinish()を使用する必要があります完全なスループットを達成するためのルーチン。

2- GPUタイマ ..そのいずれかclCreateCommandQueue()又はclSetCommandQueueProperty()ルーチンのプロパティ引数にCL_QUEUE_PROFILING_ENABLEフラグを設定するとともにclGetEventProfilingInfo()ルーチンを使用しています。

オペレーティングシステムとドライバのバージョンは、カーネルの実行時間を測定するために使用するタイマの精度にどのように影響しますか?

私が知っていることは、少なくともカーネルコールでデバイスをウォーミングアップして、OpenCLリソース割り当ての待ち時間を最初から吸収する必要があることです。

答えて

0

1-ノンブロッキングカーネルの起動、ドライバに費やす時間、CPUのタイミングだけを使用すると正確なタイミングが得られません。また、OSの観点からのコンテキスト切り替えによって異なることもあります。 2つのGPUタイマは、GPUハードウェアカウンタに依存します。イベントを使用してカウンターを読むと、最も正確なタイミングを得ることができます。 CPUまたはOSはGPUハードウェアカウンタに干渉しないので、その影響はありません。影響を受ける唯一のケースは、ハードウェアカウンタの処理方法の場合のドライバです。

ウォーミングアップ部分は、データ転送とメモリ割り当てのためのもので、ハードウェアカウンタの動作には影響しません。

関連する問題