tvm icon indicating copy to clipboard operation
tvm copied to clipboard

import torch_tvm error

Open mowayao opened this issue 5 years ago • 5 comments

python setup.py test

output:

========================================================================================================= test session starts ========================================================================================================= platform linux -- Python 3.7.4, pytest-5.3.2, py-1.8.1, pluggy-0.13.1 rootdir: /tvm, inifile: setup.cfg, testpaths: test collected 0 items / 3 errors

=============================================================================================================== ERRORS ================================================================================================================ _________________________________________________________________________________________________ ERROR collecting test/test_core.py __________________________________________________________________________________________________ ImportError while importing test module '/tvm/test/test_core.py'. Hint: make sure your test modules/packages have valid Python names. Traceback: test/test_core.py:2: in from test.util import TVMTest test/util.py:12: in import torch_tvm torch_tvm/init.py:9: in from ._torch_tvm import * E ImportError: /tvm/torch_tvm/_torch_tvm.cpython-37m-x86_64-linux-gnu.so: undefined symbol: ZN5torch3jit16SubgraphRewriter22RegisterRewritePatternERKNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEES9 ________________________________________________________________________________________________ ERROR collecting test/test_models.py _________________________________________________________________________________________________ ImportError while importing test module '/tvm/test/test_models.py'. Hint: make sure your test modules/packages have valid Python names. Traceback: test/test_models.py:6: in import torch_tvm torch_tvm/init.py:9: in from ._torch_tvm import * E ImportError: /tvm/torch_tvm/_torch_tvm.cpython-37m-x86_64-linux-gnu.so: undefined symbol: ZN5torch3jit16SubgraphRewriter22RegisterRewritePatternERKNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEES9 _______________________________________________________________________________________________ ERROR collecting test/test_operators.py _______________________________________________________________________________________________ ImportError while importing test module '/tvm/test/test_operators.py'. Hint: make sure your test modules/packages have valid Python names. Traceback: test/test_operators.py:2: in from test.util import TVMTest test/util.py:12: in import torch_tvm torch_tvm/init.py:9: in from ._torch_tvm import * E ImportError: /tvm/torch_tvm/_torch_tvm.cpython-37m-x86_64-linux-gnu.so: undefined symbol: ZN5torch3jit16SubgraphRewriter22RegisterRewritePatternERKNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEES9 !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! Interrupted: 3 errors during collection !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! ========================================================================================================== 3 errors in 0.76s ==========================================================================================================

mowayao avatar Jan 06 '20 01:01 mowayao

Have you built PyTorch from source?

bwasti avatar Jan 06 '20 23:01 bwasti

Have you built PyTorch from source?

I used pip to install pytorch. Is it necessary to build pytorch from souce?

mowayao avatar Jan 07 '20 02:01 mowayao

Hi, I have a similar (or maybe same) error:

This is the end of python setup.py test

copying build/lib.linux-x86_64-3.6/torch_tvm/_torch_tvm.cpython-36m-x86_64-linux-gnu.so -> torch_tvm
============================= test session starts ==============================
platform linux -- Python 3.6.9, pytest-5.3.3, py-1.8.1, pluggy-0.13.1
rootdir: /tvm, inifile: setup.cfg, testpaths: test
collected 0 items / 3 errors                                                   

==================================== ERRORS ====================================
______________________ ERROR collecting test/test_core.py ______________________
ImportError while importing test module '/tvm/test/test_core.py'.
Hint: make sure your test modules/packages have valid Python names.
Traceback:
test/test_core.py:2: in <module>
    from test.util import TVMTest
test/util.py:12: in <module>
    import torch_tvm
torch_tvm/__init__.py:9: in <module>
    from ._torch_tvm import *
E   ImportError: /tvm/torch_tvm/_torch_tvm.cpython-36m-x86_64-linux-gnu.so: undefined symbol: _ZTIN3c1021AutogradMetaInterfaceE
_____________________ ERROR collecting test/test_models.py _____________________
ImportError while importing test module '/tvm/test/test_models.py'.
Hint: make sure your test modules/packages have valid Python names.
Traceback:
test/test_models.py:6: in <module>
    import torch_tvm
