ankane / torch.rb

Deep learning for Ruby, powered by LibTorch
Other
704 stars 30 forks source link

ext.so raises undefined symbol error when torch-rb is required #11

Closed UlyssesZh closed 3 years ago

UlyssesZh commented 4 years ago
require 'torch-rb'

outputs

Traceback (most recent call last):
        2: from -:1:in `<main>'
        1: from /usr/lib/ruby/2.7.0/rubygems/core_ext/kernel_require.rb:92:in `require'
/usr/lib/ruby/2.7.0/rubygems/core_ext/kernel_require.rb:92:in `require': cannot load such file -- torch-rb (LoadError)
        9: from -:1:in `<main>'
        8: from /usr/lib/ruby/2.7.0/rubygems/core_ext/kernel_require.rb:156:in `require'
        7: from /usr/lib/ruby/2.7.0/rubygems/core_ext/kernel_require.rb:168:in `rescue in require'
        6: from /usr/lib/ruby/2.7.0/rubygems/core_ext/kernel_require.rb:168:in `require'
        5: from /var/lib/gems/2.7.0/gems/torch-rb-0.3.4/lib/torch-rb.rb:1:in `<top (required)>'
        4: from /usr/lib/ruby/2.7.0/rubygems/core_ext/kernel_require.rb:92:in `require'
        3: from /usr/lib/ruby/2.7.0/rubygems/core_ext/kernel_require.rb:92:in `require'
        2: from /var/lib/gems/2.7.0/gems/torch-rb-0.3.4/lib/torch.rb:2:in `<top (required)>'
        1: from /usr/lib/ruby/2.7.0/rubygems/core_ext/kernel_require.rb:92:in `require'
