OleeHu opened a new issue, #17008:
URL: https://github.com/apache/tvm/issues/17008

   I am encountering linker errors when trying to build my project using CMake 
with PyTorch. The build process fails with several undefined reference errors 
related to PyTorch symbols. Below are the details of the error messages:
   ```
   /usr/bin/ld: ../../libtvm_runtime.a(libtorch_runtime.cc.o): in function 
`tvm::runtime::contrib::run_torch_module(torch::jit::Module*, 
tvm::runtime::TVMArgs, tvm::runtime::TVMRetValue*)':
   libtorch_runtime.cc:(.text+0x10c3): undefined reference to 
`torch::jit::Method::operator()(std::vector<c10::IValue, 
std::allocator<c10::IValue> >, 
std::unordered_map<std::__cxx11::basic_string<char, std::char_traits<char>, 
std::allocator<char> >, c10::IValue, 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, c10::IValue> > > const&) 
const'
   /usr/bin/ld: ../../libtvm_runtime.a(libtorch_runtime.cc.o): in function 
`tvm::runtime::contrib::TorchModuleNode::GetSource(tvm::runtime::String 
const&)':
   
libtorch_runtime.cc:(.text._ZN3tvm7runtime7contrib15TorchModuleNode9GetSourceERKNS0_6StringE[_ZN3tvm7runtime7contrib15TorchModuleNode9GetSourceERKNS0_6StringE]+0x41):
 undefined reference to `torch::jit::Module::dump_to_str[abi:cxx11](bool, bool, 
bool) const'
   /usr/bin/ld: ../../libtvm_runtime.a(libtorch_runtime.cc.o): in function 
`tvm::runtime::contrib::TorchModuleNode::SaveToBinary(dmlc::Stream*)':
   
libtorch_runtime.cc:(.text._ZN3tvm7runtime7contrib15TorchModuleNode12SaveToBinaryEPN4dmlc6StreamE[_ZN3tvm7runtime7contrib15TorchModuleNode12SaveToBinaryEPN4dmlc6StreamE]+0x2be):
 undefined reference to `torch::jit::Module::save(std::ostream&, 
std::unordered_map<std::__cxx11::basic_string<char, std::char_traits<char>, 
std::allocator<char> >, std::__cxx11::basic_string<char, 
std::char_traits<char>, std::allocator<char> >, 
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, 
std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > 
> > > const&) const'
   /usr/bin/ld: ../../libtvm_runtime.a(libtorch_runtime.cc.o): in function 
`torch::jit::Object::get_method(std::__cxx11::basic_string<char, 
std::char_traits<char>, std::allocator<char> > const&) const':
   
libtorch_runtime.cc:(.text._ZNK5torch3jit6Object10get_methodERKNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEE[_ZNK5torch3jit6Object10get_methodERKNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEE]+0x35):
 undefined reference to 
`torch::jit::Object::find_method(std::__cxx11::basic_string<char, 
std::char_traits<char>, std::allocator<char> > const&) const'
   /usr/bin/ld: 
libtorch_runtime.cc:(.text._ZNK5torch3jit6Object10get_methodERKNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEE[_ZNK5torch3jit6Object10get_methodERKNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEE]+0x323):
 undefined reference to `c10::detail::torchCheckFail(char const*, char const*, 
unsigned int, std::__cxx11::basic_string<char, std::char_traits<char>, 
std::allocator<char> > const&)'
   collect2: error: ld returned 1 exit status
   make[2]: *** [apps/cpp_rtvm/CMakeFiles/rtvm.dir/build.make:142: rtvm] Error 1
   make[1]: *** [CMakeFiles/Makefile2:1547: 
apps/cpp_rtvm/CMakeFiles/rtvm.dir/all] Error 2
   make[1]: *** Waiting for unfinished jobs....
   ```
   
   During the CMake configuration, the following warnings are displayed:
   
   ```
   CMake Warning at 