torch_tvm/__init__.py:9: in <module>
    from ._torch_tvm import *
E   ImportError: /tvm/torch_tvm/_torch_tvm.cpython-36m-x86_64-linux-gnu.so: undefined symbol: _ZTIN3c1021AutogradMetaInterfaceE
___________________ ERROR collecting test/test_operators.py ____________________
ImportError while importing test module '/tvm/test/test_operators.py'.
Hint: make sure your test modules/packages have valid Python names.
Traceback:
test/test_operators.py:2: in <module>
    from test.util import TVMTest
test/util.py:12: in <module>
    import torch_tvm
torch_tvm/__init__.py:9: in <module>
    from ._torch_tvm import *
E   ImportError: /tvm/torch_tvm/_torch_tvm.cpython-36m-x86_64-linux-gnu.so: undefined symbol: _ZTIN3c1021AutogradMetaInterfaceE
!!!!!!!!!!!!!!!!!!! Interrupted: 3 errors during collection !!!!!!!!!!!!!!!!!!!!
============================== 3 errors in 0.66s ===============================
(env) root@25711c3c1895:/tvm# 

and is in a docker container with this Dockerfile:

FROM ubuntu

RUN apt-get update && apt-get install -y git python3 python3-venv git cmake ninja-build g++ python3-dev llvm

RUN git clone --recurse-submodules https://github.com/pytorch/tvm.git && cd tvm && python3 -m venv env

RUN git clone https://github.com/pytorch/pytorch.git --recursive

RUN . tvm/env/bin/activate && cd pytorch && pip3 install -r requirements.txt
RUN . tvm/env/bin/activate && cd pytorch && BUILD_BINARY=OFF BUILD_TEST=0 BUILD_CAFFE2_OPS=0 python setup.py install

# RUN . tvm/env/bin/activate && cd tvm && git checkout 9d3ca57
# RUN . tvm/env/bin/activate && cd tvm && python setup.py install --cmake
# RUN . tvm/env/bin/activate && cd tvm && OMP_NUM_THREADS=2 python setup.py test

vatai avatar Jan 19 '20 10:01 vatai

Have you built PyTorch from source?

I used pip to install pytorch. Is it necessary to build pytorch from souce?

It shouldn't be necessary to build from source, but there are unfortunately C++ ABI compatibility issues that typically arise from not building from source. The C++ ABI shipped with the pip install of PyTorch usually isn't compatible with system installed LLVMs. You can try downloading lib torch directly (and ensuring it uses the same C++ 11 ABI as your LLVM), but I'd recommend building PT from source.

Note: There are some work items on my end that will make this a bit smoother, as we are currently C++ABI unaware in the pytorch/tvm CMakeLists.txt. Filed an issue here: https://github.com/pytorch/tvm/issues/154

bwasti avatar Jan 22 '20 22:01 bwasti

E   ImportError: /tvm/torch_tvm/_torch_tvm.cpython-36m-x86_64-linux-gnu.so: undefined symbol: _ZTIN3c1021AutogradMetaInterfaceE

I found this error aswell, and it looks like it is due to pytorch/pytorch#30315 (which affects PyTorch 1.4) so the CMakeLists.txt needs to change to something like:

diff --git a/CMakeLists.txt b/CMakeLists.txt
index a6108e6..3903a78 100644
--- a/CMakeLists.txt
+++ b/CMakeLists.txt
@@ -32,7 +32,7 @@ add_subdirectory(${TVM_DIR})
 
 pybind11_add_module(_torch_tvm SHARED ${TORCH_TVM_SRCS})
 target_link_libraries(_torch_tvm PUBLIC
-  torch pybind11 tvm tvm_topi)
+  torch c10 torch_cpu torch_python pybind11 tvm tvm_topi)

Also shows up in CircleCI build 697

jjohnson-arm avatar Feb 03 '20 15:02 jjohnson-arm