/usr/lib/ruby/2.7.0/rubygems/core_ext/kernel_require.rb:92:in `require': /var/lib/gems/2.7.0/gems/torch-rb-0.3.4/lib/torch/ext.so: undefined symbol: _ZN3c106DeviceC1ERKNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEE - /var/lib/gems/2.7.0/gems/torch-rb-0.3.4/lib/torch/ext.so (LoadError)

Ubuntu 20.04 gcc 9.3.0 LibTorch 1.6.0 Ruby 2.7.0 torch.rb 0.3.4

ankane commented 4 years ago

Hey @UlyssesZh, can you run gem install --verbose torch-rb -- --with-torch-dir=/path/to/libtorch and paste the output?

UlyssesZh commented 4 years ago

Hey @UlyssesZh, can you run gem install --verbose torch-rb -- --with-torch-dir=/path/to/libtorch and paste the output?


$ gem install --verbose torch-rb -- --with-torch-dir=/home/chain/Downloads/libtorch
HEAD https://rubygems.org/api/v1/dependencies
200 OK
GET https://rubygems.org/api/v1/dependencies?gems=torch-rb
200 OK
GET https://rubygems.org/api/v1/dependencies?gems=rice
200 OK
GET https://rubygems.org/quick/Marshal.4.8/torch-rb-0.3.4.gemspec.rz
200 OK
/var/lib/gems/2.7.0/gems/torch-rb-0.3.4/CHANGELOG.md
/var/lib/gems/2.7.0/gems/torch-rb-0.3.4/LICENSE.txt
/var/lib/gems/2.7.0/gems/torch-rb-0.3.4/README.md
/var/lib/gems/2.7.0/gems/torch-rb-0.3.4/ext/torch/ext.cpp
/var/lib/gems/2.7.0/gems/torch-rb-0.3.4/ext/torch/extconf.rb
/var/lib/gems/2.7.0/gems/torch-rb-0.3.4/ext/torch/templates.cpp
/var/lib/gems/2.7.0/gems/torch-rb-0.3.4/ext/torch/templates.hpp
/var/lib/gems/2.7.0/gems/torch-rb-0.3.4/lib/torch-rb.rb
/var/lib/gems/2.7.0/gems/torch-rb-0.3.4/lib/torch.rb
/var/lib/gems/2.7.0/gems/torch-rb-0.3.4/lib/torch/hub.rb
/var/lib/gems/2.7.0/gems/torch-rb-0.3.4/lib/torch/inspector.rb
/var/lib/gems/2.7.0/gems/torch-rb-0.3.4/lib/torch/native/dispatcher.rb
/var/lib/gems/2.7.0/gems/torch-rb-0.3.4/lib/torch/native/function.rb
/var/lib/gems/2.7.0/gems/torch-rb-0.3.4/lib/torch/native/generator.rb
/var/lib/gems/2.7.0/gems/torch-rb-0.3.4/lib/torch/native/native_functions.yaml
/var/lib/gems/2.7.0/gems/torch-rb-0.3.4/lib/torch/native/parser.rb
/var/lib/gems/2.7.0/gems/torch-rb-0.3.4/lib/torch/nn/adaptive_avg_pool1d.rb
/var/lib/gems/2.7.0/gems/torch-rb-0.3.4/lib/torch/nn/adaptive_avg_pool2d.rb
/var/lib/gems/2.7.0/gems/torch-rb-0.3.4/lib/torch/nn/adaptive_avg_pool3d.rb
/var/lib/gems/2.7.0/gems/torch-rb-0.3.4/lib/torch/nn/adaptive_avg_poolnd.rb
/var/lib/gems/2.7.0/gems/torch-rb-0.3.4/lib/torch/nn/adaptive_max_pool1d.rb
/var/lib/gems/2.7.0/gems/torch-rb-0.3.4/lib/torch/nn/adaptive_max_pool2d.rb
/var/lib/gems/2.7.0/gems/torch-rb-0.3.4/lib/torch/nn/adaptive_max_pool3d.rb
/var/lib/gems/2.7.0/gems/torch-rb-0.3.4/lib/torch/nn/adaptive_max_poolnd.rb
/var/lib/gems/2.7.0/gems/torch-rb-0.3.4/lib/torch/nn/alpha_dropout.rb
/var/lib/gems/2.7.0/gems/torch-rb-0.3.4/lib/torch/nn/avg_pool1d.rb
/var/lib/gems/2.7.0/gems/torch-rb-0.3.4/lib/torch/nn/avg_pool2d.rb
/var/lib/gems/2.7.0/gems/torch-rb-0.3.4/lib/torch/nn/avg_pool3d.rb
/var/lib/gems/2.7.0/gems/torch-rb-0.3.4/lib/torch/nn/avg_poolnd.rb
/var/lib/gems/2.7.0/gems/torch-rb-0.3.4/lib/torch/nn/batch_norm.rb
/var/lib/gems/2.7.0/gems/torch-rb-0.3.4/lib/torch/nn/batch_norm1d.rb
/var/lib/gems/2.7.0/gems/torch-rb-0.3.4/lib/torch/nn/batch_norm2d.rb
/var/lib/gems/2.7.0/gems/torch-rb-0.3.4/lib/torch/nn/batch_norm3d.rb
/var/lib/gems/2.7.0/gems/torch-rb-0.3.4/lib/torch/nn/bce_loss.rb
/var/lib/gems/2.7.0/gems/torch-rb-0.3.4/lib/torch/nn/bce_with_logits_loss.rb
/var/lib/gems/2.7.0/gems/torch-rb-0.3.4/lib/torch/nn/bilinear.rb
/var/lib/gems/2.7.0/gems/torch-rb-0.3.4/lib/torch/nn/constant_pad1d.rb
/var/lib/gems/2.7.0/gems/torch-rb-0.3.4/lib/torch/nn/constant_pad2d.rb
/var/lib/gems/2.7.0/gems/torch-rb-0.3.4/lib/torch/nn/constant_pad3d.rb
/var/lib/gems/2.7.0/gems/torch-rb-0.3.4/lib/torch/nn/constant_padnd.rb
/var/lib/gems/2.7.0/gems/torch-rb-0.3.4/lib/torch/nn/conv1d.rb
/var/lib/gems/2.7.0/gems/torch-rb-0.3.4/lib/torch/nn/conv2d.rb
/var/lib/gems/2.7.0/gems/torch-rb-0.3.4/lib/torch/nn/conv3d.rb
/var/lib/gems/2.7.0/gems/torch-rb-0.3.4/lib/torch/nn/convnd.rb
/var/lib/gems/2.7.0/gems/torch-rb-0.3.4/lib/torch/nn/cosine_embedding_loss.rb
/var/lib/gems/2.7.0/gems/torch-rb-0.3.4/lib/torch/nn/cosine_similarity.rb
/var/lib/gems/2.7.0/gems/torch-rb-0.3.4/lib/torch/nn/cross_entropy_loss.rb
/var/lib/gems/2.7.0/gems/torch-rb-0.3.4/lib/torch/nn/ctc_loss.rb
/var/lib/gems/2.7.0/gems/torch-rb-0.3.4/lib/torch/nn/dropout.rb
/var/lib/gems/2.7.0/gems/torch-rb-0.3.4/lib/torch/nn/dropout2d.rb
/var/lib/gems/2.7.0/gems/torch-rb-0.3.4/lib/torch/nn/dropout3d.rb
/var/lib/gems/2.7.0/gems/torch-rb-0.3.4/lib/torch/nn/dropoutnd.rb
/var/lib/gems/2.7.0/gems/torch-rb-0.3.4/lib/torch/nn/embedding.rb
/var/lib/gems/2.7.0/gems/torch-rb-0.3.4/lib/torch/nn/embedding_bag.rb
/var/lib/gems/2.7.0/gems/torch-rb-0.3.4/lib/torch/nn/feature_alpha_dropout.rb
/var/lib/gems/2.7.0/gems/torch-rb-0.3.4/lib/torch/nn/fold.rb
/var/lib/gems/2.7.0/gems/torch-rb-0.3.4/lib/torch/nn/functional.rb
/var/lib/gems/2.7.0/gems/torch-rb-0.3.4/lib/torch/nn/group_norm.rb
/var/lib/gems/2.7.0/gems/torch-rb-0.3.4/lib/torch/nn/gru.rb
/var/lib/gems/2.7.0/gems/torch-rb-0.3.4/lib/torch/nn/hardshrink.rb
/var/lib/gems/2.7.0/gems/torch-rb-0.3.4/lib/torch/nn/hinge_embedding_loss.rb
/var/lib/gems/2.7.0/gems/torch-rb-0.3.4/lib/torch/nn/identity.rb
/var/lib/gems/2.7.0/gems/torch-rb-0.3.4/lib/torch/nn/init.rb
/var/lib/gems/2.7.0/gems/torch-rb-0.3.4/lib/torch/nn/instance_norm.rb
/var/lib/gems/2.7.0/gems/torch-rb-0.3.4/lib/torch/nn/instance_norm1d.rb
/var/lib/gems/2.7.0/gems/torch-rb-0.3.4/lib/torch/nn/instance_norm2d.rb
/var/lib/gems/2.7.0/gems/torch-rb-0.3.4/lib/torch/nn/instance_norm3d.rb
/var/lib/gems/2.7.0/gems/torch-rb-0.3.4/lib/torch/nn/kl_div_loss.rb
/var/lib/gems/2.7.0/gems/torch-rb-0.3.4/lib/torch/nn/l1_loss.rb
/var/lib/gems/2.7.0/gems/torch-rb-0.3.4/lib/torch/nn/layer_norm.rb
/var/lib/gems/2.7.0/gems/torch-rb-0.3.4/lib/torch/nn/leaky_relu.rb
/var/lib/gems/2.7.0/gems/torch-rb-0.3.4/lib/torch/nn/linear.rb
/var/lib/gems/2.7.0/gems/torch-rb-0.3.4/lib/torch/nn/local_response_norm.rb
/var/lib/gems/2.7.0/gems/torch-rb-0.3.4/lib/torch/nn/log_sigmoid.rb
/var/lib/gems/2.7.0/gems/torch-rb-0.3.4/lib/torch/nn/log_softmax.rb
/var/lib/gems/2.7.0/gems/torch-rb-0.3.4/lib/torch/nn/loss.rb
/var/lib/gems/2.7.0/gems/torch-rb-0.3.4/lib/torch/nn/lp_pool1d.rb
/var/lib/gems/2.7.0/gems/torch-rb-0.3.4/lib/torch/nn/lp_pool2d.rb
/var/lib/gems/2.7.0/gems/torch-rb-0.3.4/lib/torch/nn/lp_poolnd.rb
/var/lib/gems/2.7.0/gems/torch-rb-0.3.4/lib/torch/nn/lstm.rb
/var/lib/gems/2.7.0/gems/torch-rb-0.3.4/lib/torch/nn/margin_ranking_loss.rb
/var/lib/gems/2.7.0/gems/torch-rb-0.3.4/lib/torch/nn/max_pool1d.rb
/var/lib/gems/2.7.0/gems/torch-rb-0.3.4/lib/torch/nn/max_pool2d.rb
/var/lib/gems/2.7.0/gems/torch-rb-0.3.4/lib/torch/nn/max_pool3d.rb
/var/lib/gems/2.7.0/gems/torch-rb-0.3.4/lib/torch/nn/max_poolnd.rb
/var/lib/gems/2.7.0/gems/torch-rb-0.3.4/lib/torch/nn/max_unpool1d.rb
/var/lib/gems/2.7.0/gems/torch-rb-0.3.4/lib/torch/nn/max_unpool2d.rb
/var/lib/gems/2.7.0/gems/torch-rb-0.3.4/lib/torch/nn/max_unpool3d.rb
/var/lib/gems/2.7.0/gems/torch-rb-0.3.4/lib/torch/nn/max_unpoolnd.rb
/var/lib/gems/2.7.0/gems/torch-rb-0.3.4/lib/torch/nn/module.rb
/var/lib/gems/2.7.0/gems/torch-rb-0.3.4/lib/torch/nn/mse_loss.rb
/var/lib/gems/2.7.0/gems/torch-rb-0.3.4/lib/torch/nn/multi_label_margin_loss.rb
/var/lib/gems/2.7.0/gems/torch-rb-0.3.4/lib/torch/nn/multi_label_soft_margin_loss.rb
/var/lib/gems/2.7.0/gems/torch-rb-0.3.4/lib/torch/nn/multi_margin_loss.rb
/var/lib/gems/2.7.0/gems/torch-rb-0.3.4/lib/torch/nn/nll_loss.rb
/var/lib/gems/2.7.0/gems/torch-rb-0.3.4/lib/torch/nn/pairwise_distance.rb
/var/lib/gems/2.7.0/gems/torch-rb-0.3.4/lib/torch/nn/parameter.rb
/var/lib/gems/2.7.0/gems/torch-rb-0.3.4/lib/torch/nn/poisson_nll_loss.rb
/var/lib/gems/2.7.0/gems/torch-rb-0.3.4/lib/torch/nn/prelu.rb
/var/lib/gems/2.7.0/gems/torch-rb-0.3.4/lib/torch/nn/reflection_pad1d.rb
/var/lib/gems/2.7.0/gems/torch-rb-0.3.4/lib/torch/nn/reflection_pad2d.rb
/var/lib/gems/2.7.0/gems/torch-rb-0.3.4/lib/torch/nn/reflection_padnd.rb
/var/lib/gems/2.7.0/gems/torch-rb-0.3.4/lib/torch/nn/relu.rb
/var/lib/gems/2.7.0/gems/torch-rb-0.3.4/lib/torch/nn/replication_pad1d.rb
/var/lib/gems/2.7.0/gems/torch-rb-0.3.4/lib/torch/nn/replication_pad2d.rb
/var/lib/gems/2.7.0/gems/torch-rb-0.3.4/lib/torch/nn/replication_pad3d.rb
/var/lib/gems/2.7.0/gems/torch-rb-0.3.4/lib/torch/nn/replication_padnd.rb
/var/lib/gems/2.7.0/gems/torch-rb-0.3.4/lib/torch/nn/rnn.rb
/var/lib/gems/2.7.0/gems/torch-rb-0.3.4/lib/torch/nn/rnn_base.rb
/var/lib/gems/2.7.0/gems/torch-rb-0.3.4/lib/torch/nn/sequential.rb
/var/lib/gems/2.7.0/gems/torch-rb-0.3.4/lib/torch/nn/sigmoid.rb
/var/lib/gems/2.7.0/gems/torch-rb-0.3.4/lib/torch/nn/smooth_l1_loss.rb
/var/lib/gems/2.7.0/gems/torch-rb-0.3.4/lib/torch/nn/soft_margin_loss.rb
/var/lib/gems/2.7.0/gems/torch-rb-0.3.4/lib/torch/nn/softmax.rb
/var/lib/gems/2.7.0/gems/torch-rb-0.3.4/lib/torch/nn/softmax2d.rb
/var/lib/gems/2.7.0/gems/torch-rb-0.3.4/lib/torch/nn/softmin.rb
/var/lib/gems/2.7.0/gems/torch-rb-0.3.4/lib/torch/nn/softplus.rb
/var/lib/gems/2.7.0/gems/torch-rb-0.3.4/lib/torch/nn/softshrink.rb
/var/lib/gems/2.7.0/gems/torch-rb-0.3.4/lib/torch/nn/softsign.rb
/var/lib/gems/2.7.0/gems/torch-rb-0.3.4/lib/torch/nn/tanh.rb
/var/lib/gems/2.7.0/gems/torch-rb-0.3.4/lib/torch/nn/tanhshrink.rb
/var/lib/gems/2.7.0/gems/torch-rb-0.3.4/lib/torch/nn/triplet_margin_loss.rb
/var/lib/gems/2.7.0/gems/torch-rb-0.3.4/lib/torch/nn/unfold.rb
/var/lib/gems/2.7.0/gems/torch-rb-0.3.4/lib/torch/nn/utils.rb
/var/lib/gems/2.7.0/gems/torch-rb-0.3.4/lib/torch/nn/weighted_loss.rb
/var/lib/gems/2.7.0/gems/torch-rb-0.3.4/lib/torch/nn/zero_pad2d.rb
/var/lib/gems/2.7.0/gems/torch-rb-0.3.4/lib/torch/optim/adadelta.rb
/var/lib/gems/2.7.0/gems/torch-rb-0.3.4/lib/torch/optim/adagrad.rb
/var/lib/gems/2.7.0/gems/torch-rb-0.3.4/lib/torch/optim/adam.rb
/var/lib/gems/2.7.0/gems/torch-rb-0.3.4/lib/torch/optim/adamax.rb
/var/lib/gems/2.7.0/gems/torch-rb-0.3.4/lib/torch/optim/adamw.rb
/var/lib/gems/2.7.0/gems/torch-rb-0.3.4/lib/torch/optim/asgd.rb
/var/lib/gems/2.7.0/gems/torch-rb-0.3.4/lib/torch/optim/lr_scheduler/cosine_annealing_lr.rb
/var/lib/gems/2.7.0/gems/torch-rb-0.3.4/lib/torch/optim/lr_scheduler/exponential_lr.rb
/var/lib/gems/2.7.0/gems/torch-rb-0.3.4/lib/torch/optim/lr_scheduler/lambda_lr.rb
/var/lib/gems/2.7.0/gems/torch-rb-0.3.4/lib/torch/optim/lr_scheduler/lr_scheduler.rb
/var/lib/gems/2.7.0/gems/torch-rb-0.3.4/lib/torch/optim/lr_scheduler/multi_step_lr.rb
/var/lib/gems/2.7.0/gems/torch-rb-0.3.4/lib/torch/optim/lr_scheduler/multiplicative_lr.rb
/var/lib/gems/2.7.0/gems/torch-rb-0.3.4/lib/torch/optim/lr_scheduler/step_lr.rb
/var/lib/gems/2.7.0/gems/torch-rb-0.3.4/lib/torch/optim/optimizer.rb
/var/lib/gems/2.7.0/gems/torch-rb-0.3.4/lib/torch/optim/rmsprop.rb
/var/lib/gems/2.7.0/gems/torch-rb-0.3.4/lib/torch/optim/rprop.rb
/var/lib/gems/2.7.0/gems/torch-rb-0.3.4/lib/torch/optim/sgd.rb
/var/lib/gems/2.7.0/gems/torch-rb-0.3.4/lib/torch/tensor.rb
/var/lib/gems/2.7.0/gems/torch-rb-0.3.4/lib/torch/utils/data.rb
/var/lib/gems/2.7.0/gems/torch-rb-0.3.4/lib/torch/utils/data/data_loader.rb
/var/lib/gems/2.7.0/gems/torch-rb-0.3.4/lib/torch/utils/data/dataset.rb
/var/lib/gems/2.7.0/gems/torch-rb-0.3.4/lib/torch/utils/data/subset.rb
/var/lib/gems/2.7.0/gems/torch-rb-0.3.4/lib/torch/utils/data/tensor_dataset.rb
/var/lib/gems/2.7.0/gems/torch-rb-0.3.4/lib/torch/version.rb
Building native extensions with: '--with-torch-dir=/home/chain/Downloads/libtorch'
This could take a while...
current directory: /var/lib/gems/2.7.0/gems/torch-rb-0.3.4/ext/torch
["/usr/bin/ruby2.7", "-I", "/usr/lib/ruby/2.7.0", "-r", "./siteconf20200829-16721-13ykrz8.rb", "extconf.rb", "--with-torch-dir=/home/chain/Downloads/libtorch"]
checking for -lstdc++... yes
checking for -lomp... no
checking for -lgomp... yes
checking for -ltorch... yes
checking for -lmkldnn... yes
checking for -lnnpack... yes
checking for -lcuda... no
Generating C++ functions...
creating Makefile
current directory: /var/lib/gems/2.7.0/gems/torch-rb-0.3.4/ext/torch
"make \"DESTDIR=\" clean"

current directory: /var/lib/gems/2.7.0/gems/torch-rb-0.3.4/ext/torch "make \"DESTDIR=\"" compiling ext.cpp compiling nn_functions.cpp compiling templates.cpp compiling tensor_functions.cpp compiling torch_functions.cpp linking shared-object torch/ext.so current directory: /var/lib/gems/2.7.0/gems/torch-rb-0.3.4/ext/torch "make \"DESTDIR=\" install" /usr/bin/install -c -m 0755 ext.so ./.gem.20200829-16721-11gbe09/torch current directory: /var/lib/gems/2.7.0/gems/torch-rb-0.3.4/ext/torch /usr/bin/ruby2.7 -I /usr/lib/ruby/2.7.0 -r ./siteconf20200829-16721-13ykrz8.rb extconf.rb --with-torch-dir\=/home/chain/Downloads/libtorch current directory: /var/lib/gems/2.7.0/gems/torch-rb-0.3.4/ext/torch make "DESTDIR=" clean current directory: /var/lib/gems/2.7.0/gems/torch-rb-0.3.4/ext/torch make "DESTDIR=" current directory: /var/lib/gems/2.7.0/gems/torch-rb-0.3.4/ext/torch make "DESTDIR=" install Successfully installed torch-rb-0.3.4 Parsing documentation for torch-rb-0.3.4 Parsing sources... 100% [161/161] lib/torch/version.rb Installing ri documentation for torch-rb-0.3.4 Done installing documentation for torch-rb after 0 seconds 1 gem installed

ankane commented 4 years ago

It looks like that's the error that's thrown the with non-ABI version. Make sure to download the ABI version of LibTorch.

UlyssesZh commented 4 years ago

It looks like that's the error that's thrown the with non-ABI version. Make sure to download the ABI version of LibTorch.

I downloaded the cxx11 ABI version on pytorch.org: https://download.pytorch.org/libtorch/cu102/libtorch-cxx11-abi-shared-with-deps-1.6.0.zip

ankane commented 4 years ago

I'm not able to reproduce with the ABI version unfortunately.

ankane commented 3 years ago

Cleaning up issues