Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Compatibility with nightly PyTorch for M1 acceleration #542

Closed
oersted opened this issue Oct 25, 2022 · 9 comments
Closed

Compatibility with nightly PyTorch for M1 acceleration #542

oersted opened this issue Oct 25, 2022 · 9 comments

Comments

@oersted
Copy link

oersted commented Oct 25, 2022

tch does work on M1 at present (see https://github.com/ssoudan/tch-m1), however MPS acceleration is only implemented for PyTorch Nightly and tch is only compatible with PyTorch 1.12. Adapting tch to the breaking API changes will need to be done anyways once the current Nightly becomes a full release, and it seems to be the only barrier to M1 GPU acceleration which is rather in demand (#524, #518, #517, #501, #488, #464, #440, #412, #346).

Here's the full compilation error
warning: clang: warning: -Wl,-rpath=/Users/oersted/Workspace/indexed-disamb/torch/lib: 'linker' input unused [-Wunused-command-line-argument]
warning: clang: warning: -Wl,-rpath=/Users/oersted/Workspace/indexed-disamb/torch/lib: 'linker' input unused [-Wunused-command-line-argument]
warning: In file included from libtch/torch_api.cpp:1434:
warning: libtch/torch_api_generated.cpp.h:294:29: error: no member named '_amp_update_scale_functional' in namespace 'torch'
warning:     auto outputs__ = torch::_amp_update_scale_functional(*self, *growth_tracker, *found_inf, scale_growth_factor, scale_backoff_factor, growth_interval);
warning:                      ~~~~~~~^
warning: libtch/torch_api.h:16:5: note: expanded from macro 'PROTECT'
warning:     x \
warning:     ^
warning: In file included from libtch/torch_api.cpp:1434:
warning: libtch/torch_api_generated.cpp.h:407:29: error: no member named '_coalesced_functional' in namespace 'torch'
warning:     auto outputs__ = torch::_coalesced_functional(*self, (bool)coalesced);
warning:                      ~~~~~~~^
warning: libtch/torch_api.h:16:5: note: expanded from macro 'PROTECT'
warning:     x \
warning:     ^
warning: In file included from libtch/torch_api.cpp:1434:
warning: libtch/torch_api_generated.cpp.h:602:29: error: no member named '_det_lu_based_helper' in namespace 'torch'
warning:     auto outputs__ = torch::_det_lu_based_helper(*self);
warning:                      ~~~~~~~^
warning: libtch/torch_api.h:16:5: note: expanded from macro 'PROTECT'
warning:     x \
warning:     ^
warning: In file included from libtch/torch_api.cpp:1434:
warning: libtch/torch_api_generated.cpp.h:611:29: error: no member named '_det_lu_based_helper_backward_helper' in namespace 'torch'
warning:     auto outputs__ = torch::_det_lu_based_helper_backward_helper(*det_grad, *det, *self, *lu, *pivs);
warning:                      ~~~~~~~^
warning: libtch/torch_api.h:16:5: note: expanded from macro 'PROTECT'
warning:     x \
warning:     ^
warning: In file included from libtch/torch_api.cpp:1434:
warning: libtch/torch_api_generated.cpp.h:938:29: error: no member named '_index_put_impl_functional' in namespace 'torch'
warning:     auto outputs__ = torch::_index_put_impl_functional(*self, of_carray_tensor_opt(indices_data, indices_len), *values, (bool)accumulate, (bool)unsafe);
warning:                      ~~~~~~~^
warning: libtch/torch_api.h:16:5: note: expanded from macro 'PROTECT'
warning:     x \
warning:     ^
warning: In file included from libtch/torch_api.cpp:1434:
warning: libtch/torch_api_generated.cpp.h:979:29: error: no member named '_linalg_inv_out_helper_out' in namespace 'torch'
warning:     auto outputs__ = torch::_linalg_inv_out_helper_out(*out, *self, *infos_lu, *infos_getri);
warning:                      ~~~~~~~^
warning: libtch/torch_api.h:16:5: note: expanded from macro 'PROTECT'
warning:     x \
warning:     ^
warning: In file included from libtch/torch_api.cpp:1434:
warning: libtch/torch_api_generated.cpp.h:986:29: error: no member named '_linalg_inv_out_helper_' in namespace 'torch'
warning:     auto outputs__ = torch::_linalg_inv_out_helper_(*self, *infos_lu, *infos_getri);
warning:                      ~~~~~~~^
warning: libtch/torch_api.h:16:5: note: expanded from macro 'PROTECT'
warning:     x \
warning:     ^
warning: In file included from libtch/torch_api.cpp:1434:
warning: libtch/torch_api_generated.cpp.h:993:29: error: no member named '_linalg_inv_out_helper_functional' in namespace 'torch'
warning:     auto outputs__ = torch::_linalg_inv_out_helper_functional(*self, *infos_lu, *infos_getri);
warning:                      ~~~~~~~^
warning: libtch/torch_api.h:16:5: note: expanded from macro 'PROTECT'
warning:     x \
warning:     ^
warning: In file included from libtch/torch_api.cpp:1434:
warning: libtch/torch_api_generated.cpp.h:1002:29: error: no member named '_linalg_qr_helper' in namespace 'torch'
warning:     auto outputs__ = torch::_linalg_qr_helper(*self, std::string(mode_ptr, mode_len));
warning:                      ~~~~~~~^
warning: libtch/torch_api.h:16:5: note: expanded from macro 'PROTECT'
warning:     x \
warning:     ^
warning: In file included from libtch/torch_api.cpp:1434:
warning: libtch/torch_api_generated.cpp.h:1188:22: error: no member named '_mps_linear' in namespace 'torch'; did you mean 'at::native::_mps_linear'?
warning:     auto outputs__ = torch::_mps_linear(*self, *weight, (bias ? *bias : torch::Tensor()));
warning:                      ^~~~~~~~~~~~~~~~~~
warning:                      at::native::_mps_linear
warning: libtch/torch_api.h:16:5: note: expanded from macro 'PROTECT'
warning:     x \
warning:     ^
warning: /Users/oersted/Workspace/indexed-disamb/torch/include/ATen/ops/linear_native.h:22:22: note: 'at::native::_mps_linear' declared here
warning: TORCH_API at::Tensor _mps_linear(const at::Tensor & input, const at::Tensor & weight, const c10::optional<at::Tensor> & bias={});
warning:                      ^
warning: In file included from libtch/torch_api.cpp:1434:
warning: libtch/torch_api_generated.cpp.h:1195:29: error: no member named '_mps_linear_backward_input' in namespace 'torch'; did you mean 'mkldnn_linear_backward_input'?
warning:     auto outputs__ = torch::_mps_linear_backward_input(torch::IntArrayRef(input_size_data, input_size_len), *grad_output, *weight);
warning:                      ~~~~~~~^~~~~~~~~~~~~~~~~~~~~~~~~~
warning:                             mkldnn_linear_backward_input
warning: libtch/torch_api.h:16:5: note: expanded from macro 'PROTECT'
warning:     x \
warning:     ^
warning: /Users/oersted/Workspace/indexed-disamb/torch/include/ATen/ops/mkldnn_linear_backward_input.h:26:19: note: 'mkldnn_linear_backward_input' declared here
warning: inline at::Tensor mkldnn_linear_backward_input(at::IntArrayRef input_size, const at::Tensor & grad_output, const at::Tensor & weight) {
warning:                   ^
warning: In file included from libtch/torch_api.cpp:1434:
warning: libtch/torch_api_generated.cpp.h:1202:29: error: no member named '_mps_linear_backward_weights' in namespace 'torch'; did you mean 'mkldnn_linear_backward_weights'?
warning:     auto outputs__ = torch::_mps_linear_backward_weights(*grad_output, *input, *weight, (bool)bias_defined);
warning:                      ~~~~~~~^~~~~~~~~~~~~~~~~~~~~~~~~~~~
warning:                             mkldnn_linear_backward_weights
warning: libtch/torch_api.h:16:5: note: expanded from macro 'PROTECT'
warning:     x \
warning:     ^
warning: /Users/oersted/Workspace/indexed-disamb/torch/include/ATen/ops/mkldnn_linear_backward_weights.h:26:44: note: 'mkldnn_linear_backward_weights' declared here
warning: inline ::std::tuple<at::Tensor,at::Tensor> mkldnn_linear_backward_weights(const at::Tensor & grad_output, const at::Tensor & input, const at::Tensor & weight, bool bias_defined) {
warning:                                            ^
warning: In file included from libtch/torch_api.cpp:1434:
warning: libtch/torch_api_generated.cpp.h:1267:28: error: no member named '_nested_tensor_layer_norm' in 'at::Tensor'
warning:     auto outputs__ = self->_nested_tensor_layer_norm((weight ? *weight : torch::Tensor()), (bias ? *bias : torch::Tensor()), eps);
warning:                      ~~~~  ^
warning: libtch/torch_api.h:16:5: note: expanded from macro 'PROTECT'
warning:     x \
warning:     ^
warning: In file included from libtch/torch_api.cpp:1434:
warning: libtch/torch_api_generated.cpp.h:1402:29: error: no member named '_resize_output_functional' in namespace 'torch'
warning:     auto outputs__ = torch::_resize_output_functional(*self, torch::IntArrayRef(size_data, size_len), device_of_int(device));
warning:                      ~~~~~~~^
warning: libtch/torch_api.h:16:5: note: expanded from macro 'PROTECT'
warning:     x \
warning:     ^
warning: In file included from libtch/torch_api.cpp:1434:
warning: libtch/torch_api_generated.cpp.h:1452:154: error: reference to type 'const c10::optional<at::Tensor>' could not bind to an lvalue of type 'int64_t' (aka 'long long')
warning:     auto outputs__ = torch::_segment_reduce_backward(*grad, *output, *data, std::string(reduce_ptr, reduce_len), (lengths ? *lengths : torch::Tensor()), axis);
warning:                                                                                                                                                          ^~~~
warning: libtch/torch_api.h:16:5: note: expanded from macro 'PROTECT'
warning:     x \
warning:     ^
warning: /Users/oersted/Workspace/indexed-disamb/torch/include/ATen/ops/_segment_reduce_backward.h:26:226: note: passing argument to parameter 'offsets' here
warning: inline at::Tensor _segment_reduce_backward(const at::Tensor & grad, const at::Tensor & output, const at::Tensor & data, c10::string_view reduce, const c10::optional<at::Tensor> & lengths={}, const c10::optional<at::Tensor> & offsets={}, int64_t axis=0, const c10::optional<at::Scalar> & initial=c10::nullopt) {
warning:                                                                                                                                                                                                                                  ^
warning: In file included from libtch/torch_api.cpp:1434:
warning: libtch/torch_api_generated.cpp.h:1847:29: error: no member named '_torch_cuda_cu_linker_symbol_op' in namespace 'torch'
warning:     auto outputs__ = torch::_torch_cuda_cu_linker_symbol_op(*self);
warning:                      ~~~~~~~^
warning: libtch/torch_api.h:16:5: note: expanded from macro 'PROTECT'
warning:     x \
warning:     ^
warning: In file included from libtch/torch_api.cpp:1434:
warning: libtch/torch_api_generated.cpp.h:2796:22: error: no matching function for call to 'arange_out'
warning:     auto outputs__ = torch::arange_out(*out, *start, *end);
warning:                      ^~~~~~~~~~~~~~~~~
warning: libtch/torch_api.h:16:5: note: expanded from macro 'PROTECT'
warning:     x \
warning:     ^
warning: /Users/oersted/Workspace/indexed-disamb/torch/include/ATen/ops/arange.h:53:21: note: candidate function not viable: requires 2 arguments, but 3 were provided
warning: inline at::Tensor & arange_out(at::Tensor & out, const at::Scalar & end) {
warning:                     ^
warning: /Users/oersted/Workspace/indexed-disamb/torch/include/ATen/ops/arange.h:62:21: note: candidate function not viable: requires 4 arguments, but 3 were provided
warning: inline at::Tensor & arange_out(at::Tensor & out, const at::Scalar & start, const at::Scalar & end, const at::Scalar & step) {
warning:                     ^
warning: In file included from libtch/torch_api.cpp:1434:
warning: libtch/torch_api_generated.cpp.h:3388:29: error: no member named 'bernoulli_functional' in namespace 'torch'
warning:     auto outputs__ = torch::bernoulli_functional(*self, *p);
warning:                      ~~~~~~~^
warning: libtch/torch_api.h:16:5: note: expanded from macro 'PROTECT'
warning:     x \
warning:     ^
warning: In file included from libtch/torch_api.cpp:1434:
warning: libtch/torch_api_generated.cpp.h:3437:29: error: no member named 'binary_cross_entropy_with_logits_backward' in namespace 'torch'; did you mean 'binary_cross_entropy_with_logits_out'?
warning:     auto outputs__ = torch::binary_cross_entropy_with_logits_backward(*grad_output, *self, *target, (weight ? *weight : torch::Tensor()), (pos_weight ? *pos_weight : torch::Tensor()), reduction);
warning:                      ~~~~~~~^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
warning:                             binary_cross_entropy_with_logits_out
warning: libtch/torch_api.h:16:5: note: expanded from macro 'PROTECT'
warning:     x \
warning:     ^
warning: /Users/oersted/Workspace/indexed-disamb/torch/include/ATen/ops/binary_cross_entropy_with_logits.h:31:21: note: 'binary_cross_entropy_with_logits_out' declared here
warning: inline at::Tensor & binary_cross_entropy_with_logits_out(at::Tensor & out, const at::Tensor & self, const at::Tensor & target, const c10::optional<at::Tensor> & weight={}, const c10::optional<at::Tensor> & pos_weight={}, int64_t reduction=at::Reduction::Mean) {
warning:                     ^
warning: fatal error: too many errors emitted, stopping now [-ferror-limit=]
warning: 20 errors generated.

error: failed to run custom build command for `torch-sys v0.8.0`
@LaurentMazare
Copy link
Owner

That's great, note that #538 adds support for PyTorch 1.13 which is at the RC stage. Once PyTorch 1.13 has been released (this is planned for the 27th of October), this will be merged into the main branch and hopefully this will include the changes that you need for M1 GPU acceleration.

@LaurentMazare
Copy link
Owner

The 1.13 version is now released and the github tip uses it, so hopefully this will give you M1 acceleration.

@stjepangolemac
Copy link

stjepangolemac commented Nov 2, 2022

I don't have a local pytorch installation so I suppose the sys crate downloaded a CPU version. It can't compile and I get a bunch of these:

building for macOS-arm64 but attempting to link with file built for macOS-x86_64

Any ideas?

@danieldk
Copy link
Contributor

danieldk commented Nov 4, 2022

Any ideas?

The upstream libtorch archives still ship without aarch64 support. Just install the Python package and then:

export LIBTORCH=$(python -c 'import torch; from pathlib import Path; print(Path(torch.__file__).parent)')
export DYLD_LIBRARY_PATH=${LIBTORCH}/lib

@simlay
Copy link
Contributor

simlay commented Nov 12, 2022

I don't have a local pytorch installation so I suppose the sys crate downloaded a CPU version. It can't compile and I get a bunch of these:

building for macOS-arm64 but attempting to link with file built for macOS-x86_64

Any ideas?

I authored pytorch/pytorch#88911 to hopefully fix this. Unclear if that PR is all that's needed.

@infalmo
Copy link

infalmo commented Nov 28, 2022

Any ideas?

The upstream libtorch archives still ship without aarch64 support. Just install the Python package and then:

export LIBTORCH=$(python -c 'import torch; from pathlib import Path; print(Path(torch.__file__).parent)')
export LD_LIBRARY_PATH=${LIBTORCH}/lib

This works for compiling this repo. However, compiling my project that depends on this crate (using the main branch) results in the following error:

error: linking with `cc` failed: exit status: 1
  |
  = note: "cc" "/tmp/rustcLWbVv0/symbols.o" "/home/ubuntu/GitHub/hatetris/target/debug/deps/hatetris-b41645ee19a314f5.11av0w3tc946sta9.rcgu.o" "/home/ubuntu/GitHub/hatetris/target/debug/deps/hatetris-b41645ee19a314f5.11k3r5lmce1ul2hu.rcgu.o" "/home/ubuntu/GitHub/hatetris/target/debug/deps/hatetris-b41645ee19a314f5.12cxi577uk12kqs6.rcgu.o" "/home/ubuntu/GitHub/hatetris/target/debug/deps/hatetris-b41645ee19a314f5.136atsybkddqox61.rcgu.o" "/home/ubuntu/GitHub/hatetris/target/debug/deps/hatetris-b41645ee19a314f5.13t51ayy7vvirj0k.rcgu.o" "/home/ubuntu/GitHub/hatetris/target/debug/deps/hatetris-b41645ee19a314f5.159vxm7eyo21b1xy.rcgu.o" "/home/ubuntu/GitHub/hatetris/target/debug/deps/hatetris-b41645ee19a314f5.17okp3649hlwz81z.rcgu.o" "/home/ubuntu/GitHub/hatetris/target/debug/deps/hatetris-b41645ee19a314f5.17q8oxpq7mke2ma6.rcgu.o" "/home/ubuntu/GitHub/hatetris/target/debug/deps/hatetris-b41645ee19a314f5.185qu4cdlflmiwhl.rcgu.o" "/home/ubuntu/GitHub/hatetris/target/debug/deps/hatetris-b41645ee19a314f5.1adhzn7lhw43y8i3.rcgu.o" "/home/ubuntu/GitHub/hatetris/target/debug/deps/hatetris-b41645ee19a314f5.1apfcv21f7qoeley.rcgu.o" "/home/ubuntu/GitHub/hatetris/target/debug/deps/hatetris-b41645ee19a314f5.1dctbvaa9vlwgmxx.rcgu.o" "/home/ubuntu/GitHub/hatetris/target/debug/deps/hatetris-b41645ee19a314f5.1dg0pamd44ygzgm9.rcgu.o" "/home/ubuntu/GitHub/hatetris/target/debug/deps/hatetris-b41645ee19a314f5.1ftelm3dc7t3z336.rcgu.o" "/home/ubuntu/GitHub/hatetris/target/debug/deps/hatetris-b41645ee19a314f5.1g8qxm53mutlr240.rcgu.o" "/home/ubuntu/GitHub/hatetris/target/debug/deps/hatetris-b41645ee19a314f5.1i5gzwg0y6etoe19.rcgu.o" "/home/ubuntu/GitHub/hatetris/target/debug/deps/hatetris-b41645ee19a314f5.1j46b3h481mya26t.rcgu.o" "/home/ubuntu/GitHub/hatetris/target/debug/deps/hatetris-b41645ee19a314f5.1k10uz9anrh73x4k.rcgu.o" "/home/ubuntu/GitHub/hatetris/target/debug/deps/hatetris-b41645ee19a314f5.1lnk0i326jo9hl2l.rcgu.o" "/home/ubuntu/GitHub/hatetris/target/debug/deps/hatetris-b41645ee19a314f5.1nrt7bbbkerqfzm2.rcgu.o" "/home/ubuntu/GitHub/hatetris/target/debug/deps/hatetris-b41645ee19a314f5.1oamurdont77a4m9.rcgu.o" "/home/ubuntu/GitHub/hatetris/target/debug/deps/hatetris-b41645ee19a314f5.1p2kop3huzc33vs8.rcgu.o" "/home/ubuntu/GitHub/hatetris/target/debug/deps/hatetris-b41645ee19a314f5.1pube6xkewky18pt.rcgu.o" "/home/ubuntu/GitHub/hatetris/target/debug/deps/hatetris-b41645ee19a314f5.1pxj5wxly98zfxys.rcgu.o" "/home/ubuntu/GitHub/hatetris/target/debug/deps/hatetris-b41645ee19a314f5.1rjmpovh6932m12v.rcgu.o" "/home/ubuntu/GitHub/hatetris/target/debug/deps/hatetris-b41645ee19a314f5.1rzc03t0l7cil728.rcgu.o" "/home/ubuntu/GitHub/hatetris/target/debug/deps/hatetris-b41645ee19a314f5.1snutts5pr9c7wq7.rcgu.o" "/home/ubuntu/GitHub/hatetris/target/debug/deps/hatetris-b41645ee19a314f5.1txjlvx0y7vys88y.rcgu.o" "/home/ubuntu/GitHub/hatetris/target/debug/deps/hatetris-b41645ee19a314f5.1usixk576yy8yly2.rcgu.o" "/home/ubuntu/GitHub/hatetris/target/debug/deps/hatetris-b41645ee19a314f5.1uzwkweycgt1lbv.rcgu.o" "/home/ubuntu/GitHub/hatetris/target/debug/deps/hatetris-b41645ee19a314f5.1vw4h7p2tc847hzb.rcgu.o" "/home/ubuntu/GitHub/hatetris/target/debug/deps/hatetris-b41645ee19a314f5.1w968eaadwt2ckan.rcgu.o" "/home/ubuntu/GitHub/hatetris/target/debug/deps/hatetris-b41645ee19a314f5.1xzm632zsjuq8vji.rcgu.o" "/home/ubuntu/GitHub/hatetris/target/debug/deps/hatetris-b41645ee19a314f5.1z3d5nwrlkl6j7f.rcgu.o" "/home/ubuntu/GitHub/hatetris/target/debug/deps/hatetris-b41645ee19a314f5.203kwfht43xisth4.rcgu.o" "/home/ubuntu/GitHub/hatetris/target/debug/deps/hatetris-b41645ee19a314f5.23vskvw5ngkuz20.rcgu.o" "/home/ubuntu/GitHub/hatetris/target/debug/deps/hatetris-b41645ee19a314f5.23zf5j9lwvamh6vj.rcgu.o" "/home/ubuntu/GitHub/hatetris/target/debug/deps/hatetris-b41645ee19a314f5.248ukjlsko094c1a.rcgu.o" "/home/ubuntu/GitHub/hatetris/target/debug/deps/hatetris-b41645ee19a314f5.258j457u4bzhq309.rcgu.o" "/home/ubuntu/GitHub/hatetris/target/debug/deps/hatetris-b41645ee19a314f5.28sbrh1u8jcp1lnj.rcgu.o" "/home/ubuntu/GitHub/hatetris/target/debug/deps/hatetris-b41645ee19a314f5.29bpurs26f44hfvi.rcgu.o" "/home/ubuntu/GitHub/hatetris/target/debug/deps/hatetris-b41645ee19a314f5.2dco8ceudbus92lq.rcgu.o" "/home/ubuntu/GitHub/hatetris/target/debug/deps/hatetris-b41645ee19a314f5.2dvutpmw1o4a0om1.rcgu.o" "/home/ubuntu/GitHub/hatetris/target/debug/deps/hatetris-b41645ee19a314f5.2g4qphawpcj11ens.rcgu.o" "/home/ubuntu/GitHub/hatetris/target/debug/deps/hatetris-b41645ee19a314f5.2gzb8grtemk59f9n.rcgu.o" "/home/ubuntu/GitHub/hatetris/target/debug/deps/hatetris-b41645ee19a314f5.2hokmnvlp1c8flv1.rcgu.o" "/home/ubuntu/GitHub/hatetris/target/debug/deps/hatetris-b41645ee19a314f5.2jcwvpuvw3f6lq9.rcgu.o" "/home/ubuntu/GitHub/hatetris/target/debug/deps/hatetris-b41645ee19a314f5.2judbtqpceg08n30.rcgu.o" "/home/ubuntu/GitHub/hatetris/target/debug/deps/hatetris-b41645ee19a314f5.2jw2jt8rgr86essc.rcgu.o" "/home/ubuntu/GitHub/hatetris/target/debug/deps/hatetris-b41645ee19a314f5.2ldc8vhgunf9p63h.rcgu.o" "/home/ubuntu/GitHub/hatetris/target/debug/deps/hatetris-b41645ee19a314f5.2mha3pa7j5u7yeea.rcgu.o" "/home/ubuntu/GitHub/hatetris/target/debug/deps/hatetris-b41645ee19a314f5.2mmun9sae6pvpog.rcgu.o" "/home/ubuntu/GitHub/hatetris/target/debug/deps/hatetris-b41645ee19a314f5.2nzjt8e02hjgr3r9.rcgu.o" "/home/ubuntu/GitHub/hatetris/target/debug/deps/hatetris-b41645ee19a314f5.2pir720wxkj5bopj.rcgu.o" "/home/ubuntu/GitHub/hatetris/target/debug/deps/hatetris-b41645ee19a314f5.2sawc700aro3rst3.rcgu.o" "/home/ubuntu/GitHub/hatetris/target/debug/deps/hatetris-b41645ee19a314f5.2v6tyb82c5dx226s.rcgu.o" "/home/ubuntu/GitHub/hatetris/target/debug/deps/hatetris-b41645ee19a314f5.2w3yyq0zp2deyix5.rcgu.o" "/home/ubuntu/GitHub/hatetris/target/debug/deps/hatetris-b41645ee19a314f5.2w5ab6ue1sc7e9la.rcgu.o" "/home/ubuntu/GitHub/hatetris/target/debug/deps/hatetris-b41645ee19a314f5.2xpc0hz17xae8qo8.rcgu.o" "/home/ubuntu/GitHub/hatetris/target/debug/deps/hatetris-b41645ee19a314f5.2y0rs5ha89d53wes.rcgu.o" "/home/ubuntu/GitHub/hatetris/target/debug/deps/hatetris-b41645ee19a314f5.2zv842trpv163c2m.rcgu.o" "/home/ubuntu/GitHub/hatetris/target/debug/deps/hatetris-b41645ee19a314f5.31inkty3cpvxs1g9.rcgu.o" "/home/ubuntu/GitHub/hatetris/target/debug/deps/hatetris-b41645ee19a314f5.3234znsotfb1x3fa.rcgu.o" "/home/ubuntu/GitHub/hatetris/target/debug/deps/hatetris-b41645ee19a314f5.32kfz6sswyp4ehxb.rcgu.o" "/home/ubuntu/GitHub/hatetris/target/debug/deps/hatetris-b41645ee19a314f5.32l30lgdeyjeozn2.rcgu.o" "/home/ubuntu/GitHub/hatetris/target/debug/deps/hatetris-b41645ee19a314f5.36zv2uytm35yv5s.rcgu.o" "/home/ubuntu/GitHub/hatetris/target/debug/deps/hatetris-b41645ee19a314f5.37evmou88jqz23qx.rcgu.o" "/home/ubuntu/GitHub/hatetris/target/debug/deps/hatetris-b41645ee19a314f5.3bathndbtxu11eun.rcgu.o" "/home/ubuntu/GitHub/hatetris/target/debug/deps/hatetris-b41645ee19a314f5.3bngc7ueghw6w8xx.rcgu.o" "/home/ubuntu/GitHub/hatetris/target/debug/deps/hatetris-b41645ee19a314f5.3cufp604tp0k3vrv.rcgu.o" "/home/ubuntu/GitHub/hatetris/target/debug/deps/hatetris-b41645ee19a314f5.3d1y9n8ymmkmj71a.rcgu.o" "/home/ubuntu/GitHub/hatetris/target/debug/deps/hatetris-b41645ee19a314f5.3ewdr8jtax61lgfk.rcgu.o" "/home/ubuntu/GitHub/hatetris/target/debug/deps/hatetris-b41645ee19a314f5.3ey7u59wpkffsx05.rcgu.o" "/home/ubuntu/GitHub/hatetris/target/debug/deps/hatetris-b41645ee19a314f5.3h8hgnsjwizr778g.rcgu.o" "/home/ubuntu/GitHub/hatetris/target/debug/deps/hatetris-b41645ee19a314f5.3htolte7i33d85id.rcgu.o" "/home/ubuntu/GitHub/hatetris/target/debug/deps/hatetris-b41645ee19a314f5.3ianm5rehryetqve.rcgu.o" "/home/ubuntu/GitHub/hatetris/target/debug/deps/hatetris-b41645ee19a314f5.3n42hxjztwr65ibg.rcgu.o" "/home/ubuntu/GitHub/hatetris/target/debug/deps/hatetris-b41645ee19a314f5.3oaf2yujnfaqx9ro.rcgu.o" "/home/ubuntu/GitHub/hatetris/target/debug/deps/hatetris-b41645ee19a314f5.3oj5npikwrt8jfew.rcgu.o" "/home/ubuntu/GitHub/hatetris/target/debug/deps/hatetris-b41645ee19a314f5.3ojm0cxkschrrx38.rcgu.o" "/home/ubuntu/GitHub/hatetris/target/debug/deps/hatetris-b41645ee19a314f5.3rrs31utfjk9cqvg.rcgu.o" "/home/ubuntu/GitHub/hatetris/target/debug/deps/hatetris-b41645ee19a314f5.3safpk01g0vlj7ea.rcgu.o" "/home/ubuntu/GitHub/hatetris/target/debug/deps/hatetris-b41645ee19a314f5.3sww26r2wqe76vut.rcgu.o" "/home/ubuntu/GitHub/hatetris/target/debug/deps/hatetris-b41645ee19a314f5.3wz1hdd5ech37wek.rcgu.o" "/home/ubuntu/GitHub/hatetris/target/debug/deps/hatetris-b41645ee19a314f5.3zncld0azkr5z7mu.rcgu.o" "/home/ubuntu/GitHub/hatetris/target/debug/deps/hatetris-b41645ee19a314f5.3zyk8lg8xo4kzumb.rcgu.o" "/home/ubuntu/GitHub/hatetris/target/debug/deps/hatetris-b41645ee19a314f5.414t3tow06xeb67b.rcgu.o" "/home/ubuntu/GitHub/hatetris/target/debug/deps/hatetris-b41645ee19a314f5.431b6ffe9n2fnkyb.rcgu.o" "/home/ubuntu/GitHub/hatetris/target/debug/deps/hatetris-b41645ee19a314f5.44kx68wp0vplx6yz.rcgu.o" "/home/ubuntu/GitHub/hatetris/target/debug/deps/hatetris-b41645ee19a314f5.455tpjf2151tdpmx.rcgu.o" "/home/ubuntu/GitHub/hatetris/target/debug/deps/hatetris-b41645ee19a314f5.46fxiuah8w1cj61.rcgu.o" "/home/ubuntu/GitHub/hatetris/target/debug/deps/hatetris-b41645ee19a314f5.47ckr8nx6vb098wa.rcgu.o" "/home/ubuntu/GitHub/hatetris/target/debug/deps/hatetris-b41645ee19a314f5.48qtu56mb64gc2z2.rcgu.o" "/home/ubuntu/GitHub/hatetris/target/debug/deps/hatetris-b41645ee19a314f5.4dch7ms2134opfm8.rcgu.o" "/home/ubuntu/GitHub/hatetris/target/debug/deps/hatetris-b41645ee19a314f5.4hu4p9l5kq28q7t0.rcgu.o" "/home/ubuntu/GitHub/hatetris/target/debug/deps/hatetris-b41645ee19a314f5.4igft3goqn8u4kb5.rcgu.o" "/home/ubuntu/GitHub/hatetris/target/debug/deps/hatetris-b41645ee19a314f5.4j8fe1mxf4q6ho6x.rcgu.o" "/home/ubuntu/GitHub/hatetris/target/debug/deps/hatetris-b41645ee19a314f5.4jj17qfaw76alphq.rcgu.o" "/home/ubuntu/GitHub/hatetris/target/debug/deps/hatetris-b41645ee19a314f5.4lhk8bq977emwq9m.rcgu.o" "/home/ubuntu/GitHub/hatetris/target/debug/deps/hatetris-b41645ee19a314f5.4lj4tiotpqo5t9q3.rcgu.o" "/home/ubuntu/GitHub/hatetris/target/debug/deps/hatetris-b41645ee19a314f5.4ltupf0wpxlyixfo.rcgu.o" "/home/ubuntu/GitHub/hatetris/target/debug/deps/hatetris-b41645ee19a314f5.4spvy7dp7bda6dis.rcgu.o" "/home/ubuntu/GitHub/hatetris/target/debug/deps/hatetris-b41645ee19a314f5.4untwej5a9zvyjhz.rcgu.o" "/home/ubuntu/GitHub/hatetris/target/debug/deps/hatetris-b41645ee19a314f5.4w7v9ig8knie3ixp.rcgu.o" "/home/ubuntu/GitHub/hatetris/target/debug/deps/hatetris-b41645ee19a314f5.4wgq3iwh37vbixuk.rcgu.o" "/home/ubuntu/GitHub/hatetris/target/debug/deps/hatetris-b41645ee19a314f5.4zyrhog3pb37738y.rcgu.o" "/home/ubuntu/GitHub/hatetris/target/debug/deps/hatetris-b41645ee19a314f5.50be72flnxr4tohj.rcgu.o" "/home/ubuntu/GitHub/hatetris/target/debug/deps/hatetris-b41645ee19a314f5.58n5289wpf2evs6.rcgu.o" "/home/ubuntu/GitHub/hatetris/target/debug/deps/hatetris-b41645ee19a314f5.5bmrdork18vmpi2k.rcgu.o" "/home/ubuntu/GitHub/hatetris/target/debug/deps/hatetris-b41645ee19a314f5.5gbj1xap97e3whcm.rcgu.o" "/home/ubuntu/GitHub/hatetris/target/debug/deps/hatetris-b41645ee19a314f5.7upbf6v8jzorddf.rcgu.o" "/home/ubuntu/GitHub/hatetris/target/debug/deps/hatetris-b41645ee19a314f5.81wd5led29o30rw.rcgu.o" "/home/ubuntu/GitHub/hatetris/target/debug/deps/hatetris-b41645ee19a314f5.87z0frc3zeklts7.rcgu.o" "/home/ubuntu/GitHub/hatetris/target/debug/deps/hatetris-b41645ee19a314f5.cjhk2x2szjahw6f.rcgu.o" "/home/ubuntu/GitHub/hatetris/target/debug/deps/hatetris-b41645ee19a314f5.dikf5jag4ok9w2b.rcgu.o" "/home/ubuntu/GitHub/hatetris/target/debug/deps/hatetris-b41645ee19a314f5.gfr0v0gjrfipbh7.rcgu.o" "/home/ubuntu/GitHub/hatetris/target/debug/deps/hatetris-b41645ee19a314f5.h2a37i2a717uqo6.rcgu.o" "/home/ubuntu/GitHub/hatetris/target/debug/deps/hatetris-b41645ee19a314f5.hejtykhc9xlf5nk.rcgu.o" "/home/ubuntu/GitHub/hatetris/target/debug/deps/hatetris-b41645ee19a314f5.hv06wgpzlu98q9v.rcgu.o" "/home/ubuntu/GitHub/hatetris/target/debug/deps/hatetris-b41645ee19a314f5.ie6bczxtv8t27yt.rcgu.o" "/home/ubuntu/GitHub/hatetris/target/debug/deps/hatetris-b41645ee19a314f5.jbz71psp05b5bdq.rcgu.o" "/home/ubuntu/GitHub/hatetris/target/debug/deps/hatetris-b41645ee19a314f5.jqoldjwml6yngh8.rcgu.o" "/home/ubuntu/GitHub/hatetris/target/debug/deps/hatetris-b41645ee19a314f5.jw1yfd2eadzekp9.rcgu.o" "/home/ubuntu/GitHub/hatetris/target/debug/deps/hatetris-b41645ee19a314f5.nh3a4a0jzen4axg.rcgu.o" "/home/ubuntu/GitHub/hatetris/target/debug/deps/hatetris-b41645ee19a314f5.okki3qvtjk4y9oz.rcgu.o" "/home/ubuntu/GitHub/hatetris/target/debug/deps/hatetris-b41645ee19a314f5.r4gujwduolqv69o.rcgu.o" "/home/ubuntu/GitHub/hatetris/target/debug/deps/hatetris-b41645ee19a314f5.smgaw3bqs9nmipf.rcgu.o" "/home/ubuntu/GitHub/hatetris/target/debug/deps/hatetris-b41645ee19a314f5.sqqb7bm5qkm0cnt.rcgu.o" "/home/ubuntu/GitHub/hatetris/target/debug/deps/hatetris-b41645ee19a314f5.t26234rgbro4n6x.rcgu.o" "/home/ubuntu/GitHub/hatetris/target/debug/deps/hatetris-b41645ee19a314f5.uhc7g7n7461tdmz.rcgu.o" "/home/ubuntu/GitHub/hatetris/target/debug/deps/hatetris-b41645ee19a314f5.usdz9ljjefhpng3.rcgu.o" "/home/ubuntu/GitHub/hatetris/target/debug/deps/hatetris-b41645ee19a314f5.vesyi0wztz9m8n0.rcgu.o" "/home/ubuntu/GitHub/hatetris/target/debug/deps/hatetris-b41645ee19a314f5.vh56xvofd9u5455.rcgu.o" "/home/ubuntu/GitHub/hatetris/target/debug/deps/hatetris-b41645ee19a314f5.vs5rle73nh3joxp.rcgu.o" "/home/ubuntu/GitHub/hatetris/target/debug/deps/hatetris-b41645ee19a314f5.wv4znzbge01p2es.rcgu.o" "/home/ubuntu/GitHub/hatetris/target/debug/deps/hatetris-b41645ee19a314f5.ybkfxp62tzdkrjh.rcgu.o" "/home/ubuntu/GitHub/hatetris/target/debug/deps/hatetris-b41645ee19a314f5.ynj5o1bsrnygyte.rcgu.o" "/home/ubuntu/GitHub/hatetris/target/debug/deps/hatetris-b41645ee19a314f5.z8hpxulkerefnyg.rcgu.o" "/home/ubuntu/GitHub/hatetris/target/debug/deps/hatetris-b41645ee19a314f5.z9iixs3r4y33dtv.rcgu.o" "/home/ubuntu/GitHub/hatetris/target/debug/deps/hatetris-b41645ee19a314f5.gsyjrflgardovo3.rcgu.o" "-Wl,--as-needed" "-L" "/home/ubuntu/GitHub/hatetris/target/debug/deps" "-L" "/home/ubuntu/.local/lib/python3.10/site-packages/torch/lib" "-L" "/home/ubuntu/GitHub/hatetris/target/debug/build/torch-sys-94d2f2b239a9e91a/out" "-L" "/home/ubuntu/GitHub/hatetris/target/debug/build/bzip2-sys-df041c25ee07fab8/out/lib" "-L" "/home/ubuntu/GitHub/hatetris/target/debug/build/zstd-sys-bc6d92ea976fa120/out" "-L" "/home/ubuntu/.rustup/toolchains/nightly-aarch64-unknown-linux-gnu/lib/rustlib/aarch64-unknown-linux-gnu/lib" "-Wl,-Bstatic" "/home/ubuntu/GitHub/hatetris/target/debug/deps/librayon-9dfbe15485836618.rlib" "/home/ubuntu/GitHub/hatetris/target/debug/deps/librayon_core-67419826d0d166d1.rlib" "/home/ubuntu/GitHub/hatetris/target/debug/deps/libnum_cpus-6ed0de7d206457d5.rlib" "/home/ubuntu/GitHub/hatetris/target/debug/deps/libcrossbeam_deque-25735727a6ffc7bc.rlib" "/home/ubuntu/GitHub/hatetris/target/debug/deps/libcrossbeam_epoch-36ac3abb7da7f44f.rlib" "/home/ubuntu/GitHub/hatetris/target/debug/deps/libmemoffset-632e6ec62c319389.rlib" "/home/ubuntu/GitHub/hatetris/target/debug/deps/libscopeguard-e5a678b7310324db.rlib" "/home/ubuntu/GitHub/hatetris/target/debug/deps/libcrossbeam_channel-0d1b82731aa81a8d.rlib" "/home/ubuntu/GitHub/hatetris/target/debug/deps/libcrossbeam_utils-405bbab04c52a085.rlib" "/home/ubuntu/GitHub/hatetris/target/debug/deps/libeither-2a78c0566a7ac624.rlib" "/home/ubuntu/GitHub/hatetris/target/debug/deps/libtch-a95e1ca1c6b944a7.rlib" "/home/ubuntu/GitHub/hatetris/target/debug/deps/libndarray-86da41f0b9f6ca13.rlib" "/home/ubuntu/GitHub/hatetris/target/debug/deps/libmatrixmultiply-e86d590ce3054129.rlib" "/home/ubuntu/GitHub/hatetris/target/debug/deps/libnum_complex-329ab9e3125c7f29.rlib" "/home/ubuntu/GitHub/hatetris/target/debug/deps/libnum_integer-f0c588998dea6503.rlib" "/home/ubuntu/GitHub/hatetris/target/debug/deps/libnum_traits-388f25439b2e1bd0.rlib" "/home/ubuntu/GitHub/hatetris/target/debug/deps/librawpointer-86f401713ae347e6.rlib" "/home/ubuntu/GitHub/hatetris/target/debug/deps/libhalf-c0d5784858e705c2.rlib" "/home/ubuntu/GitHub/hatetris/target/debug/deps/libtorch_sys-935e8af969cc50b3.rlib" "/home/ubuntu/GitHub/hatetris/target/debug/deps/libzip-fc82f37972658ac1.rlib" "/home/ubuntu/GitHub/hatetris/target/debug/deps/libpbkdf2-2279105d77152c5d.rlib" "/home/ubuntu/GitHub/hatetris/target/debug/deps/libsha2-fd9b5436344edc13.rlib" "/home/ubuntu/GitHub/hatetris/target/debug/deps/libpassword_hash-937a42087e2a7894.rlib" "/home/ubuntu/GitHub/hatetris/target/debug/deps/libbase64ct-827b7a1567680525.rlib" "/home/ubuntu/GitHub/hatetris/target/debug/deps/libtime-a660f27c24e75477.rlib" "/home/ubuntu/GitHub/hatetris/target/debug/deps/libitoa-c92f7b72e09b0593.rlib" "/home/ubuntu/GitHub/hatetris/target/debug/deps/libtime_core-42c7c75557025cbb.rlib" "/home/ubuntu/GitHub/hatetris/target/debug/deps/libzstd-a2c63ec5bac8d17e.rlib" "/home/ubuntu/GitHub/hatetris/target/debug/deps/libzstd_safe-5a92ed57c1e7c47b.rlib" "/home/ubuntu/GitHub/hatetris/target/debug/deps/libzstd_sys-5e96703ca76a5c7e.rlib" "/home/ubuntu/GitHub/hatetris/target/debug/deps/libbzip2-f267842f153f0f9e.rlib" "/home/ubuntu/GitHub/hatetris/target/debug/deps/libbzip2_sys-da83a2df53823afe.rlib" "/home/ubuntu/GitHub/hatetris/target/debug/deps/libflate2-483f2ba99b98c325.rlib" "/home/ubuntu/GitHub/hatetris/target/debug/deps/libminiz_oxide-bd82c28e86974ff2.rlib" "/home/ubuntu/GitHub/hatetris/target/debug/deps/libadler-902aee570ac606f9.rlib" "/home/ubuntu/GitHub/hatetris/target/debug/deps/libcrc32fast-d5874b408c49849e.rlib" "/home/ubuntu/GitHub/hatetris/target/debug/deps/libbyteorder-c2c2d1aa61c213f3.rlib" "/home/ubuntu/GitHub/hatetris/target/debug/deps/libaes-d37c8f8a4f7ea275.rlib" "/home/ubuntu/GitHub/hatetris/target/debug/deps/libopaque_debug-774513489e46d716.rlib" "/home/ubuntu/GitHub/hatetris/target/debug/deps/libcipher-89add2b4b0371ba3.rlib" "/home/ubuntu/GitHub/hatetris/target/debug/deps/libsha1-388deed97f3a278b.rlib" "/home/ubuntu/GitHub/hatetris/target/debug/deps/libhmac-b0cf160d477d12b8.rlib" "/home/ubuntu/GitHub/hatetris/target/debug/deps/libdigest-5486831c2a7870f3.rlib" "/home/ubuntu/GitHub/hatetris/target/debug/deps/libsubtle-dc6b29b2aff1bfe8.rlib" "/home/ubuntu/GitHub/hatetris/target/debug/deps/libblock_buffer-4ec6f26ac947bb28.rlib" "/home/ubuntu/GitHub/hatetris/target/debug/deps/libcrypto_common-a9e262a8506f280f.rlib" "/home/ubuntu/GitHub/hatetris/target/debug/deps/libgeneric_array-cee2dc16c739986d.rlib" "/home/ubuntu/GitHub/hatetris/target/debug/deps/libtypenum-18f51b0f5db6a83c.rlib" "/home/ubuntu/GitHub/hatetris/target/debug/deps/libconstant_time_eq-d55748297e2250b9.rlib" "/home/ubuntu/GitHub/hatetris/target/debug/deps/libthiserror-8969e810b64b0bdb.rlib" "/home/ubuntu/GitHub/hatetris/target/debug/deps/liblazy_static-bd5f8c48bb6679ee.rlib" "/home/ubuntu/GitHub/hatetris/target/debug/deps/librand-4445c0e7e091cbb9.rlib" "/home/ubuntu/GitHub/hatetris/target/debug/deps/librand_chacha-e74dafe46c789171.rlib" "/home/ubuntu/GitHub/hatetris/target/debug/deps/libppv_lite86-3177c33c0c33b613.rlib" "/home/ubuntu/GitHub/hatetris/target/debug/deps/librand_core-2c9de5078255d8cf.rlib" "/home/ubuntu/GitHub/hatetris/target/debug/deps/libgetrandom-55ab14aeed840155.rlib" "/home/ubuntu/GitHub/hatetris/target/debug/deps/liblibc-8ffa4da6533afe3c.rlib" "/home/ubuntu/GitHub/hatetris/target/debug/deps/libcfg_if-d1c614b2a7690bf2.rlib" "/home/ubuntu/GitHub/hatetris/target/debug/deps/libsmallvec-bfc0e2a232562cc0.rlib" "/home/ubuntu/.rustup/toolchains/nightly-aarch64-unknown-linux-gnu/lib/rustlib/aarch64-unknown-linux-gnu/lib/libstd-ed4e5bf94d2d8a70.rlib" "/home/ubuntu/.rustup/toolchains/nightly-aarch64-unknown-linux-gnu/lib/rustlib/aarch64-unknown-linux-gnu/lib/libpanic_unwind-bebdd5eea372668b.rlib" "/home/ubuntu/.rustup/toolchains/nightly-aarch64-unknown-linux-gnu/lib/rustlib/aarch64-unknown-linux-gnu/lib/libobject-3355bc0b98aa4a8c.rlib" "/home/ubuntu/.rustup/toolchains/nightly-aarch64-unknown-linux-gnu/lib/rustlib/aarch64-unknown-linux-gnu/lib/libmemchr-0b5aa3d64bc8a557.rlib" "/home/ubuntu/.rustup/toolchains/nightly-aarch64-unknown-linux-gnu/lib/rustlib/aarch64-unknown-linux-gnu/lib/libaddr2line-f641304dbaaf4a6c.rlib" "/home/ubuntu/.rustup/toolchains/nightly-aarch64-unknown-linux-gnu/lib/rustlib/aarch64-unknown-linux-gnu/lib/libgimli-93e9b8c66d37f69d.rlib" "/home/ubuntu/.rustup/toolchains/nightly-aarch64-unknown-linux-gnu/lib/rustlib/aarch64-unknown-linux-gnu/lib/librustc_demangle-50982f8036d6f83d.rlib" "/home/ubuntu/.rustup/toolchains/nightly-aarch64-unknown-linux-gnu/lib/rustlib/aarch64-unknown-linux-gnu/lib/libstd_detect-5eeb69397bccea91.rlib" "/home/ubuntu/.rustup/toolchains/nightly-aarch64-unknown-linux-gnu/lib/rustlib/aarch64-unknown-linux-gnu/lib/libhashbrown-2b679d626836b073.rlib" "/home/ubuntu/.rustup/toolchains/nightly-aarch64-unknown-linux-gnu/lib/rustlib/aarch64-unknown-linux-gnu/lib/libminiz_oxide-9a98cf221fb4b2c0.rlib" "/home/ubuntu/.rustup/toolchains/nightly-aarch64-unknown-linux-gnu/lib/rustlib/aarch64-unknown-linux-gnu/lib/libadler-b5dca51dab735af9.rlib" "/home/ubuntu/.rustup/toolchains/nightly-aarch64-unknown-linux-gnu/lib/rustlib/aarch64-unknown-linux-gnu/lib/librustc_std_workspace_alloc-29342939a4c4f765.rlib" "/home/ubuntu/.rustup/toolchains/nightly-aarch64-unknown-linux-gnu/lib/rustlib/aarch64-unknown-linux-gnu/lib/libunwind-d8b64b175ae3dad2.rlib" "/home/ubuntu/.rustup/toolchains/nightly-aarch64-unknown-linux-gnu/lib/rustlib/aarch64-unknown-linux-gnu/lib/libcfg_if-1671a6ea0c5ac033.rlib" "/home/ubuntu/.rustup/toolchains/nightly-aarch64-unknown-linux-gnu/lib/rustlib/aarch64-unknown-linux-gnu/lib/liblibc-e64d7cdeda4c1ec1.rlib" "/home/ubuntu/.rustup/toolchains/nightly-aarch64-unknown-linux-gnu/lib/rustlib/aarch64-unknown-linux-gnu/lib/liballoc-def74c7c4b1b311e.rlib" "/home/ubuntu/.rustup/toolchains/nightly-aarch64-unknown-linux-gnu/lib/rustlib/aarch64-unknown-linux-gnu/lib/librustc_std_workspace_core-18ea8bd63a028a62.rlib" "/home/ubuntu/.rustup/toolchains/nightly-aarch64-unknown-linux-gnu/lib/rustlib/aarch64-unknown-linux-gnu/lib/libcore-d20cd64dc93f727e.rlib" "/home/ubuntu/.rustup/toolchains/nightly-aarch64-unknown-linux-gnu/lib/rustlib/aarch64-unknown-linux-gnu/lib/libcompiler_builtins-b598f65ae2808d30.rlib" "-Wl,-Bdynamic" "-lstdc++" "-ltorch_cpu" "-ltorch" "-lc10" "-lgomp" "-lgcc_s" "-lutil" "-lrt" "-lpthread" "-lm" "-ldl" "-lc" "-Wl,--eh-frame-hdr" "-Wl,-znoexecstack" "-L" "/home/ubuntu/.rustup/toolchains/nightly-aarch64-unknown-linux-gnu/lib/rustlib/aarch64-unknown-linux-gnu/lib" "-o" "/home/ubuntu/GitHub/hatetris/target/debug/deps/hatetris-b41645ee19a314f5" "-Wl,--gc-sections" "-pie" "-Wl,-zrelro,-znow" "-nodefaultlibs"
  = note: /usr/bin/ld: /home/ubuntu/GitHub/hatetris/target/debug/deps/libtorch_sys-935e8af969cc50b3.rlib(torch_api.o): in function `at_save_multi':
          /home/ubuntu/.cargo/git/checkouts/tch-rs-b9d1710db79374bb/df445ed/torch-sys/libtch/torch_api.cpp:374: undefined reference to `torch::serialize::OutputArchive::write(std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const&, at::Tensor const&, bool)'
          /usr/bin/ld: /home/ubuntu/.cargo/git/checkouts/tch-rs-b9d1710db79374bb/df445ed/torch-sys/libtch/torch_api.cpp:374: undefined reference to `torch::serialize::OutputArchive::save_to(std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const&)'
          /usr/bin/ld: /home/ubuntu/GitHub/hatetris/target/debug/deps/libtorch_sys-935e8af969cc50b3.rlib(torch_api.o): in function `at_load_callback_with_device':
          /home/ubuntu/.cargo/git/checkouts/tch-rs-b9d1710db79374bb/df445ed/torch-sys/libtch/torch_api.cpp:419: undefined reference to `torch::jit::load(std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const&, c10::optional<c10::Device>)'
          /usr/bin/ld: /home/ubuntu/GitHub/hatetris/target/debug/deps/libtorch_sys-935e8af969cc50b3.rlib(torch_api.o): in function `c10::IValue::toTuple() const &':
          /home/ubuntu/.local/lib/python3.10/site-packages/torch/include/ATen/core/ivalue_inl.h:1953: undefined reference to `c10::detail::torchInternalAssertFail(char const*, char const*, unsigned int, char const*, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const&)'
          /usr/bin/ld: /home/ubuntu/GitHub/hatetris/target/debug/deps/libtorch_sys-935e8af969cc50b3.rlib(torch_api.o): in function `c10::IValue::toIntList() const &':
          /home/ubuntu/.local/lib/python3.10/site-packages/torch/include/ATen/core/ivalue_inl.h:1833: undefined reference to `c10::detail::torchInternalAssertFail(char const*, char const*, unsigned int, char const*, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const&)'
          /usr/bin/ld: /home/ubuntu/GitHub/hatetris/target/debug/deps/libtorch_sys-935e8af969cc50b3.rlib(torch_api.o): in function `c10::IValue::toDoubleList() const &':
          /home/ubuntu/.local/lib/python3.10/site-packages/torch/include/ATen/core/ivalue_inl.h:1857: undefined reference to `c10::detail::torchInternalAssertFail(char const*, char const*, unsigned int, char const*, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const&)'
          /usr/bin/ld: /home/ubuntu/GitHub/hatetris/target/debug/deps/libtorch_sys-935e8af969cc50b3.rlib(torch_api.o): in function `c10::IValue::toBoolList() const &':
          /home/ubuntu/.local/lib/python3.10/site-packages/torch/include/ATen/core/ivalue_inl.h:1889: undefined reference to `c10::detail::torchInternalAssertFail(char const*, char const*, unsigned int, char const*, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const&)'
          /usr/bin/ld: /home/ubuntu/GitHub/hatetris/target/debug/deps/libtorch_sys-935e8af969cc50b3.rlib(torch_api.o): in function `c10::IValue::toTensorList() const &':
          /home/ubuntu/.local/lib/python3.10/site-packages/torch/include/ATen/core/ivalue_inl.h:1897: undefined reference to `c10::detail::torchInternalAssertFail(char const*, char const*, unsigned int, char const*, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const&)'
          /usr/bin/ld: /home/ubuntu/GitHub/hatetris/target/debug/deps/libtorch_sys-935e8af969cc50b3.rlib(torch_api.o):/home/ubuntu/.local/lib/python3.10/site-packages/torch/include/ATen/core/ivalue_inl.h:1929: more undefined references to `c10::detail::torchInternalAssertFail(char const*, char const*, unsigned int, char const*, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const&)' follow
          /usr/bin/ld: /home/ubuntu/GitHub/hatetris/target/debug/deps/libtorch_sys-935e8af969cc50b3.rlib(torch_api.o): in function `c10::fromIntArrayRef(c10::ArrayRef<long>)':
          /home/ubuntu/.local/lib/python3.10/site-packages/torch/include/c10/core/SymIntArrayRef.h:34: 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&)'
          /usr/bin/ld: /home/ubuntu/GitHub/hatetris/target/debug/deps/libtorch_sys-935e8af969cc50b3.rlib(torch_api.o): in function `Adam':
          /home/ubuntu/.local/lib/python3.10/site-packages/torch/include/torch/csrc/api/include/torch/optim/adam.h:64: 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&)'
          /usr/bin/ld: /home/ubuntu/.local/lib/python3.10/site-packages/torch/include/torch/csrc/api/include/torch/optim/adam.h:65: 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&)'
          /usr/bin/ld: /home/ubuntu/.local/lib/python3.10/site-packages/torch/include/torch/csrc/api/include/torch/optim/adam.h:67: 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&)'
          /usr/bin/ld: /home/ubuntu/.local/lib/python3.10/site-packages/torch/include/torch/csrc/api/include/torch/optim/adam.h:71: 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&)'
          /usr/bin/ld: /home/ubuntu/GitHub/hatetris/target/debug/deps/libtorch_sys-935e8af969cc50b3.rlib(torch_api.o):/home/ubuntu/.local/lib/python3.10/site-packages/torch/include/torch/csrc/api/include/torch/optim/adam.h:75: more undefined references to `c10::detail::torchCheckFail(char const*, char const*, unsigned int, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const&)' follow
          /usr/bin/ld: /home/ubuntu/GitHub/hatetris/target/debug/deps/libtorch_sys-935e8af969cc50b3.rlib(torch_api.o): in function `c10::IValue::isIntrusivePtr() const':
          /home/ubuntu/.local/lib/python3.10/site-packages/torch/include/ATen/core/ivalue.h:1182: undefined reference to `c10::detail::torchInternalAssertFail(char const*, char const*, unsigned int, char const*, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const&)'
          /usr/bin/ld: /home/ubuntu/GitHub/hatetris/target/debug/deps/libtorch_sys-935e8af969cc50b3.rlib(torch_api.o): in function `c10::ArrayRef<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > >::slice(unsigned long, unsigned long) const':
          /home/ubuntu/.local/lib/python3.10/site-packages/torch/include/c10/util/ArrayRef.h:194: 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&)'
          /usr/bin/ld: /home/ubuntu/GitHub/hatetris/target/debug/deps/libtorch_sys-935e8af969cc50b3.rlib(torch_api.o): in function `QualifiedName':
          /home/ubuntu/.local/lib/python3.10/site-packages/torch/include/ATen/core/qualified_name.h:24: undefined reference to `c10::detail::torchInternalAssertFail(char const*, char const*, unsigned int, char const*, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const&)'
          /usr/bin/ld: /home/ubuntu/.local/lib/python3.10/site-packages/torch/include/ATen/core/qualified_name.h:32: undefined reference to `c10::detail::torchInternalAssertFail(char const*, char const*, unsigned int, char const*, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const&)'
          /usr/bin/ld: /home/ubuntu/GitHub/hatetris/target/debug/deps/libtorch_sys-935e8af969cc50b3.rlib(torch_api.o): in function `c10::IValue::toComplexDouble() const':
          /home/ubuntu/.local/lib/python3.10/site-packages/torch/include/ATen/core/ivalue_inl.h:146: undefined reference to `c10::detail::torchInternalAssertFail(char const*, char const*, unsigned int, char const*, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const&)'
          collect2: error: ld returned 1 exit status
          
  = note: some `extern` functions couldn't be found; some native libraries may need to be installed or have their path specified
  = note: use the `-l` flag to specify native libraries to link
  = note: use the `cargo:rustc-link-lib` directive to specify the native libraries to link with Cargo (see https://doc.rust-lang.org/cargo/reference/build-scripts.html#cargorustc-link-libkindname)

warning: `hatetris` (bin "hatetris") generated 2 warnings
error: could not compile `hatetris` due to previous error; 2 warnings emitted

@danieldk
Copy link
Contributor

Could you try with

export LIBTORCH_CXX11_ABI=0

?

@infalmo
Copy link

infalmo commented Nov 28, 2022

Could you try with

export LIBTORCH_CXX11_ABI=0

?

This works! Thanks.

@LaurentMazare
Copy link
Owner

Closing this in favor of #488

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

No branches or pull requests

6 participants