提交 c4d9c9b0 编写于 作者: A A. Unique TensorFlower 提交者: TensorFlower Gardener

Add benchmark for Graph -> GraphDef conversion.

Benchmark output:
Run on ** redacted ** (72 X 2993 MHz CPUs); 2018-12-13T11:50:10.199225713-08:00
CPU: Intel Skylake Xeon with HyperThreading (36 cores) dL1:32KB dL2:1024KB dL3:24MB
Benchmark              Time(ns)        CPU(ns)     Iterations
-------------------------------------------------------------
BM_ToGraphDef/10/2         5880           5888         100000
BM_ToGraphDef/64/2        18670          18699          37373
BM_ToGraphDef/512/2      125906         126110           5606
BM_ToGraphDef/4k/2      1331662        1333420            538
BM_ToGraphDef/32k/2    13059699       13086186             51
BM_ToGraphDef/10/4         9929           9947          71281
BM_ToGraphDef/64/4        27190          27235          25837
BM_ToGraphDef/512/4      164695         164936           4245
BM_ToGraphDef/4k/4      1794584        1797493            395
BM_ToGraphDef/32k/4    16604391       16641067             41
BM_ToGraphDef/10/8        18191          18212          38647
BM_ToGraphDef/64/8        45134          45191          15412
BM_ToGraphDef/512/8      327305         327803           2177
BM_ToGraphDef/4k/8      2868544        2872056            250
BM_ToGraphDef/32k/8    25948189       25999957             27
BM_ToGraphDef/10/16       34698          34763          20267
BM_ToGraphDef/64/16       78154          78332           8873
BM_ToGraphDef/512/16     595667         596683           1000
BM_ToGraphDef/4k/16     4867696        4877087            142
BM_ToGraphDef/32k/16   46445400       46518659             15
PiperOrigin-RevId: 225410602
上级 caf5da8c
......@@ -799,5 +799,44 @@ BENCHMARK(BM_GraphCreation)->ArgPair(1 << 9, 16);
BENCHMARK(BM_GraphCreation)->ArgPair(1 << 12, 16);
BENCHMARK(BM_GraphCreation)->ArgPair(1 << 15, 16);
static void BM_ToGraphDef(int iters, int num_nodes, int num_edges_per_node) {
testing::StopTiming();
const GraphDef graph_def = CreateGraphDef(num_nodes, num_edges_per_node);
const auto registry = OpRegistry::Global();
GraphConstructorOptions opts;
// Warmup step.
Graph graph(registry);
TF_CHECK_OK(ConvertGraphDefToGraph(opts, graph_def, &graph));
int64 sum = 0;
testing::StartTiming();
for (int i = 0; i < iters; ++i) {
GraphDef graph_def;
graph.ToGraphDef(&graph_def);
sum += graph_def.node_size();
}
VLOG(1) << sum;
testing::StopTiming();
}
BENCHMARK(BM_ToGraphDef)->ArgPair(10, 2);
BENCHMARK(BM_ToGraphDef)->ArgPair(1 << 6, 2);
BENCHMARK(BM_ToGraphDef)->ArgPair(1 << 9, 2);
BENCHMARK(BM_ToGraphDef)->ArgPair(1 << 12, 2);
BENCHMARK(BM_ToGraphDef)->ArgPair(1 << 15, 2);
BENCHMARK(BM_ToGraphDef)->ArgPair(10, 4);
BENCHMARK(BM_ToGraphDef)->ArgPair(1 << 6, 4);
BENCHMARK(BM_ToGraphDef)->ArgPair(1 << 9, 4);
BENCHMARK(BM_ToGraphDef)->ArgPair(1 << 12, 4);
BENCHMARK(BM_ToGraphDef)->ArgPair(1 << 15, 4);
BENCHMARK(BM_ToGraphDef)->ArgPair(10, 8);
BENCHMARK(BM_ToGraphDef)->ArgPair(1 << 6, 8);
BENCHMARK(BM_ToGraphDef)->ArgPair(1 << 9, 8);
BENCHMARK(BM_ToGraphDef)->ArgPair(1 << 12, 8);
BENCHMARK(BM_ToGraphDef)->ArgPair(1 << 15, 8);
BENCHMARK(BM_ToGraphDef)->ArgPair(10, 16);
BENCHMARK(BM_ToGraphDef)->ArgPair(1 << 6, 16);
BENCHMARK(BM_ToGraphDef)->ArgPair(1 << 9, 16);
BENCHMARK(BM_ToGraphDef)->ArgPair(1 << 12, 16);
BENCHMARK(BM_ToGraphDef)->ArgPair(1 << 15, 16);
} // namespace
} // namespace tensorflow
Markdown is supported
0% .
You are about to add 0 people to the discussion. Proceed with caution.
先完成此消息的编辑!
想要评论请 注册