在 TVM Docker 容器中找不到 libtvm.so 和 libtvm_runtime.so
No libtvm.so and libtvm_runtime.so found in TVM Docker Container
我是 Apache TVM 新手。
我尝试按照教程 https://tvm.apache.org/docs/install/docker.html#docker-source 中的描述构建并启动名为 tvm.ci_cpu:latest
的 docker 图像。
我尝试按照教程 https://tvm.apache.org/docs/tutorial/tvmc_command_line_driver.html#using-tvmc 中所述在 docker 容器中使用 python 应用程序 tvmc
。
然后我得到以下错误:
$ tvmc --help
bash: tvmc: command not found
我尝试使用上面文章中提到的其他方法,但出现了以下新错误:
$ python3 -m tvm.driver.tvmc --help
Traceback (most recent call last):
File "/usr/lib/python3.6/runpy.py", line 183, in _run_module_as_main
mod_name, mod_spec, code = _get_module_details(mod_name, _Error)
File "/usr/lib/python3.6/runpy.py", line 109, in _get_module_details
__import__(pkg_name)
File "/opt/share0/bob/project/tvm/python/tvm/__init__.py", line 26, in <module>
from ._ffi.base import TVMError, __version__, _RUNTIME_ONLY
File "/opt/share0/bob/project/tvm/python/tvm/_ffi/__init__.py", line 28, in <module>
from .base import register_error
File "/opt/share0/bob/project/tvm/python/tvm/_ffi/base.py", line 71, in <module>
_LIB, _LIB_NAME = _load_lib()
File "/opt/share0/bob/project/tvm/python/tvm/_ffi/base.py", line 51, in _load_lib
lib_path = libinfo.find_lib_path()
File "/opt/share0/bob/project/tvm/python/tvm/_ffi/libinfo.py", line 146, in find_lib_path
raise RuntimeError(message)
RuntimeError: Cannot find libraries: ['libtvm.so', 'libtvm_runtime.so']
List of candidates:
/opt/sgxsdk/lib64/libtvm.so
/opt/share0/bob/project/tvm/libtvm.so
/usr/local/sbin/libtvm.so
/usr/local/bin/libtvm.so
/usr/sbin/libtvm.so
/usr/bin/libtvm.so
/sbin/libtvm.so
/bin/libtvm.so
/opt/rust/bin/libtvm.so
/usr/lib/go-1.10/bin/libtvm.so
/opt/share0/bob/project/tvm/python/tvm/libtvm.so
/opt/share0/bob/project/libtvm.so
/opt/sgxsdk/lib64/libtvm_runtime.so
/opt/share0/bob/project/tvm/libtvm_runtime.so
/usr/local/sbin/libtvm_runtime.so
/usr/local/bin/libtvm_runtime.so
/usr/sbin/libtvm_runtime.so
/usr/bin/libtvm_runtime.so
/sbin/libtvm_runtime.so
/bin/libtvm_runtime.so
/opt/rust/bin/libtvm_runtime.so
/usr/lib/go-1.10/bin/libtvm_runtime.so
/opt/share0/bob/project/tvm/python/tvm/libtvm_runtime.so
/opt/share0/bob/project/libtvm_runtime.so
我尝试拉取并使用以下第三方 docker 图像而不是我自己构建的图像:
但是,我还是遇到了和以前一样的问题。
为什么?我完全不知道。
有什么建议吗?谢谢。
我找到了 pingsutw's answer in https://discuss.tvm.apache.org/t/import-tvm-returns-runtime-error-cant-find-libtvm-so-when-using-docker-demo-cpu-image/5110。在参考了他的建议后,我尝试在一个容器中重建 tvm,该容器是从我自己构建的镜像 tvm.ci_cpu:latest
启动的。
pushd path/to/tvm && \
chmod +x 3rdparty/libbacktrace/configure && \
mkdir -p cmake-build && \
cmake -H. -Bcmake-build -DUSE_LLVM=ON && \
cmake --build cmake-build --target all -- -j 4 && \
mv cmake-build build && \
popd
在上面之后,我尝试输入命令 python3 -m tvm.driver.tvmc --help
并得到以下输出。
usage: tvmc [-v] [--version] [-h] {run,tune,compile} ...
TVM compiler driver
optional arguments:
-v, --verbose increase verbosity
--version print the version and exit
-h, --help show this help message and exit.
commands:
{run,tune,compile}
run run a compiled module
tune auto-tune a model
compile compile a model.
TVMC - TVM driver command-line interface
如您所见,它现在可以正常工作了。
令人惊讶的是,libtvm.so
和 libtvm_runtime.so
在 tvm docker 图像中不是 pre-built。也许应该更新用于构建 tvm docker 图像的 third-party tvm docker image is broken. Maybe the Dockerfile。可能是为了灵活编译满足各种需求而设计的吧
我是 Apache TVM 新手。
我尝试按照教程 https://tvm.apache.org/docs/install/docker.html#docker-source 中的描述构建并启动名为 tvm.ci_cpu:latest
的 docker 图像。
我尝试按照教程 https://tvm.apache.org/docs/tutorial/tvmc_command_line_driver.html#using-tvmc 中所述在 docker 容器中使用 python 应用程序 tvmc
。
然后我得到以下错误:
$ tvmc --help
bash: tvmc: command not found
我尝试使用上面文章中提到的其他方法,但出现了以下新错误:
$ python3 -m tvm.driver.tvmc --help
Traceback (most recent call last):
File "/usr/lib/python3.6/runpy.py", line 183, in _run_module_as_main
mod_name, mod_spec, code = _get_module_details(mod_name, _Error)
File "/usr/lib/python3.6/runpy.py", line 109, in _get_module_details
__import__(pkg_name)
File "/opt/share0/bob/project/tvm/python/tvm/__init__.py", line 26, in <module>
from ._ffi.base import TVMError, __version__, _RUNTIME_ONLY
File "/opt/share0/bob/project/tvm/python/tvm/_ffi/__init__.py", line 28, in <module>
from .base import register_error
File "/opt/share0/bob/project/tvm/python/tvm/_ffi/base.py", line 71, in <module>
_LIB, _LIB_NAME = _load_lib()
File "/opt/share0/bob/project/tvm/python/tvm/_ffi/base.py", line 51, in _load_lib
lib_path = libinfo.find_lib_path()
File "/opt/share0/bob/project/tvm/python/tvm/_ffi/libinfo.py", line 146, in find_lib_path
raise RuntimeError(message)
RuntimeError: Cannot find libraries: ['libtvm.so', 'libtvm_runtime.so']
List of candidates:
/opt/sgxsdk/lib64/libtvm.so
/opt/share0/bob/project/tvm/libtvm.so
/usr/local/sbin/libtvm.so
/usr/local/bin/libtvm.so
/usr/sbin/libtvm.so
/usr/bin/libtvm.so
/sbin/libtvm.so
/bin/libtvm.so
/opt/rust/bin/libtvm.so
/usr/lib/go-1.10/bin/libtvm.so
/opt/share0/bob/project/tvm/python/tvm/libtvm.so
/opt/share0/bob/project/libtvm.so
/opt/sgxsdk/lib64/libtvm_runtime.so
/opt/share0/bob/project/tvm/libtvm_runtime.so
/usr/local/sbin/libtvm_runtime.so
/usr/local/bin/libtvm_runtime.so
/usr/sbin/libtvm_runtime.so
/usr/bin/libtvm_runtime.so
/sbin/libtvm_runtime.so
/bin/libtvm_runtime.so
/opt/rust/bin/libtvm_runtime.so
/usr/lib/go-1.10/bin/libtvm_runtime.so
/opt/share0/bob/project/tvm/python/tvm/libtvm_runtime.so
/opt/share0/bob/project/libtvm_runtime.so
我尝试拉取并使用以下第三方 docker 图像而不是我自己构建的图像:
但是,我还是遇到了和以前一样的问题。
为什么?我完全不知道。
有什么建议吗?谢谢。
我找到了 pingsutw's answer in https://discuss.tvm.apache.org/t/import-tvm-returns-runtime-error-cant-find-libtvm-so-when-using-docker-demo-cpu-image/5110。在参考了他的建议后,我尝试在一个容器中重建 tvm,该容器是从我自己构建的镜像 tvm.ci_cpu:latest
启动的。
pushd path/to/tvm && \
chmod +x 3rdparty/libbacktrace/configure && \
mkdir -p cmake-build && \
cmake -H. -Bcmake-build -DUSE_LLVM=ON && \
cmake --build cmake-build --target all -- -j 4 && \
mv cmake-build build && \
popd
在上面之后,我尝试输入命令 python3 -m tvm.driver.tvmc --help
并得到以下输出。
usage: tvmc [-v] [--version] [-h] {run,tune,compile} ...
TVM compiler driver
optional arguments:
-v, --verbose increase verbosity
--version print the version and exit
-h, --help show this help message and exit.
commands:
{run,tune,compile}
run run a compiled module
tune auto-tune a model
compile compile a model.
TVMC - TVM driver command-line interface
如您所见,它现在可以正常工作了。
令人惊讶的是,libtvm.so
和 libtvm_runtime.so
在 tvm docker 图像中不是 pre-built。也许应该更新用于构建 tvm docker 图像的 third-party tvm docker image is broken. Maybe the Dockerfile。可能是为了灵活编译满足各种需求而设计的吧