tvm/lib/python3.9/site-packages/torch/share/cmake/Torch/TorchConfig.cmake:22 
(message):
     static library kineto_LIBRARY-NOTFOUND not found.
   Call Stack (most recent call first):
     
tvm/lib/python3.9/site-packages/torch/share/cmake/Torch/TorchConfig.cmake:127 
(append_torchlib_if_found)
     cmake/modules/contrib/LibTorch.cmake:19 (find_package)
     CMakeLists.txt:576 (include)
   
   CMake Warning (dev) at cmake/modules/contrib/PT_TVMDSOOP.cmake:19 
(find_package):
     Policy CMP0148 is not set: The FindPythonInterp and FindPythonLibs modules
     are removed.  Run "cmake --help-policy CMP0148" for policy details.  Use
     the cmake_policy command to set the policy and suppress this warning.
   
   Call Stack (most recent call first):
     CMakeLists.txt:580 (include)
   This warning is for project developers.  Use -Wno-dev to suppress it.
   ```
   
   Here are my configuration options
   ```
   --   ---------------- Summary ----------------
   --   CMake version         : 3.28.3
   --   CMake executable      : /usr/bin/cmake
   --   Generator             : Unix Makefiles
   --   System                : Linux
   --   C++ compiler          : /usr/bin/c++
   --   C++ compiler ID       : GNU
   --   C++ compiler version  : 13.2.0
   --   CXX flags             : -std=c++17 -faligned-new -O2 -Wall -fPIC 
   --   CXX launcher          : 
   --   Linker flags          : 
   --   Build type            : 
   --   Compile definitions   : 
TVM_INDEX_DEFAULT_I64=1;TVM_KALLOC_ALIGNMENT=64;TVM_THREADPOOL_USE_OPENMP=0;DMLC_USE_FOPEN64=0;NDEBUG=1;TVM_USE_CMSISNN;USE_MICRO_STANDALONE_RUNTIME=1
   --   Options:
   --    BACKTRACE_ON_SEGFAULT              : OFF
   --    BUILD_DUMMY_LIBTVM                 : OFF
   --    BUILD_STATIC_RUNTIME               : ON
   --    COMPILER_RT_PATH                   : 3rdparty/compiler-rt
   --    DLPACK_PATH                        : 3rdparty/dlpack/include
   --    DMLC_PATH                          : 3rdparty/dmlc-core/include
   --    HIDE_PRIVATE_SYMBOLS               : OFF
   --    INDEX_DEFAULT_I64                  : ON
   --    INSTALL_DEV                        : OFF
   --    PICOJSON_PATH                      : 3rdparty/picojson
   --    RANG_PATH                          : 3rdparty/rang/include
   --    ROCM_PATH                          : /opt/rocm
   --    SUMMARIZE                          : ON
   --    TVM_DEBUG_WITH_ABI_CHANGE          : OFF
   --    TVM_LOG_BEFORE_THROW               : OFF
   --    USE_ALTERNATIVE_LINKER             : AUTO
   --    USE_AMX                            : OFF
   --    USE_AOT_EXECUTOR                   : ON
   --    USE_ARM_COMPUTE_LIB                : OFF
   --    USE_ARM_COMPUTE_LIB_GRAPH_EXECUTOR : OFF
   --    USE_BLAS                           : none
   --    USE_BNNS                           : OFF
   --    USE_BYODT_POSIT                    : OFF
   --    USE_CCACHE                         : AUTO
   --    USE_CLML                           : OFF
   --    USE_CLML_GRAPH_EXECUTOR            : OFF
   --    USE_CMSISNN                        : ON
   --    USE_COREML                         : OFF
   --    USE_CPP_RPC                        : OFF
   --    USE_CUBLAS                         : OFF
   --    USE_CUDA                           : OFF
   --    USE_CUDNN                          : OFF
   --    USE_CURAND                         : OFF
   --    USE_CUSTOM_LOGGING                 : OFF
   --    USE_CUTLASS                        : OFF
   --    USE_DNNL                           : OFF
   --    USE_ETHOSN                         : OFF
   --    USE_FALLBACK_STL_MAP               : OFF
   --    USE_GRAPH_EXECUTOR                 : ON
   --    USE_GRAPH_EXECUTOR_CUDA_GRAPH      : OFF
   --    USE_GTEST                          : AUTO
   --    USE_HEXAGON                        : OFF
   --    USE_HEXAGON_EXTERNAL_LIBS          : OFF
   --    USE_HEXAGON_GTEST                  : /path/to/hexagon/gtest
   --    USE_HEXAGON_RPC                    : OFF
   --    USE_HEXAGON_SDK                    : /path/to/sdk
   --    USE_IOS_RPC                        : OFF
   --    USE_KHRONOS_SPIRV                  : OFF
   --    USE_LIBBACKTRACE                   : AUTO
   --    USE_LIBTORCH                       : 
