Error: "PyTorch is not linked with support for cuda devices"

Hey everyone,

I’ve recently updated from Libtorch 1.2 to Libtorch 1.7. However, when trying to load JIT traced models I get an error exactly at the torch::jit::load command.

The first error I get is the following one

Could not run 'aten::empty_strided' with arguments from the 'CUDA' backend. 'aten::empty_strided' is only available for these backends: [CPU, BackendSelect, Named, AutogradOther, AutogradCPU, AutogradCUDA, AutogradXLA, AutogradPrivateUse1, AutogradPrivateUse2, AutogradPrivateUse3, Tracer, Autocast, Batched, VmapMode].

CPU: registered at aten/src/ATen/CPUType.cpp:2127 [kernel]
BackendSelect: registered at aten/src/ATen/BackendSelectRegister.cpp:761 [kernel]
Named: registered at ../aten/src/ATen/core/NamedRegistrations.cpp:7 [backend fallback]
AutogradOther: registered at ../torch/csrc/autograd/generated/VariableType_0.cpp:7974 [autograd kernel]
AutogradCPU: registered at ../torch/csrc/autograd/generated/VariableType_0.cpp:7974 [autograd kernel]
AutogradCUDA: registered at ../torch/csrc/autograd/generated/VariableType_0.cpp:7974 [autograd kernel]
AutogradXLA: registered at ../torch/csrc/autograd/generated/VariableType_0.cpp:7974 [autograd kernel]
AutogradPrivateUse1: registered at ../torch/csrc/autograd/generated/VariableType_0.cpp:7974 [autograd kernel]
AutogradPrivateUse2: registered at ../torch/csrc/autograd/generated/VariableType_0.cpp:7974 [autograd kernel]
AutogradPrivateUse3: registered at ../torch/csrc/autograd/generated/VariableType_0.cpp:7974 [autograd kernel]
Tracer: registered at ../torch/csrc/autograd/generated/TraceType_0.cpp:9341 [kernel]
Autocast: fallthrough registered at ../aten/src/ATen/autocast_mode.cpp:254 [backend fallback]
Batched: registered at ../aten/src/ATen/BatchingRegistrations.cpp:511 [backend fallback]
VmapMode: fallthrough registered at ../aten/src/ATen/VmapModeRegistrations.cpp:33 [backend fallback]

