Hi, I try to tune the matmul op in BERT model, but I encountered segmentation fault when I run the following line
tasks = autotvm.task.extract_from_program(sym["main"], target=target, params=params, ops=(relay.op.nn.batch_matmul,))
And using gdb it shows following message
#0 0x00007fffe73872cf in tvm::relay::ExprFunctor<void (tvm::RelayExpr const&)>::VisitExpr(tvm::RelayExpr const&) () from /media/disk/DL/tvm/build/libtvm.so
#1 0x00007fffe751e2ab in tvm::relay::ExprVisitor::VisitExpr(tvm::RelayExpr const&) () from /media/disk/DL/tvm/build/libtvm.so
#2 0x00007fffe74755ea in tvm::relay::WellFormedChecker::VisitExpr(tvm::RelayExpr const&) () from /media/disk/DL/tvm/build/libtvm.so
#3 0x00007fffe751aee0 in tvm::relay::ExprVisitor::VisitExpr_(tvm::relay::CallNode const*) () from /media/disk/DL/tvm/build/libtvm.so
#4 0x00007fffe73872a2 in tvm::relay::ExprFunctor<void (tvm::RelayExpr const&)>::VisitExpr(tvm::RelayExpr const&) () from /media/disk/DL/tvm/build/libtvm.so
#5 0x00007fffe751e2ab in tvm::relay::ExprVisitor::VisitExpr(tvm::RelayExpr const&) () from /media/disk/DL/tvm/build/libtvm.so
#6 0x00007fffe747654e in tvm::relay::WellFormedChecker::VisitExpr_(tvm::relay::FunctionNode const*) () from /media/disk/DL/tvm/build/libtvm.so
#7 0x00007fffe73872a2 in tvm::relay::ExprFunctor<void (tvm::RelayExpr const&)>::VisitExpr(tvm::RelayExpr const&) () from /media/disk/DL/tvm/build/libtvm.so
#8 0x00007fffe751e2ab in tvm::relay::ExprVisitor::VisitExpr(tvm::RelayExpr const&) () from /media/disk/DL/tvm/build/libtvm.so
#9 0x00007fffe74755ea in tvm::relay::WellFormedChecker::VisitExpr(tvm::RelayExpr const&) () from /media/disk/DL/tvm/build/libtvm.so
#10 0x00007fffe751aee0 in tvm::relay::ExprVisitor::VisitExpr_(tvm::relay::CallNode const*) () from /media/disk/DL/tvm/build/libtvm.so
I also see that this repo https://github.com/icemelon9/bert-benchmark
provides the autotvm log for matmul on AVX2.0, so although the author didn’t provide the code, tuning BERT should not have problem.