2017-12-27 22 views
0

にこれまでのところ、私はクロームTrace Event Profiling Toolchrome://tracingで表示されるレーンの数は常にtimeline.jsonのようなロードされたファイルに定義されてprocess_name Sの数が一致していることを前提としているprocess_names以上のレーンを表示するトレース。これはTensorFlowに記録され、timeline.generate_chrome_trace_format()でファイルにエクスポートされたタイムライン用です。ツールが表示され、一方、クローム:// timeline.json

{ 
    "name": "process_name", 
    "args": { "name": "Allocators" }, 
    "ph": "M", "pid": 0 
}, 
{ 
    "name": "process_name", 
    "args": { "name": "/job:localhost/replica:0/task:0/device:CPU:0 Compute" }, 
    "ph": "M", "pid": 1 
}, 
{ 
    "name": "process_name", 
    "args": { "name": "/job:localhost/replica:0/task:0/device:CPU:0 Tensors" }, 
    "ph": "M", "pid": 2 
}, 

ような4レーン:

enter image description here

、ファイル内の単一の操作

は、私は今timeline.jsonは3つのprocess_nameこのようなSが含まれている状況に直面しますレーン3のsoftmax_cross_entropy_with_logits/Reshape_1"pid": 3ではなく、"pid": 1である。

この不一致は機能ですか(誤解していますか)、またはバグですか?

答えて

0

基本的に、レーン数は、実行中に発生した最高レベルの並列処理です。通常、カーネルの実行には数十のスレッド(Eigenライブラリのデフォルトを使用)が使用されます。それらのすべて(完全に空のものが多い)を表示する代わりに、tensorflowはノードの実行を可能な限り少ないレーンにまとめます。ここにはfunctionがあります。

またseeでもpidsは偽物です。