YongtaoHuang1994 opened a new issue #8232: URL: https://github.com/apache/tvm/issues/8232
**OS**: ubuntu 18.04 **NVIDIA GPU**: GM107GL [Quadro K620] First, the inference code can run in the on the physical machine (no docker env) ``` (tvm-build) root@hyongtao-Precision-Tower-5810:/home/hyongtao/build_docker/tvm# python3 tune_relay_cuda_test.py Extract tasks... One or more operators have not been tuned. Please tune your model for better performance. Use DEBUG logging level to see more details. Evaluate inference time cost... Mean inference time (std dev): 11.10 ms (0.34 ms) (tvm-build) root@hyongtao-Precision-Tower-5810:/home/hyongtao/build_docker/tvm# ``` Then, we wanna test TVM in docker environment. I have build the docker as https://github.com/apache/tvm/tree/main/docker ``` $ ./docker/build.sh ci_gpu make -j$(nproc) $ ./docker/bash.sh ci_gpu ``` Docker building and runing are both successful. But when I infer the resnet-18 **_inside_** the docker 'ci_gpu', I got these error: ``` root@hyongtao-Precision-Tower-5810:~# python3 tune_relay_cuda_test.py Extract tasks... Traceback (most recent call last): File "tune_relay_cuda_test.py", line 91, in <module> tune_and_evaluate() File "tune_relay_cuda_test.py", line 72, in tune_and_evaluate lib = relay.build_module.build(mod, target=target, params=params) File "/workspace/python/tvm/relay/build_module.py", line 333, in build mod=ir_mod, target=target, params=params, executor=executor File "/workspace/python/tvm/relay/build_module.py", line 148, in build self._build(mod, target, target_host, executor) File "/workspace/python/tvm/_ffi/_ctypes/packed_func.py", line 237, in __call__ raise get_last_ffi_error() tvm._ffi.base.TVMError: Traceback (most recent call last): 53: TVMFuncCall 52: std::_Function_handler<void (tvm::runtime::TVMArgs, tvm::runtime::TVMRetValue*), tvm::relay::backend::RelayBuildModule::GetFunction(std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const&, tvm::runtime::ObjectPtr<tvm::runtime::Object> const&)::{lambda(tvm::runtime::TVMArgs, tvm::runtime::TVMRetValue*)#3}>::_M_invoke(std::_Any_data const&, tvm::runtime::TVMArgs&&, tvm::runtime::TVMRetValue*&&) 51: tvm::relay::backend::RelayBuildModule::BuildRelay(tvm::IRModule, std::unordered_map<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, tvm::runtime::NDArray, std::hash<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > >, std::equal_to<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > >, std::allocator<std::pair<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const, tvm::runtime::NDArray> > > const&) 50: tvm::relay::backend::RelayBuildModule::Optimize(tvm::IRModule, tvm::runtime::Map<tvm::Integer, tvm::Target, void, void> const&, std::unordered_map<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, tvm::runtime::NDArray, std::hash<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > >, std::equal_to<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > >, std::allocator<std::pair<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const, tvm::runtime::NDArray> > > const&) 49: tvm::transform::Pass::operator()(tvm::IRModule) const 48: tvm::transform::Pass::operator()(tvm::IRModule, tvm::transform::PassContext const&) const 47: tvm::transform::SequentialNode::operator()(tvm::IRModule, tvm::transform::PassContext const&) const 46: tvm::transform::Pass::operator()(tvm::IRModule, tvm::transform::PassContext const&) const 45: tvm::relay::transform::FunctionPassNode::operator()(tvm::IRModule, tvm::transform::PassContext const&) const 44: std::_Function_handler<void (tvm::runtime::TVMArgs, tvm::runtime::TVMRetValue*), tvm::runtime::TypedPackedFunc<tvm::relay::Function (tvm::relay::Function, tvm::IRModule, tvm::transform::PassContext)>::AssignTypedLambda<tvm::relay::transform::DynamicToStatic()::{lambda(tvm::relay::Function, tvm::IRModule, tvm::transform::PassContext)#1}>(tvm::relay::transform::DynamicToStatic()::{lambda(tvm::relay::Function, tvm::IRModule, tvm::transform::PassContext)#1})::{lambda(tvm::runtime::TVMArgs const&, tvm::runtime::TVMRetValue*)#1}>::_M_invoke(std::_Any_data const&, tvm::runtime::TVMArgs&&, tvm::runtime::TVMRetValue*&&) 43: tvm::relay::DynamicToStatic(tvm::relay::Function, tvm::IRModule) 42: tvm::relay::DynamicToStaticMutator::PrepareInput(tvm::RelayExpr const&) 41: tvm::transform::Pass::operator()(tvm::IRModule) const 40: tvm::transform::Pass::operator()(tvm::IRModule, tvm::transform::PassContext const&) const 39: tvm::relay::transform::FunctionPassNode::operator()(tvm::IRModule, tvm::transform::PassContext const&) const 38: std::_Function_handler<void (tvm::runtime::TVMArgs, tvm::runtime::TVMRetValue*), tvm::runtime::TypedPackedFunc<tvm::relay::Function (tvm::relay::Function, tvm::IRModule, tvm::transform::PassContext)>::AssignTypedLambda<tvm::relay::transform::FoldConstant()::{lambda(tvm::relay::Function, tvm::IRModule, tvm::transform::PassContext)#1}>(tvm::relay::transform::FoldConstant()::{lambda(tvm::relay::Function, tvm::IRModule, tvm::transform::PassContext)#1})::{lambda(tvm::runtime::TVMArgs const&, tvm::runtime::TVMRetValue*)#1}>::_M_invoke(std::_Any_data const&, tvm::runtime::TVMArgs&&, tvm::runtime::TVMRetValue*&&) 37: tvm::relay::FoldConstant(tvm::RelayExpr const&, tvm::IRModule const&) 36: tvm::relay::MixedModeMutator::VisitExpr(tvm::RelayExpr const&) 35: tvm::relay::MixedModeMutator::VisitLeaf(tvm::RelayExpr const&) 34: _ZN3tvm5relay16MixedModeMutator17DispatchVisitExprERKNS_9Re 33: tvm::relay::ExprMutator::VisitExpr(tvm::RelayExpr const&) 32: tvm::relay::ExprFunctor<tvm::RelayExpr (tvm::RelayExpr const&)>::VisitExpr(tvm::RelayExpr const&) 31: _ZZN3tvm5relay11ExprFunctorIFNS_9RelayExprERKS2_EE10InitVTableEvENUlR 30: tvm::relay::ConstantFolder::VisitExpr_(tvm::relay::FunctionNode const*) 29: tvm::relay::ExprMutator::VisitExpr_(tvm::relay::FunctionNode const*) 28: tvm::relay::MixedModeMutator::VisitExpr(tvm::RelayExpr const&) 27: tvm::relay::MixedModeMutator::VisitLeaf(tvm::RelayExpr const&) 26: _ZN3tvm5relay16MixedModeMutator17DispatchVisitExprERKNS_9Re 25: tvm::relay::ExprMutator::VisitExpr(tvm::RelayExpr const&) 24: tvm::relay::ExprFunctor<tvm::RelayExpr (tvm::RelayExpr const&)>::VisitExpr(tvm::RelayExpr const&) 23: _ZZN3tvm5relay11ExprFunctorIFNS_9RelayExprERKS2_EE10InitVTableEvENUlR 22: tvm::relay::MixedModeMutator::VisitExpr_(tvm::relay::CallNode const*) 21: tvm::relay::ConstantFolder::Rewrite_(tvm::relay::CallNode const*, tvm::RelayExpr const&) 20: tvm::relay::ConstantFolder::ConstEvaluate(tvm::RelayExpr) 19: std::_Function_handler<void (tvm::runtime::TVMArgs, tvm::runtime::TVMRetValue*), tvm::runtime::TypedPackedFunc<tvm::runtime::ObjectRef (tvm::RelayExpr)>::AssignTypedLambda<tvm::relay::CreateInterpreter(tvm::IRModule, DLDevice, tvm::Target)::{lambda(tvm::RelayExpr)#1}>(tvm::relay::CreateInterpreter(tvm::IRModule, DLDevice, tvm::Target)::{lambda(tvm::RelayExpr)#1})::{lambda(tvm::runtime::TVMArgs const&, tvm::runtime::TVMRetValue*)#1}>::_M_invoke(std::_Any_data const&, tvm::runtime::TVMArgs&&, tvm::runtime::TVMRetValue*&&) 18: tvm::relay::ExprFunctor<tvm::runtime::ObjectRef (tvm::RelayExpr const&)>::VisitExpr(tvm::RelayExpr const&) 17: _ZZN3tvm5relay11ExprFunctorIFNS_7runtime9ObjectRefERKNS_9RelayExprEEE 16: tvm::relay::Interpreter::VisitExpr_(tvm::relay::LetNode const*) 15: tvm::relay::ExprFunctor<tvm::runtime::ObjectRef (tvm::RelayExpr const&)>::VisitExpr(tvm::RelayExpr const&) 14: _ZZN3tvm5relay11ExprFunctorIFNS_7runtime9ObjectRefERKNS_9RelayExprEEE 13: tvm::relay::Interpreter::VisitExpr_(tvm::relay::LetNode const*) 12: tvm::relay::ExprFunctor<tvm::runtime::ObjectRef (tvm::RelayExpr const&)>::VisitExpr(tvm::RelayExpr const&) 11: _ZZN3tvm5relay11ExprFunctorIFNS_7runtime9ObjectRefERKNS_9RelayExprEEE 10: tvm::relay::Interpreter::VisitExpr_(tvm::relay::LetNode const*) 9: tvm::relay::ExprFunctor<tvm::runtime::ObjectRef (tvm::RelayExpr const&)>::VisitExpr(tvm::RelayExpr const&) 8: _ZZN3tvm5relay11ExprFunctorIFNS_7runtime9ObjectRefERKNS_9RelayExprEEE 7: tvm::relay::Interpreter::VisitExpr_(tvm::relay::LetNode const*) 6: tvm::relay::ExprFunctor<tvm::runtime::ObjectRef (tvm::RelayExpr const&)>::VisitExpr(tvm::RelayExpr const&) 5: _ZZN3tvm5relay11ExprFunctorIFNS_7runtime9ObjectRefERKNS_9RelayExprEEE 4: tvm::relay::Interpreter::VisitExpr_(tvm::relay::CallNode const*) 3: tvm::relay::Interpreter::Invoke(tvm::relay::InterpreterClosure const&, tvm::runtime::Array<tvm::runtime::ObjectRef, void> const&, tvm::relay::Var const&) 2: tvm::relay::Interpreter::InvokePrimitiveOp(tvm::relay::Function const&, tvm::runtime::Array<tvm::runtime::ObjectRef, void> const&) 1: tvm::relay::CompileEngineImpl::JIT(tvm::relay::CCacheKey const&) 0: std::_Function_handler<void (tvm::runtime::TVMArgs, tvm::runtime::TVMRetValue*), TVMFuncCreateFromCFunc::{lambda(tvm::runtime::TVMArgs, tvm::runtime::TVMRetValue*)#2}>::_M_invoke(std::_Any_data const&, tvm::runtime::TVMArgs&&, tvm::runtime::TVMRetValue*&&) File "/workspace/python/tvm/_ffi/_ctypes/packed_func.py", line 81, in cfun rv = local_pyfunc(*pyargs) File "/workspace/python/tvm/relay/backend/_backend.py", line 84, in build return tvm.driver.build(mod, target=target) File "/workspace/python/tvm/driver/build_module.py", line 473, in build rt_mod_host = codegen.build_module(mod_host_all, target_host) File "/workspace/python/tvm/target/codegen.py", line 39, in build_module return _ffi_api.Build(mod, target) File "/workspace/python/tvm/_ffi/_ctypes/packed_func.py", line 237, in __call__ raise get_last_ffi_error() 2: TVMFuncCall 1: tvm::runtime::TypedPackedFunc<tvm::runtime::Module (tvm::IRModule, tvm::Target)>::AssignTypedLambda<tvm::runtime::Module (*)(tvm::IRModule, tvm::Target)>(tvm::runtime::Module (*)(tvm::IRModule, tvm::Target), std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >)::{lambda(tvm::runtime::TVMArgs const&, tvm::runtime::TVMRetValue*)#1}::operator()(tvm::runtime::TVMArgs const&, tvm::runtime::TVMRetValue*) const 0: tvm::codegen::Build(tvm::IRModule, tvm::Target) File "/workspace/src/target/codegen.cc", line 53 TVMError: --------------------------------------------------------------- An error occurred during the execution of TVM. For more information, please see: https://tvm.apache.org/docs/errors.html --------------------------------------------------------------- Check failed: (bf != nullptr) is false: target.build.llvm is not enabled root@hyongtao-Precision-Tower-5810:~# ``` Could you help me solve the problem? Thanks a lot. -- This is an automated message from the Apache Git Service. To respond to the message, please log on to GitHub and use the URL above to go to the specific comment. For queries about this service, please contact Infrastructure at: us...@infra.apache.org