/home/oleehu/tvm/tvm/lib/python3.9/site-packages/torch
   --    USE_LLVM                           : ON
   --    USE_METAL                          : OFF
   --    USE_MICRO                          : ON
   --    USE_MICRO_STANDALONE_RUNTIME       : ON
   --    USE_MIOPEN                         : OFF
   --    USE_MKL                            : OFF
   --    USE_MLIR                           : OFF
   --    USE_MRVL                           : OFF
   --    USE_MSC                            : OFF
   --    USE_MSCCL                          : OFF
   --    USE_MSVC_MT                        : OFF
   --    USE_NCCL                           : OFF
   --    USE_NNPACK                         : OFF
   --    USE_NVTX                           : OFF
   --    USE_OPENCL                         : OFF
   --    USE_OPENCL_ENABLE_HOST_PTR         : OFF
   --    USE_OPENCL_GTEST                   : /path/to/opencl/gtest
   --    USE_OPENMP                         : none
   --    USE_PAPI                           : OFF
   --    USE_PROFILER                       : ON
   --    USE_PT_TVMDSOOP                    : ON
   --    USE_RANDOM                         : ON
   --    USE_RCCL                           : OFF
   --    USE_RELAY_DEBUG                    : ON
   --    USE_ROCBLAS                        : OFF
   --    USE_ROCM                           : OFF
   --    USE_RPC                            : ON
   --    USE_RTTI                           : ON
   --    USE_RUST_EXT                       : OFF
   --    USE_SORT                           : ON
   --    USE_SPIRV_KHR_INTEGER_DOT_PRODUCT  : OFF
   --    USE_STACKVM_RUNTIME                : ON
   --    USE_TARGET_ONNX                    : ON
   --    USE_TENSORFLOW_PATH                : 
/home/oleehu/tvm/tvm/lib/python3.9/site-packages/tensorflow
   --    USE_TENSORRT_CODEGEN               : OFF
   --    USE_TENSORRT_RUNTIME               : OFF
   --    USE_TFLITE                         : OFF
   --    USE_TF_TVMDSOOP                    : OFF
   --    USE_THREADS                        : ON
   --    USE_THRUST                         : OFF
   --    USE_UMA                            : OFF
   --    USE_VERILATOR                      : OFF
   --    USE_VITIS_AI                       : OFF
   --    USE_VULKAN                         : OFF
   -- Build without FlashInfer
   ```
   It seems that the "kineto" library is not available in the Linux version of 
Torch.
   
   System Information
   OS: Ubuntu 22.04
   CMake Version: 3.28.3
   GCC Version: 13.2.0
   PyTorch Version: 1.17 (installed via pip,also tried version 2.2.0)
   Python Version: 3.9.16 (within a virtual environment)
   
   The linker errors indicate that certain PyTorch functions are not found. 
This typically happens when the necessary libraries are not linked correctly or 
there is a mismatch in the ABI (Application Binary Interface).
   
   
   Any guidance or suggestions would be greatly appreciated. Thank you!


-- 
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.

To unsubscribe, e-mail: [email protected]

For queries about this service, please contact Infrastructure at:
[email protected]

Reply via email to