Exception raised from reportError at ../aten/src/ATen/core/dispatch/OperatorEntry.cpp:363 (most recent call first):
frame #0: c10::Error::Error(c10::SourceLocation, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >) + 0x69 (0x7f326e325b89 in /home/user/libtorch_1.7_gcc7_cuda_11.0_x86_64/libtorch_1.7_gcc7_cuda_11.0_x86_64/lib/libc10.so)
frame #1: c10::impl::OperatorEntry::reportError(c10::DispatchKey) const + 0x3ac (0x7f326f5d223c in /home/user/libtorch_1.7_gcc7_cuda_11.0_x86_64/libtorch_1.7_gcc7_cuda_11.0_x86_64/lib/libtorch_cpu.so)
frame #2: <unknown function> + 0x1328706 (0x7f326fd21706 in /home/user/libtorch_1.7_gcc7_cuda_11.0_x86_64/libtorch_1.7_gcc7_cuda_11.0_x86_64/lib/libtorch_cpu.so)
frame #3: <unknown function> + 0x130196e (0x7f326fcfa96e in /home/user/libtorch_1.7_gcc7_cuda_11.0_x86_64/libtorch_1.7_gcc7_cuda_11.0_x86_64/lib/libtorch_cpu.so)
frame #4: <unknown function> + 0x1307026 (0x7f326fd00026 in /home/user/libtorch_1.7_gcc7_cuda_11.0_x86_64/libtorch_1.7_gcc7_cuda_11.0_x86_64/lib/libtorch_cpu.so)
frame #5: <unknown function> + 0x1328650 (0x7f326fd21650 in /home/user/libtorch_1.7_gcc7_cuda_11.0_x86_64/libtorch_1.7_gcc7_cuda_11.0_x86_64/lib/libtorch_cpu.so)
frame #6: at::empty_strided(c10::ArrayRef<long>, c10::ArrayRef<long>, c10::TensorOptions const&) + 0x295 (0x7f326fe00e35 in /home/user/libtorch_1.7_gcc7_cuda_11.0_x86_64/libtorch_1.7_gcc7_cuda_11.0_x86_64/lib/libtorch_cpu.so)
frame #7: <unknown function> + 0x2968546 (0x7f3271361546 in /home/user/libtorch_1.7_gcc7_cuda_11.0_x86_64/libtorch_1.7_gcc7_cuda_11.0_x86_64/lib/libtorch_cpu.so)
frame #8: <unknown function> + 0x1307026 (0x7f326fd00026 in /home/user/libtorch_1.7_gcc7_cuda_11.0_x86_64/libtorch_1.7_gcc7_cuda_11.0_x86_64/lib/libtorch_cpu.so)
frame #9: <unknown function> + 0x1328650 (0x7f326fd21650 in /home/user/libtorch_1.7_gcc7_cuda_11.0_x86_64/libtorch_1.7_gcc7_cuda_11.0_x86_64/lib/libtorch_cpu.so)
frame #10: <unknown function> + 0x130196e (0x7f326fcfa96e in /home/user/libtorch_1.7_gcc7_cuda_11.0_x86_64/libtorch_1.7_gcc7_cuda_11.0_x86_64/lib/libtorch_cpu.so)
frame #11: <unknown function> + 0x1307026 (0x7f326fd00026 in /home/user/libtorch_1.7_gcc7_cuda_11.0_x86_64/libtorch_1.7_gcc7_cuda_11.0_x86_64/lib/libtorch_cpu.so)
frame #12: <unknown function> + 0x1328650 (0x7f326fd21650 in /home/user/libtorch_1.7_gcc7_cuda_11.0_x86_64/libtorch_1.7_gcc7_cuda_11.0_x86_64/lib/libtorch_cpu.so)
frame #13: at::empty_strided(c10::ArrayRef<long>, c10::ArrayRef<long>, c10::TensorOptions const&) + 0x295 (0x7f326fe00e35 in /home/user/libtorch_1.7_gcc7_cuda_11.0_x86_64/libtorch_1.7_gcc7_cuda_11.0_x86_64/lib/libtorch_cpu.so)
frame #14: at::native::to(at::Tensor const&, c10::Device, c10::ScalarType, bool, bool, c10::optional<c10::MemoryFormat>) + 0x49f (0x7f326f9e664f in /home/user/libtorch_1.7_gcc7_cuda_11.0_x86_64/libtorch_1.7_gcc7_cuda_11.0_x86_64/lib/libtorch_cpu.so)
frame #15: <unknown function> + 0x158d1c1 (0x7f326ff861c1 in /home/user/libtorch_1.7_gcc7_cuda_11.0_x86_64/libtorch_1.7_gcc7_cuda_11.0_x86_64/lib/libtorch_cpu.so)
frame #16: <unknown function> + 0xaf1eaa (0x7f326f4eaeaa in /home/user/libtorch_1.7_gcc7_cuda_11.0_x86_64/libtorch_1.7_gcc7_cuda_11.0_x86_64/lib/libtorch_cpu.so)
frame #17: <unknown function> + 0x1692131 (0x7f327008b131 in /home/user/libtorch_1.7_gcc7_cuda_11.0_x86_64/libtorch_1.7_gcc7_cuda_11.0_x86_64/lib/libtorch_cpu.so)
frame #18: at::Tensor::to(c10::Device, c10::ScalarType, bool, bool, c10::optional<c10::MemoryFormat>) const + 0x108 (0x7f32700686c8 in /home/user/libtorch_1.7_gcc7_cuda_11.0_x86_64/libtorch_1.7_gcc7_cuda_11.0_x86_64/lib/libtorch_cpu.so)
frame #19: torch::jit::Unpickler::readInstruction() + 0x2331 (0x7f3271b313a1 in /home/user/libtorch_1.7_gcc7_cuda_11.0_x86_64/libtorch_1.7_gcc7_cuda_11.0_x86_64/lib/libtorch_cpu.so)
frame #20: torch::jit::Unpickler::run() + 0xb0 (0x7f3271b32440 in /home/user/libtorch_1.7_gcc7_cuda_11.0_x86_64/libtorch_1.7_gcc7_cuda_11.0_x86_64/lib/libtorch_cpu.so)
frame #21: torch::jit::Unpickler::parse_ivalue() + 0x31 (0x7f3271b329f1 in /home/user/libtorch_1.7_gcc7_cuda_11.0_x86_64/libtorch_1.7_gcc7_cuda_11.0_x86_64/lib/libtorch_cpu.so)
frame #22: torch::jit::readArchiveAndTensors(std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const&, c10::optional<std::function<c10::StrongTypePtr (c10::QualifiedName const&)> >, c10::optional<std::function<c10::intrusive_ptr<c10::ivalue::Object, c10::detail::intrusive_target_default_null_type<c10::ivalue::Object> > (c10::StrongTypePtr, c10::IValue)> >, c10::optional<c10::Device>, caffe2::serialize::PyTorchStreamReader&) + 0x6b2 (0x7f3271ad68c2 in /home/user/libtorch_1.7_gcc7_cuda_11.0_x86_64/libtorch_1.7_gcc7_cuda_11.0_x86_64/lib/libtorch_cpu.so)
frame #23: <unknown function> + 0x30ddbdd (0x7f3271ad6bdd in /home/user/libtorch_1.7_gcc7_cuda_11.0_x86_64/libtorch_1.7_gcc7_cuda_11.0_x86_64/lib/libtorch_cpu.so)
frame #24: <unknown function> + 0x30e01b1 (0x7f3271ad91b1 in /home/user/libtorch_1.7_gcc7_cuda_11.0_x86_64/libtorch_1.7_gcc7_cuda_11.0_x86_64/lib/libtorch_cpu.so)
frame #25: torch::jit::load(std::unique_ptr<caffe2::serialize::ReadAdapterInterface, std::default_delete<caffe2::serialize::ReadAdapterInterface> >, c10::optional<c10::Device>, 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> > > > >&) + 0x179 (0x7f3271ad9ad9 in /home/user/libtorch_1.7_gcc7_cuda_11.0_x86_64/libtorch_1.7_gcc7_cuda_11.0_x86_64/lib/libtorch_cpu.so)
frame #26: torch::jit::load(std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const&, c10::optional<c10::Device>, 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> > > > >&) + 0x75 (0x7f3271adc435 in /home/user/libtorch_1.7_gcc7_cuda_11.0_x86_64/libtorch_1.7_gcc7_cuda_11.0_x86_64/lib/libtorch_cpu.so)
frame #27: OpenPoseActionRecognition::setModel(QString) + 0x24e (0x7f327f7f0212 in /home/user/DevEnviro-3.2.0/DevEnviroViewer/plugins/libOpenPoseActionRecognition_debug_gcc_x86_qt5.9.so)
frame #28: <unknown function> + 0x108f87 (0x7f327f837f87 in /home/user/DevEnviro-3.2.0/DevEnviroViewer/plugins/libOpenPoseActionRecognition_debug_gcc_x86_qt5.9.so)
frame #29: QMetaObject::activate(QObject*, int, int, void**) + 0x659 (0x7f32ab5d33c9 in /home/user/Qt5.9.5/5.9.5/gcc_64/lib/libQt5Core.so.5)
frame #30: OpenPoseActionRecognition::filenameSet(QString) + 0x56 (0x7f327f8381d0 in /home/user/DevEnviro-3.2.0/DevEnviroViewer/plugins/libOpenPoseActionRecognition_debug_gcc_x86_qt5.9.so)
frame #31: OpenPoseActionRecognition::openFileDialog() + 0x178 (0x7f327f7efef0 in /home/user/DevEnviro-3.2.0/DevEnviroViewer/plugins/libOpenPoseActionRecognition_debug_gcc_x86_qt5.9.so)
frame #32: <unknown function> + 0x108eb8 (0x7f327f837eb8 in /home/user/DevEnviro-3.2.0/DevEnviroViewer/plugins/libOpenPoseActionRecognition_debug_gcc_x86_qt5.9.so)
frame #33: QMetaObject::activate(QObject*, int, int, void**) + 0x659 (0x7f32ab5d33c9 in /home/user/Qt5.9.5/5.9.5/gcc_64/lib/libQt5Core.so.5)
frame #34: QAbstractButton::clicked(bool) + 0x32 (0x7f32aca2ea72 in /home/user/Qt5.9.5/5.9.5/gcc_64/lib/libQt5Widgets.so.5)
frame #35: <unknown function> + 0x245c74 (0x7f32aca2ec74 in /home/user/Qt5.9.5/5.9.5/gcc_64/lib/libQt5Widgets.so.5)
frame #36: <unknown function> + 0x24780e (0x7f32aca3080e in /home/user/Qt5.9.5/5.9.5/gcc_64/lib/libQt5Widgets.so.5)
frame #37: QAbstractButton::mouseReleaseEvent(QMouseEvent*) + 0xd5 (0x7f32aca30965 in /home/user/Qt5.9.5/5.9.5/gcc_64/lib/libQt5Widgets.so.5)
frame #38: QWidget::event(QEvent*) + 0x1f8 (0x7f32ac978c38 in /home/user/Qt5.9.5/5.9.5/gcc_64/lib/libQt5Widgets.so.5)
frame #39: QApplicationPrivate::notify_helper(QObject*, QEvent*) + 0x9c (0x7f32ac93c7ec in /home/user/Qt5.9.5/5.9.5/gcc_64/lib/libQt5Widgets.so.5)
frame #40: QApplication::notify(QObject*, QEvent*) + 0xc03 (0x7f32ac9445f3 in /home/user/Qt5.9.5/5.9.5/gcc_64/lib/libQt5Widgets.so.5)
frame #41: QCoreApplication::notifyInternal2(QObject*, QEvent*) + 0x108 (0x7f32ab5a8de8 in /home/user/Qt5.9.5/5.9.5/gcc_64/lib/libQt5Core.so.5)
frame #42: QApplicationPrivate::sendMouseEvent(QWidget*, QMouseEvent*, QWidget*, QWidget*, QWidget**, QPointer<QWidget>&, bool) + 0x1df (0x7f32ac94325f in /home/user/Qt5.9.5/5.9.5/gcc_64/lib/libQt5Widgets.so.5)
frame #43: <unknown function> + 0x1a9616 (0x7f32ac992616 in /home/user/Qt5.9.5/5.9.5/gcc_64/lib/libQt5Widgets.so.5)
frame #44: <unknown function> + 0x1abf6b (0x7f32ac994f6b in /home/user/Qt5.9.5/5.9.5/gcc_64/lib/libQt5Widgets.so.5)
frame #45: QApplicationPrivate::notify_helper(QObject*, QEvent*) + 0x9c (0x7f32ac93c7ec in /home/user/Qt5.9.5/5.9.5/gcc_64/lib/libQt5Widgets.so.5)
frame #46: QApplication::notify(QObject*, QEvent*) + 0x227 (0x7f32ac943c17 in /home/user/Qt5.9.5/5.9.5/gcc_64/lib/libQt5Widgets.so.5)
frame #47: QCoreApplication::notifyInternal2(QObject*, QEvent*) + 0x108 (0x7f32ab5a8de8 in /home/user/Qt5.9.5/5.9.5/gcc_64/lib/libQt5Core.so.5)
frame #48: QGuiApplicationPrivate::processMouseEvent(QWindowSystemInterfacePrivate::MouseEvent*) + 0x370 (0x7f32ac166cf0 in /home/user/Qt5.9.5/5.9.5/gcc_64/lib/libQt5Gui.so.5)
frame #49: QGuiApplicationPrivate::processWindowSystemEvent(QWindowSystemInterfacePrivate::WindowSystemEvent*) + 0x105 (0x7f32ac168ac5 in /home/user/Qt5.9.5/5.9.5/gcc_64/lib/libQt5Gui.so.5)
frame #50: QWindowSystemInterface::sendWindowSystemEvents(QFlags<QEventLoop::ProcessEventsFlag>) + 0xbb (0x7f32ac1435bb in /home/user/Qt5.9.5/5.9.5/gcc_64/lib/libQt5Gui.so.5)
frame #51: <unknown function> + 0xaef20 (0x7f32a56f7f20 in /home/user/Qt5.9.5/5.9.5/gcc_64/lib/libQt5XcbQpa.so.5)
frame #52: g_main_context_dispatch + 0x2e7 (0x7f32a71fb417 in /usr/lib/x86_64-linux-gnu/libglib-2.0.so.0)
frame #53: <unknown function> + 0x4c650 (0x7f32a71fb650 in /usr/lib/x86_64-linux-gnu/libglib-2.0.so.0)
frame #54: g_main_context_iteration + 0x2c (0x7f32a71fb6dc in /usr/lib/x86_64-linux-gnu/libglib-2.0.so.0)
frame #55: QEventDispatcherGlib::processEvents(QFlags<QEventLoop::ProcessEventsFlag>) + 0x5f (0x7f32ab5fb6af in /home/user/Qt5.9.5/5.9.5/gcc_64/lib/libQt5Core.so.5)
frame #56: QEventLoop::exec(QFlags<QEventLoop::ProcessEventsFlag>) + 0xea (0x7f32ab5a73da in /home/user/Qt5.9.5/5.9.5/gcc_64/lib/libQt5Core.so.5)
frame #57: QCoreApplication::exec() + 0x84 (0x7f32ab5afcb4 in /home/user/Qt5.9.5/5.9.5/gcc_64/lib/libQt5Core.so.5)
frame #58: <unknown function> + 0x33e58 (0x556627cb8e58 in /home/user/DevEnviro-3.2.0/DevEnviroViewer/DevEnviroViewer_debug)
frame #59: __libc_start_main + 0xe7 (0x7f32aa3f1bf7 in /lib/x86_64-linux-gnu/libc.so.6)
frame #60: <unknown function> + 0x2e51a (0x556627cb351a in /home/user/DevEnviro-3.2.0/DevEnviroViewer/DevEnviroViewer_debug)

