Compared two similar Bert models running on CPU with TVM, one is PyTorch model,
the other is MXNet model. Due to the large performance difference, I did some
profiling. The result shows the run time of the same operation(matmul) with
same workload varies big.
ENV:
1. TVM: build with MKL.
2. Intel CPU
3. OpenMP: `KMP_AFFINITY=compact,1,0 OMP_NUM_THREADS=24`
Model inference time:
# mxnet model
TVM Mean inference time: 5.53 ms
# pytorch model
TVM Mean inference time: 23.05 ms
Profiling result:
# MXNet model
Node Name Ops. Time(us) Time(%)
Shape. Inputs Outputs
---------
fused_nn_dense_add_15 fused_nn_dense_add_1 308.926 5.58
(32, 768) 3 1
fused_nn_dense_add_11 fused_nn_dense_add_1 307.277 5.551
(32, 768) 3 1
# PyTorch Model
Node Name Ops. Time(us) Time(%)
Shape. Inputs Outputs
---------
fused_nn_dense_add_3 fused_nn_dense_add_3 1783.75 7.631
(32, 768) 3 1
fused_nn_dense_add_31 fused_nn_dense_add_3 1593.08 6.815
(32, 768) 3 1
IR code (same between PyTorch model and MXNet model)
attr [0] "compute_scope" = "fused_nn_dense_add_3_compute_";
attr [C: handle] "storage_scope" = "global";
allocate(C, float32, [24576]) {
attr [0] "extern_scope" = 0;
@tir.tvm_call_packed("tvm.contrib.cblas.matmul",
@tir.tvm_stack_make_array(placeholder, @tir.tvm_stack_make_shape(32, 3072,
dtype=handle), 0, 2, 0f32, 0, dtype=handle),
@tir.tvm_stack_make_array(placeholder_1, @tir.tvm_stack_make_shape(768, 3072,
dtype=handle), 0, 2, 0f32, 0, dtype=handle), @tir.tvm_stack_make_array(C,
@tir.tvm_stack_make_shape(32, 768, dtype=handle), 0, 2, 0f32, 0, dtype=handle),
False, True, dtype=int32)
for (ax0: int32, 0, 32) "parallel" {
for (ax1: int32, 0, 768) {
T_add[((ax0*768) + ax1)] = ((float32*)C[((ax0*768) + ax1)] +
(float32*)placeholder_2[ax1])
}
}
However, when setting `OMP_NUM_THREADS=1` the model inference time is same,
seems it's a problem with multiple threads.
What may cause the difference?
Refer to: https://github.com/apache/incubator-tvm/issues/6354
---
[Visit
Topic](https://discuss.tvm.ai/t/performance-of-same-op-and-workload-in-different-model-varies-differently/7766/1)
to respond.
You are receiving this because you enabled mailing list mode.
To unsubscribe from these emails, [click
here](https://discuss.tvm.ai/email/unsubscribe/1f49529833bf95b6136dfa3765c338c333e41f2eab8e1d07c23236576a59fb62).