chrome://跟踪在timeline.json中显示比process_names更多的通道

时间:2017-12-27 02:53:34

标签: google-chrome tensorflow profiling chromium

到目前为止,我假设Chrome Trace Event Profiling Tool chrome://tracing显示的车道数始终与加载文件process_name中定义的timeline.json的数量相匹配。这是针对TensorFlow中记录的时间轴,并导出到timeline.generate_chrome_trace_format()的文件。

我现在面临timeline.json包含3 process_name这样的情况:

{
    "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

在文件中,第3道中的单个操作softmax_cross_entropy_with_logits/Reshape_1不会引用"pid": 3,而是引用"pid": 1

这种不匹配是一种特征(即我是误解事物)还是一种错误?

1 个答案:

答案 0 :(得分:0)

通道的数量基本上只是运行期间发生的最高并行度。通常有数十个线程(使用Eigen库中的默认值)用于内核执行。 tensorflow将节点执行打包成尽可能少的通道,而不是显示所有这些(很多都是空的)。这是执行此操作的function

您还pids someCollection.add(1); someCollection.add(3); someCollection.add(2); 是假的。