I then checked my artifact using ldd and as I saw only torch_cpu.so is linked. As far as I could find out during my research, this is expected behavior. However, I do want to run my model using the GPU.

Next I found the following command -INCLUDE:?warp_size@cuda@at@@YAHXZ in order to force the linker to link my file against torch_cuda.so. The log shows, that this command is added, however ldd still doesn’t show torch_cuda.so. And when I try to add a gpu device to my loaded model, I get the following error:

PyTorch is not linked with support for cuda devices
Exception raised from getDeviceGuardImpl at ../c10/core/impl/DeviceGuardImplInterface.h:216 (most recent call first):
frame #0: c10::Error::Error(c10::SourceLocation, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >) + 0x69 (0x7f162f5c9b89 in /home/user/libtorch_1.7_gcc7_cuda_10.2_x86_64/libtorch_1.7_gcc7_cuda_10.2_x86_64/lib/libc10.so)
frame #1: at::native::to(at::Tensor const&, c10::Device, c10::ScalarType, bool, bool, c10::optional<c10::MemoryFormat>) + 0xd54 (0x7f161f830f04 in /home/user/libtorch_1.7_gcc7_cuda_10.2_x86_64/libtorch_1.7_gcc7_cuda_10.2_x86_64/lib/libtorch_cpu.so)
frame #2: <unknown function> + 0x158d1c1 (0x7f161fdd01c1 in /home/user/libtorch_1.7_gcc7_cuda_10.2_x86_64/libtorch_1.7_gcc7_cuda_10.2_x86_64/lib/libtorch_cpu.so)
frame #3: <unknown function> + 0xaf1eaa (0x7f161f334eaa in /home/user/libtorch_1.7_gcc7_cuda_10.2_x86_64/libtorch_1.7_gcc7_cuda_10.2_x86_64/lib/libtorch_cpu.so)
frame #4: <unknown function> + 0x1692131 (0x7f161fed5131 in /home/user/libtorch_1.7_gcc7_cuda_10.2_x86_64/libtorch_1.7_gcc7_cuda_10.2_x86_64/lib/libtorch_cpu.so)
frame #5: at::Tensor::to(c10::Device, c10::ScalarType, bool, bool, c10::optional<c10::MemoryFormat>) const + 0x108 (0x7f161feb26c8 in /home/user/libtorch_1.7_gcc7_cuda_10.2_x86_64/libtorch_1.7_gcc7_cuda_10.2_x86_64/lib/libtorch_cpu.so)
frame #6: <unknown function> + 0x32f5c32 (0x7f1621b38c32 in /home/user/libtorch_1.7_gcc7_cuda_10.2_x86_64/libtorch_1.7_gcc7_cuda_10.2_x86_64/lib/libtorch_cpu.so)
frame #7: <unknown function> + 0x32f78f4 (0x7f1621b3a8f4 in /home/user/libtorch_1.7_gcc7_cuda_10.2_x86_64/libtorch_1.7_gcc7_cuda_10.2_x86_64/lib/libtorch_cpu.so)
frame #8: <unknown function> + 0x30e0131 (0x7f1621923131 in /home/user/libtorch_1.7_gcc7_cuda_10.2_x86_64/libtorch_1.7_gcc7_cuda_10.2_x86_64/lib/libtorch_cpu.so)
frame #9: torch::jit::load(std::unique_ptr<caffe2::serialize::ReadAdapterInterface, std::default_delete<caffe2::serialize::ReadAdapterInterface> >, c10::optional<c10::Device>, 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> > > > >&) + 0x179 (0x7f1621923ad9 in /home/user/libtorch_1.7_gcc7_cuda_10.2_x86_64/libtorch_1.7_gcc7_cuda_10.2_x86_64/lib/libtorch_cpu.so)
frame #10: torch::jit::load(std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const&, c10::optional<c10::Device>, 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> > > > >&) + 0x75 (0x7f1621926435 in /home/user/libtorch_1.7_gcc7_cuda_10.2_x86_64/libtorch_1.7_gcc7_cuda_10.2_x86_64/lib/libtorch_cpu.so)
frame #11: OpenPoseActionRecognition::setModel(QString) + 0x1d8 (0x7f162f839898 in /home/user/DevEnviro-3.2.0/DevEnviroViewer/plugins/libOpenPoseActionRecognition_gcc_x86_qt5.9.so)
frame #12: OpenPoseActionRecognition::work(paco::Container&) + 0x13b (0x7f162f839f2b in /home/user/DevEnviro-3.2.0/DevEnviroViewer/plugins/libOpenPoseActionRecognition_gcc_x86_qt5.9.so)
frame #13: <unknown function> + 0xb4d86 (0x55ab18809d86 in /home/user/DevEnviro-3.2.0/DevEnviroViewer/DevEnviroViewer)
frame #14: <unknown function> + 0xa386e (0x55ab187f886e in /home/user/DevEnviro-3.2.0/DevEnviroViewer/DevEnviroViewer)
frame #15: <unknown function> + 0x7fee5 (0x55ab187d4ee5 in /home/user/DevEnviro-3.2.0/DevEnviroViewer/DevEnviroViewer)
frame #16: <unknown function> + 0x8054f (0x55ab187d554f in /home/user/DevEnviro-3.2.0/DevEnviroViewer/DevEnviroViewer)
frame #17: <unknown function> + 0x83a48 (0x55ab187d8a48 in /home/user/DevEnviro-3.2.0/DevEnviroViewer/DevEnviroViewer)
frame #18: <unknown function> + 0xf8756 (0x55ab1884d756 in /home/user/DevEnviro-3.2.0/DevEnviroViewer/DevEnviroViewer)
frame #19: QMetaObject::activate(QObject*, int, int, void**) + 0x659 (0x7f165b5923c9 in /home/user/Qt5.9.5/5.9.5/gcc_64/lib/libQt5Core.so.5)
frame #20: <unknown function> + 0xf20b5 (0x55ab188470b5 in /home/user/DevEnviro-3.2.0/DevEnviroViewer/DevEnviroViewer)
frame #21: <unknown function> + 0x35389 (0x55ab1878a389 in /home/user/DevEnviro-3.2.0/DevEnviroViewer/DevEnviroViewer)
frame #22: <unknown function> + 0x776e6 (0x55ab187cc6e6 in /home/user/DevEnviro-3.2.0/DevEnviroViewer/DevEnviroViewer)
frame #23: <unknown function> + 0x899e4 (0x55ab187de9e4 in /home/user/DevEnviro-3.2.0/DevEnviroViewer/DevEnviroViewer)
frame #24: <unknown function> + 0x8b11f (0x55ab187e011f in /home/user/DevEnviro-3.2.0/DevEnviroViewer/DevEnviroViewer)
frame #25: <unknown function> + 0x8caf5 (0x55ab187e1af5 in /home/user/DevEnviro-3.2.0/DevEnviroViewer/DevEnviroViewer)
frame #26: <unknown function> + 0x8cc5a (0x55ab187e1c5a in /home/user/DevEnviro-3.2.0/DevEnviroViewer/DevEnviroViewer)
frame #27: <unknown function> + 0x2e1e6 (0x55ab187831e6 in /home/user/DevEnviro-3.2.0/DevEnviroViewer/DevEnviroViewer)
frame #28: __libc_start_main + 0xe7 (0x7f165a3b0bf7 in /lib/x86_64-linux-gnu/libc.so.6)
frame #29: <unknown function> + 0x3000a (0x55ab1878500a in /home/user/DevEnviro-3.2.0/DevEnviroViewer/DevEnviroViewer)

Here are some information:
Ubuntu 18.04
Nvidia 1080 Ti
Libtorch 1.7 with CUDA 11.0 (same behavior with CUDA 10.2)
Nvidia driver version: 450.80.02
CUDA version: 11.0

I’m struggeling with this over 2-3 weeks and googled a lot and tried out many “solutions” without any success.

I would be very glad if somebody could help me. Maybe it’s super easy and I’m just “blind”.

I’ve found an alternative solution by forcing the linker to link libtorch_cuda.so to my artifact. However, this is more of a hack and I would still appreciate if someone knows a more elegant way to fix this.

My solution was to add -Wl,--no-as-needed ltorch_cuda -Wl, --as-needed to the linker.