2016-04-06 9 views
0

私は以下のthrust :: transform呼び出しを持っています。推力変換のptxカーネルの検出

my_functor *f_1 = new my_functor(); 
thrust::transform(data.begin(), data.end(), data.begin(),*f_1); 

PTXファイルで対応するカーネルを検出したいと思います。しかし、my_functorを含んだ多くのカーネルが、混乱した名前にあります。例 -

_ZN6thrust6system4cuda6detail6detail23launch_closure_by_valueINS2_17for_each_n_detail18for_each_n_closureINS_12zip_iteratorINS_5tupleINS_6detail15normal_iteratorINS_10device_ptrIiEEEESD_NS_9null_typeESE_SE_SE_SE_SE_SE_SE_EEEEjNS9_30device_unary_transform_functorI10my_functorEENS3_20blocked_thread_arrayEEEEEvT_ 

_ZN6thrust6system4cuda6detail6detail23launch_closure_by_valueINS2_17for_each_n_detail18for_each_n_closureINS_12zip_iteratorINS_5tupleINS_6detail15normal_iteratorINS_10device_ptrIiEEEESD_NS_9null_typeESE_SE_SE_SE_SE_SE_SE_EEEElNS9_30device_unary_transform_functorI10my_functorEENS3_20blocked_thread_arrayEEEEEvT_ 

_ZN6thrust6detail15device_functionINS0_30device_unary_transform_functorI10my_functorEEvEC1ERKS4_ 

カーネルが起動され、これらの他のカーネルは何のために

+2

なぜ1つのカーネルだけが起動すると思いますか? – Drop

+0

@Drop私は、単純な算術のために複数のカーネルを起動することは非効率的であり、これらのカーネルのいくつかの命令は非常に似ていると考えました – shailesh

答えて

2

Visual Studioを使用している場合は、CUDAツールキットに付属のNvidia NSIGHT Visual Studio Editionを使用してください。

[Nsight]メニューの[Start Performance Analysis ...]をクリックします。 「実行するための実験」の「活動タイプ」で

  • 、「実験の設定」で「プロファイルCUDAアプリケーション」
  • を選択し、「CUDAソースビューのための情報を収集する」ダニ
  • 「すべて」を選択します「コントロールキャプチャ」では、リストボックス
  • は、「ストップでレポートを開き、」ダニと次にリストボックス

に「CUDAソースビュー」を選択し、「起動」をクリックすると、アプリケーションが完全に実行されるのを待ちます。 Nsightのコンソールに追加の出力が表示されます。

実行後、「CUDAソースビュー」ウィンドウが開きます。 - [表示]リストボックスで[ソースとPTX]を選択 ソースコードと生成されたPTXの対応を見つけることができます。 ソースコード内の行をクリックすると、PTXコードの1つ以上の行が緑色で強調表示されます。

関連する問題