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

libtorch exports protobuf symbols #14573

Open
ejoebstl opened this issue Nov 29, 2018 · 27 comments · May be fixed by #119096
Open

libtorch exports protobuf symbols #14573

ejoebstl opened this issue Nov 29, 2018 · 27 comments · May be fixed by #119096
Assignees
Labels
high priority module: abi libtorch C++ ABI related problems module: build Build system issues module: cpp Related to C++ API module: protobuf triaged This issue has been looked at a team member, and triaged and prioritized into an appropriate module

Comments

@ejoebstl
Copy link
Contributor

ejoebstl commented Nov 29, 2018

Problem

libtorch, the amazing c++ interface for Pytorch, exports the symbols of it's linked libprotobuf.

This apparently requires me to use the same version of libprotobuf and protoc for my project when depending on libtorch.

Attempting to link another version of protobuf caused memory corruption in my case.

Proposed Solutions

A) Don't export the symbols, if that's possible.
B) Document the libprotobuf version used by libtorch. This way, I could at least fall back to that version for now. However, I was not able to find the used version.

@ezyang
Copy link
Contributor

ezyang commented Nov 29, 2018

I'm pretty sure that we aren't exporting the symbols in the Python extension. In any case, this is definitely a mistake.

@pjh5
Copy link
Contributor

pjh5 commented Nov 29, 2018

What is the source of the libtorch that you're using? Are you using the nightly libtorch or libtorch from a different nightly package? If you're using the nightly libtorch, which variation of it are you using (shared-with-deps, static-without-deps, etc.) ?

EDIT: I found protobuf symbols in the nightly libtorch packages. We're investigating now

@ejoebstl
Copy link
Contributor Author

ejoebstl commented Nov 30, 2018

Yes, it was the nightly. You are awesome!

In case it helps, you can use my minimal example from the issue linked above together with this cmake script to reproduce:

cmake_minimum_required(VERSION 3.0 FATAL_ERROR)
project(example-app)
set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -g -Wall")
set(CMAKE_BUILD_TYPE Debug)
set_property(TARGET main PROPERTY CXX_STANDARD 11)

find_package(Protobuf REQUIRED)
find_package(Torch REQUIRED)

# To check if we are using the correct protobuf libs. 
message(${Protobuf_LIBRARIES})

add_library(proto proto/data_format.pb.cc)
target_link_libraries(proto ${Protobuf_LIBRARIES})

add_executable(main main.cpp)
target_link_libraries(main proto "${TORCH_LIBRARIES}" "${Protobuf_LIBRARIES}")
cmake -DCMAKE_PREFIX_PATH=/path/to/libtorch/ ..
make

@fmder
Copy link
Contributor

fmder commented Dec 5, 2018

I've been able to link on Torch's protobuf. The cmake protobuf-config.cmake file is in pytorch/torch/lib/tmp_install/cmake. You can use it directly with

find_package(Protobuf CONFIG REQUIRED)

and by adding the cmake argument

-DProtobuf_DIR=.../tmp_install/cmake

@fmder
Copy link
Contributor

fmder commented Dec 6, 2018

If you really need to link on protobuf (with the solution above I got unresolved symbols and build type mismatch [/MTd vs /MDd on Windows]), you can simply copy the third_party/protobuf somewhere else and compile it yourself. You'll get the exact same version.

@ezyang ezyang added high priority module: cpp Related to C++ API module: abi libtorch C++ ABI related problems triaged This issue has been looked at a team member, and triaged and prioritized into an appropriate module and removed blocker labels Apr 3, 2019
@moreheadm
Copy link

Is there any update on this? I was able to compile a project with both libtorch and protobuf by compiling libtorch from source with the desired version of protobuf, but it would be nice if it weren't necessary to do so. Thanks!

@ezyang ezyang added module: build Build system issues module: protobuf labels May 22, 2019
@ezyang
Copy link
Contributor

ezyang commented May 22, 2019

cc @soumith @pjh5

@pjh5
Copy link
Contributor

pjh5 commented May 28, 2019

This was never completed; it fell into the backlog behind the library unification. @kostmo is this on your roadmap?

@chopwoodwater
Copy link

any updates, please?

@pjh5
Copy link
Contributor

pjh5 commented Jul 9, 2019

There is no one currently working on this, but @ljk53 might end up accomplishing this while stripping symbols out for the mobile builds. IIUC his approach using linker scripts could work here as well for linux builds

@gchanan
Copy link
Contributor

gchanan commented Sep 12, 2019

I believe mobile is not linking protobuf, so the symbols probably aren't there but the approach won't fix non-mobile builds. We should at least verify this is still an issue.

@jaryder
Copy link

jaryder commented Oct 18, 2019

We have hit this same issue. It's really bizarre. Do you have any idea why libtorch is exhibiting this behavior?

@yf225
Copy link
Contributor

yf225 commented Oct 24, 2019

My current understanding is as follows:
Based on

# Reason for this public dependency is as follows:
# (1) Strictly speaking, we should not expose any Protobuf related functions. We should
# only use function interfaces wrapped with our own public API, and link protobuf
# locally.
# (2) However, currently across the Caffe2 codebase, we have extensive use of protobuf
# functionalities. For example, not only libcaffe2.so uses it, but also other
# binaries such as python extensions etc. As a result, we will have to have a
# transitive dependency to libprotobuf.
#
# Good thing is that, if we specify CAFFE2_LINK_LOCAL_PROTOBUF, then we do not need to
# separately deploy protobuf binaries - libcaffe2.so will contain all functionalities
# one needs. One can verify this via ldd.
#
# TODO item in the future includes:
# (1) Enable using lite protobuf
# (2) Properly define public API that do not directly depend on protobuf itself.
# (3) Expose the libprotobuf.a file for dependent libraries to link to.
, because we have Caffe2 and ONNX APIs (which uses protobuf symbols in their function signatures) in libtorch, we need to expose protobuf symbols as part of libtorch.so. Therefore, at the moment we won't be able to hide those protobuf symbols in libtorch.

cc. @dzhulgakov @soumith to confirm whether this understanding is correct. If it is correct, it means we should either not expose protobuf symbols in any of Caffe2 and ONNX public APIs, or provide instructions on how to compile other libraries using the protobuf version shipped with libtorch.

@Coderx7
Copy link
Contributor

Coderx7 commented Feb 9, 2021

Has anything changed in this regard since October?

@anthonyalayo
Copy link
Contributor

anthonyalayo commented Dec 13, 2023

I've been scratching my head on this, maybe @malfet can fill me in so I can better understand the state of it.

From what I do know:

  1. PyTorch has the ability to build protobuf itself or not
  2. It may use the system protobuf if the version is matching, ie. 3.13.0.1?
  3. If it's 3.22 and later, which has absiel, it will break?
  4. The pytorch target makes the protobuf dependency exposed?
  5. MacOSX releases don't rely on protobuf, but Linux releases do?

I probably wrote a bunch of nonsense, and that's what I've concluded after digging through this for a day. For context, I started to try and pull the latest version of protobuf (3.25.1 / 25.1 ) and while my downloaded pytorch 2.1.0 works on MacOSX, I get linker errors on Linux:

./build/proto/generated/events.pb.h:317: undefined reference to `void google::protobuf::internal::ArenaStringPtr::Set<>(std::string const&, google::protobuf::Arena*)'
/usr/bin/ld: proto/CMakeFiles/proto-objects.dir/generated/events.pb.cc.o: in function `TestEvent::_internal_set_application_id(std::string const&)':
./build/proto/generated/events.pb.h:370: undefined reference to `void google::protobuf::internal::ArenaStringPtr::Set<>(std::string const&, google::protobuf::Arena*)'
/usr/bin/ld: proto/CMakeFiles/proto-objects.dir/generated/events.pb.cc.o: in function `google::protobuf::io::EpsCopyOutputStream::WriteStringMaybeAliased(unsigned int, std::string const&, unsigned char*)':
/usr/local/include/google/protobuf/io/coded_stream.h:693: undefined reference to `google::protobuf::io::EpsCopyOutputStream::WriteStringMaybeAliasedOutline(unsigned int, std::string const&, unsigned char*)'
/usr/bin/ld: proto/CMakeFiles/proto-objects.dir/generated/events.pb.cc.o: in function `google::protobuf::internal::ArenaStringPtr::ArenaStringPtr(google::protobuf::Arena*)':
/usr/local/include/google/protobuf/arenastring.h:239: undefined reference to `google::protobuf::internal::fixed_address_empty_string'
/usr/bin/ld: proto/CMakeFiles/proto-objects.dir/generated/events.pb.cc.o: in function `TestEvent::Impl_::Impl_(google::protobuf::internal::ConstantInitialized)':
./build/proto/generated/events.pb.cc:32: undefined reference to `google::protobuf::internal::fixed_address_empty_string'
/usr/bin/ld: ./build/proto/generated/events.pb.cc:32: undefined reference to `google::protobuf::internal::fixed_address_empty_string'
/usr/bin/ld: proto/CMakeFiles/proto-objects.dir/generated/events.pb.cc.o: in function `std::string* absl::lts_20230802::log_internal::MakeCheckOpString<unsigned long const&, unsigned int const&>(unsigned long const&, unsigned int const&, char const*)':
/usr/local/include/absl/log/internal/check_op.h:295: undefined reference to `absl::lts_20230802::log_internal::CheckOpMessageBuilder::NewString()'
/usr/bin/ld: proto/CMakeFiles/proto-objects.dir/generated/events.pb.cc.o: in function `std::string* absl::lts_20230802::log_internal::MakeCheckOpString<TestEvent const* const&, TestEvent* const&>(TestEvent const* const&, TestEvent* const&, char const*)':
/usr/local/include/absl/log/internal/check_op.h:295: undefined reference to `absl::lts_20230802::log_internal::CheckOpMessageBuilder::NewString()'
/usr/bin/ld: proto/CMakeFiles/proto-objects.dir/generated/events.pb.cc.o: in function `std::string* absl::lts_20230802::log_internal::MakeCheckOpString<google::protobuf::Arena* const&, google::protobuf::Arena* const&>(google::protobuf::Arena* const&, google::protobuf::Arena* const&, char const*)':
/usr/local/include/absl/log/internal/check_op.h:295: undefined reference to `absl::lts_20230802::log_internal::CheckOpMessageBuilder::NewString()'
/usr/bin/ld: proto/CMakeFiles/proto-objects.dir/generated/events.pb.cc.o:(.data.rel.ro._ZTV9TestEvent[_ZTV9TestEvent]+0x20): undefined reference to `google::protobuf::Message::GetTypeName() const'
/usr/bin/ld: proto/CMakeFiles/proto-objects.dir/generated/events.pb.cc.o:(.data.rel.ro._ZTV9TestEvent[_ZTV9TestEvent]+0x40): undefined reference to `google::protobuf::Message::InitializationErrorString() const'

My build on mac OSX and Linux both share this cmake script I added:

find_package(Protobuf CONFIG)
if(NOT Protobuf_FOUND)
  find_package(Protobuf REQUIRED)
endif()
...
...
protobuf_generate(
  TARGET proto-objects
  IMPORT_DIRS ${CMAKE_CURRENT_LIST_DIR}
  PROTOC_OUT_DIR "${PROTO_BINARY_DIR}"
  OUT_VAR PROTO_GENERATED_FILES
)

Looking through the release code, I see that @CAFFE2_LINK_LOCAL_PROTOBUF@ is always ON:
https://github.com/pytorch/pytorch/blob/ad76a4e1e79463681f8546b2be6ece33b39b34c3/cmake/Caffe2Config.cmake.in#L40C1-L40C32

but not sure what to make of that either. If there could be some comment here that explains the state of protobuf, and the nuances/caveats we need to know about using it with relation to PyTorch, that would be super helpful.

@anthonyalayo
Copy link
Contributor

Following up here -- if I have the following in my build:

FetchContent_Declare(
  protobuf
  GIT_REPOSITORY "https://github.com/protocolbuffers/protobuf.git"
  GIT_TAG ${protobuf_version}
  OVERRIDE_FIND_PACKAGE
)

FetchContent_MakeAvailable(protobuf)

which is needed for some other libraries/integrations, how do I navigate this protobuf install with PyTorch?

@anthonyalayo
Copy link
Contributor

cc @malfet @ezyang @zou3519 could someone shed some light here? it breaks integrations with GRPC

@malfet
Copy link
Contributor

malfet commented Jan 19, 2024

Lots of things changed since 2018, one of them is that we no longer build PyTorch with caffe2 by default, and I have not heard of anyone who want to use libtorch and at the same time be able to export model to ONNX. (@BowenBao have you heard of such usecases)
So I'm fine with just disabling this option in nightly libtorch builds.

@anthonyalayo just to confirm, are you seeing this in shared or in static library?

@anthonyalayo
Copy link
Contributor

@malfet here's the exposed symbols from the shared library:

anthony.alayo@dls-anthonyalayo1[±|feat/upgradeTorch2-2-0 U:1 ✗]:~/.../torch/lib $ nm libtorch_cpu.so | grep 'protobuf' | grep ' T '
00000000134fcae0 T _ZN10onnx_torch10GraphProto14_InternalParseEPKcPN6google8protobuf8internal12ParseContextE
0000000013501e10 T _ZN10onnx_torch10GraphProto8CopyFromERKN6google8protobuf7MessageE
0000000013501db0 T _ZN10onnx_torch10GraphProto9MergeFromERKN6google8protobuf7MessageE
00000000134faa50 T _ZN10onnx_torch10GraphProtoC1EPN6google8protobuf5ArenaE
00000000134faa50 T _ZN10onnx_torch10GraphProtoC2EPN6google8protobuf5ArenaE
00000000134fdd90 T _ZN10onnx_torch10ModelProto14_InternalParseEPKcPN6google8protobuf8internal12ParseContextE
0000000013503ad0 T _ZN10onnx_torch10ModelProto8CopyFromERKN6google8protobuf7MessageE
0000000013503a70 T _ZN10onnx_torch10ModelProto9MergeFromERKN6google8protobuf7MessageE
00000000134fa2c0 T _ZN10onnx_torch10ModelProtoC1EPN6google8protobuf5ArenaE
00000000134fa2c0 T _ZN10onnx_torch10ModelProtoC2EPN6google8protobuf5ArenaE
00000000133e70f0 T _ZN10onnx_torch10OnnxParser10ParseInputERN6google8protobuf16RepeatedPtrFieldINS_14ValueInfoProtoEEERNS3_INS_11TensorProtoEEE
00000000133e74a0 T _ZN10onnx_torch10OnnxParser14ParseValueInfoERN6google8protobuf16RepeatedPtrFieldINS_14ValueInfoProtoEEERNS3_INS_11TensorProtoEEE
00000000133e3f60 T _ZN10onnx_torch10OnnxParser5ParseEcRN6google8protobuf16RepeatedPtrFieldISsEEc
00000000133e9190 T _ZN10onnx_torch10OnnxParser5ParseEcRN6google8protobuf16RepeatedPtrFieldISsEERNS3_INS_14AttributeProtoEEEc
00000000133e9470 T _ZN10onnx_torch10OnnxParser5ParseERN6google8protobuf16RepeatedPtrFieldINS_14AttributeProtoEEE
00000000133e6e70 T _ZN10onnx_torch10OnnxParser5ParseERN6google8protobuf16RepeatedPtrFieldINS_14ValueInfoProtoEEE
00000000133e4850 T _ZN10onnx_torch10OnnxParser5ParseERN6google8protobuf16RepeatedPtrFieldINS_18OperatorSetIdProtoEEE
00000000133e99b0 T _ZN10onnx_torch10OnnxParser5ParseERN6google8protobuf16RepeatedPtrFieldINS_9NodeProtoEEE
00000000133e3810 T _ZN10onnx_torch10OnnxParser5ParseERN6google8protobuf16RepeatedPtrFieldISsEE
00000000133e8de0 T _ZN10onnx_torch10OnnxParser5ParseERN6google8protobuf16RepeatedPtrFieldISsEERNS3_INS_14AttributeProtoEEE
00000000134f2af0 T _ZN10onnx_torch11TensorProto14_InternalParseEPKcPN6google8protobuf8internal12ParseContextE
00000000134ff730 T _ZN10onnx_torch11TensorProto8CopyFromERKN6google8protobuf7MessageE
00000000134ff6d0 T _ZN10onnx_torch11TensorProto9MergeFromERKN6google8protobuf7MessageE
00000000134f8a90 T _ZN10onnx_torch11TensorProtoC1EPN6google8protobuf5ArenaE
00000000134f8a90 T _ZN10onnx_torch11TensorProtoC2EPN6google8protobuf5ArenaE
00000000133f3fb0 T _ZN10onnx_torch12ProtoPrinter5printERKN6google8protobuf16RepeatedPtrFieldINS_14AttributeProtoEEE
00000000133f28f0 T _ZN10onnx_torch12ProtoPrinter5printERKN6google8protobuf16RepeatedPtrFieldINS_14ValueInfoProtoEEE
00000000133f42c0 T _ZN10onnx_torch12ProtoPrinter5printERKN6google8protobuf16RepeatedPtrFieldINS_18OperatorSetIdProtoEEE
00000000133f2fe0 T _ZN10onnx_torch12ProtoPrinter5printERKN6google8protobuf16RepeatedPtrFieldINS_9NodeProtoEEE
00000000134fd750 T _ZN10onnx_torch13FunctionProto14_InternalParseEPKcPN6google8protobuf8internal12ParseContextE
0000000013503c30 T _ZN10onnx_torch13FunctionProto8CopyFromERKN6google8protobuf7MessageE
0000000013503bd0 T _ZN10onnx_torch13FunctionProto9MergeFromERKN6google8protobuf7MessageE
00000000134fa890 T _ZN10onnx_torch13FunctionProtoC1EPN6google8protobuf5ArenaE
00000000134fa890 T _ZN10onnx_torch13FunctionProtoC2EPN6google8protobuf5ArenaE
000000001350b9b0 T _ZN10onnx_torch13OptionalProto14_InternalParseEPKcPN6google8protobuf8internal12ParseContextE
000000001350ad70 T _ZN10onnx_torch13OptionalProto8CopyFromERKN6google8protobuf7MessageE
000000001350ad10 T _ZN10onnx_torch13OptionalProto9MergeFromERKN6google8protobuf7MessageE
0000000013508db0 T _ZN10onnx_torch13OptionalProtoC1EPN6google8protobuf5ArenaE
0000000013508db0 T _ZN10onnx_torch13OptionalProtoC2EPN6google8protobuf5ArenaE
000000001350bdf0 T _ZN10onnx_torch13SequenceProto14_InternalParseEPKcPN6google8protobuf8internal12ParseContextE
000000001350a630 T _ZN10onnx_torch13SequenceProto8CopyFromERKN6google8protobuf7MessageE
000000001350a5d0 T _ZN10onnx_torch13SequenceProto9MergeFromERKN6google8protobuf7MessageE
0000000013509e20 T _ZN10onnx_torch13SequenceProtoC1EPN6google8protobuf5ArenaE
0000000013509e20 T _ZN10onnx_torch13SequenceProtoC2EPN6google8protobuf5ArenaE
00000000134fe7e0 T _ZN10onnx_torch13TypeProto_Map14_InternalParseEPKcPN6google8protobuf8internal12ParseContextE
0000000013505d90 T _ZN10onnx_torch13TypeProto_Map8CopyFromERKN6google8protobuf7MessageE
0000000013505d30 T _ZN10onnx_torch13TypeProto_Map9MergeFromERKN6google8protobuf7MessageE
00000000134edfe0 T _ZN10onnx_torch13TypeProto_MapC1EPN6google8protobuf5ArenaE
00000000134edfe0 T _ZN10onnx_torch13TypeProto_MapC2EPN6google8protobuf5ArenaE
00000000134fbc00 T _ZN10onnx_torch14AttributeProto14_InternalParseEPKcPN6google8protobuf8internal12ParseContextE
0000000013502890 T _ZN10onnx_torch14AttributeProto8CopyFromERKN6google8protobuf7MessageE
0000000013502830 T _ZN10onnx_torch14AttributeProto9MergeFromERKN6google8protobuf7MessageE
00000000134f9350 T _ZN10onnx_torch14AttributeProtoC1EPN6google8protobuf5ArenaE
00000000134f9350 T _ZN10onnx_torch14AttributeProtoC2EPN6google8protobuf5ArenaE
00000000134fb960 T _ZN10onnx_torch14ValueInfoProto14_InternalParseEPKcPN6google8protobuf8internal12ParseContextE
0000000013500ff0 T _ZN10onnx_torch14ValueInfoProto8CopyFromERKN6google8protobuf7MessageE
0000000013500f90 T _ZN10onnx_torch14ValueInfoProto9MergeFromERKN6google8protobuf7MessageE
00000000134ec4d0 T _ZN10onnx_torch14ValueInfoProtoC1EPN6google8protobuf5ArenaE
00000000134ec4d0 T _ZN10onnx_torch14ValueInfoProtoC2EPN6google8protobuf5ArenaE
00000000134f2860 T _ZN10onnx_torch16TensorAnnotation14_InternalParseEPKcPN6google8protobuf8internal12ParseContextE
00000000134fedf0 T _ZN10onnx_torch16TensorAnnotation8CopyFromERKN6google8protobuf7MessageE
00000000134fed90 T _ZN10onnx_torch16TensorAnnotation9MergeFromERKN6google8protobuf7MessageE
00000000134f8960 T _ZN10onnx_torch16TensorAnnotationC1EPN6google8protobuf5ArenaE
00000000134f8960 T _ZN10onnx_torch16TensorAnnotationC2EPN6google8protobuf5ArenaE
00000000134f3770 T _ZN10onnx_torch16TensorShapeProto14_InternalParseEPKcPN6google8protobuf8internal12ParseContextE
0000000013500450 T _ZN10onnx_torch16TensorShapeProto8CopyFromERKN6google8protobuf7MessageE
00000000135003f0 T _ZN10onnx_torch16TensorShapeProto9MergeFromERKN6google8protobuf7MessageE
00000000134fac70 T _ZN10onnx_torch16TensorShapeProtoC1EPN6google8protobuf5ArenaE
00000000134fac70 T _ZN10onnx_torch16TensorShapeProtoC2EPN6google8protobuf5ArenaE
00000000134f3a10 T _ZN10onnx_torch16TypeProto_Opaque14_InternalParseEPKcPN6google8protobuf8internal12ParseContextE
00000000134f6a40 T _ZN10onnx_torch16TypeProto_Opaque8CopyFromERKN6google8protobuf7MessageE
00000000134f4330 T _ZN10onnx_torch16TypeProto_Opaque9MergeFromERKN6google8protobuf7MessageE
00000000134ee3f0 T _ZN10onnx_torch16TypeProto_OpaqueC1EPN6google8protobuf5ArenaE
00000000134ee3f0 T _ZN10onnx_torch16TypeProto_OpaqueC2EPN6google8protobuf5ArenaE
00000000134fada0 T _ZN10onnx_torch16TypeProto_Tensor14_InternalParseEPKcPN6google8protobuf8internal12ParseContextE
00000000135006b0 T _ZN10onnx_torch16TypeProto_Tensor8CopyFromERKN6google8protobuf7MessageE
0000000013500650 T _ZN10onnx_torch16TypeProto_Tensor9MergeFromERKN6google8protobuf7MessageE
00000000134ede20 T _ZN10onnx_torch16TypeProto_TensorC1EPN6google8protobuf5ArenaE
00000000134ede20 T _ZN10onnx_torch16TypeProto_TensorC2EPN6google8protobuf5ArenaE
00000000134f8c60 T _ZN10onnx_torch17SparseTensorProto14_InternalParseEPKcPN6google8protobuf8internal12ParseContextE
00000000134ffa20 T _ZN10onnx_torch17SparseTensorProto8CopyFromERKN6google8protobuf7MessageE
00000000134ff9c0 T _ZN10onnx_torch17SparseTensorProto9MergeFromERKN6google8protobuf7MessageE
00000000134ed590 T _ZN10onnx_torch17SparseTensorProtoC1EPN6google8protobuf5ArenaE
00000000134ed590 T _ZN10onnx_torch17SparseTensorProtoC2EPN6google8protobuf5ArenaE
00000000134fd3a0 T _ZN10onnx_torch17TrainingInfoProto14_InternalParseEPKcPN6google8protobuf8internal12ParseContextE
0000000013501cb0 T _ZN10onnx_torch17TrainingInfoProto8CopyFromERKN6google8protobuf7MessageE
0000000013501c50 T _ZN10onnx_torch17TrainingInfoProto9MergeFromERKN6google8protobuf7MessageE
00000000134f8810 T _ZN10onnx_torch17TrainingInfoProtoC1EPN6google8protobuf5ArenaE
00000000134f8810 T _ZN10onnx_torch17TrainingInfoProtoC2EPN6google8protobuf5ArenaE
00000000134f3c40 T _ZN10onnx_torch18OperatorSetIdProto14_InternalParseEPKcPN6google8protobuf8internal12ParseContextE
00000000134f5ca0 T _ZN10onnx_torch18OperatorSetIdProto8CopyFromERKN6google8protobuf7MessageE
00000000134f46e0 T _ZN10onnx_torch18OperatorSetIdProto9MergeFromERKN6google8protobuf7MessageE
00000000134f1a50 T _ZN10onnx_torch18OperatorSetIdProtoC1EPN6google8protobuf5ArenaE
00000000134f1a50 T _ZN10onnx_torch18OperatorSetIdProtoC2EPN6google8protobuf5ArenaE
00000000134fea10 T _ZN10onnx_torch18TypeProto_Optional14_InternalParseEPKcPN6google8protobuf8internal12ParseContextE
0000000013505fd0 T _ZN10onnx_torch18TypeProto_Optional8CopyFromERKN6google8protobuf7MessageE
0000000013505f70 T _ZN10onnx_torch18TypeProto_Optional9MergeFromERKN6google8protobuf7MessageE
00000000134ee0a0 T _ZN10onnx_torch18TypeProto_OptionalC1EPN6google8protobuf5ArenaE
00000000134ee0a0 T _ZN10onnx_torch18TypeProto_OptionalC2EPN6google8protobuf5ArenaE
00000000134fe640 T _ZN10onnx_torch18TypeProto_Sequence14_InternalParseEPKcPN6google8protobuf8internal12ParseContextE
0000000013505b30 T _ZN10onnx_torch18TypeProto_Sequence8CopyFromERKN6google8protobuf7MessageE
0000000013505ad0 T _ZN10onnx_torch18TypeProto_Sequence9MergeFromERKN6google8protobuf7MessageE
00000000134edf20 T _ZN10onnx_torch18TypeProto_SequenceC1EPN6google8protobuf5ArenaE
00000000134edf20 T _ZN10onnx_torch18TypeProto_SequenceC2EPN6google8protobuf5ArenaE
00000000134f21f0 T _ZN10onnx_torch19TensorProto_Segment14_InternalParseEPKcPN6google8protobuf8internal12ParseContextE
00000000134f5b60 T _ZN10onnx_torch19TensorProto_Segment8CopyFromERKN6google8protobuf7MessageE
00000000134f4a50 T _ZN10onnx_torch19TensorProto_Segment9MergeFromERKN6google8protobuf7MessageE
00000000134ec880 T _ZN10onnx_torch19TensorProto_SegmentC1EPN6google8protobuf5ArenaE
00000000134ec880 T _ZN10onnx_torch19TensorProto_SegmentC2EPN6google8protobuf5ArenaE
00000000134f2630 T _ZN10onnx_torch22StringStringEntryProto14_InternalParseEPKcPN6google8protobuf8internal12ParseContextE
00000000134f6cf0 T _ZN10onnx_torch22StringStringEntryProto8CopyFromERKN6google8protobuf7MessageE
00000000134f4140 T _ZN10onnx_torch22StringStringEntryProto9MergeFromERKN6google8protobuf7MessageE
00000000134ec700 T _ZN10onnx_torch22StringStringEntryProtoC1EPN6google8protobuf5ArenaE
00000000134ec700 T _ZN10onnx_torch22StringStringEntryProtoC2EPN6google8protobuf5ArenaE
00000000134fafd0 T _ZN10onnx_torch22TypeProto_SparseTensor14_InternalParseEPKcPN6google8protobuf8internal12ParseContextE
0000000013500910 T _ZN10onnx_torch22TypeProto_SparseTensor8CopyFromERKN6google8protobuf7MessageE
00000000135008b0 T _ZN10onnx_torch22TypeProto_SparseTensor9MergeFromERKN6google8protobuf7MessageE
00000000134ee310 T _ZN10onnx_torch22TypeProto_SparseTensorC1EPN6google8protobuf5ArenaE
00000000134ee310 T _ZN10onnx_torch22TypeProto_SparseTensorC2EPN6google8protobuf5ArenaE
00000000134f3490 T _ZN10onnx_torch26TensorShapeProto_Dimension14_InternalParseEPKcPN6google8protobuf8internal12ParseContextE
00000000134f5fb0 T _ZN10onnx_torch26TensorShapeProto_Dimension8CopyFromERKN6google8protobuf7MessageE
00000000134f54f0 T _ZN10onnx_torch26TensorShapeProto_Dimension9MergeFromERKN6google8protobuf7MessageE
00000000134ed6b0 T _ZN10onnx_torch26TensorShapeProto_DimensionC1EPN6google8protobuf5ArenaE
00000000134ed6b0 T _ZN10onnx_torch26TensorShapeProto_DimensionC2EPN6google8protobuf5ArenaE
000000001350c450 T _ZN10onnx_torch8MapProto14_InternalParseEPKcPN6google8protobuf8internal12ParseContextE
000000001350a8a0 T _ZN10onnx_torch8MapProto8CopyFromERKN6google8protobuf7MessageE
000000001350a840 T _ZN10onnx_torch8MapProto9MergeFromERKN6google8protobuf7MessageE
0000000013508c50 T _ZN10onnx_torch8MapProtoC1EPN6google8protobuf5ArenaE
0000000013508c50 T _ZN10onnx_torch8MapProtoC2EPN6google8protobuf5ArenaE
00000000134fc690 T _ZN10onnx_torch9NodeProto14_InternalParseEPKcPN6google8protobuf8internal12ParseContextE
0000000013502d60 T _ZN10onnx_torch9NodeProto8CopyFromERKN6google8protobuf7MessageE
0000000013502d00 T _ZN10onnx_torch9NodeProto9MergeFromERKN6google8protobuf7MessageE
00000000134f9b20 T _ZN10onnx_torch9NodeProtoC1EPN6google8protobuf5ArenaE
00000000134f9b20 T _ZN10onnx_torch9NodeProtoC2EPN6google8protobuf5ArenaE
00000000134fb200 T _ZN10onnx_torch9TypeProto14_InternalParseEPKcPN6google8protobuf8internal12ParseContextE
0000000013506130 T _ZN10onnx_torch9TypeProto8CopyFromERKN6google8protobuf7MessageE
00000000135060d0 T _ZN10onnx_torch9TypeProto9MergeFromERKN6google8protobuf7MessageE
00000000134f0fb0 T _ZN10onnx_torch9TypeProtoC1EPN6google8protobuf5ArenaE
00000000134f0fb0 T _ZN10onnx_torch9TypeProtoC2EPN6google8protobuf5ArenaE
00000000133f41d0 T _ZN10onnx_torchlsERSoRKN6google8protobuf16RepeatedPtrFieldINS_14AttributeProtoEEE
00000000133f2b10 T _ZN10onnx_torchlsERSoRKN6google8protobuf16RepeatedPtrFieldINS_14ValueInfoProtoEEE
00000000133f4260 T _ZN10onnx_torchlsERSoRKN6google8protobuf16RepeatedPtrFieldINS_9NodeProtoEEE
00000000132c1de0 T _ZN5torch12AttributeDef14_InternalParseEPKcPN6google8protobuf8internal12ParseContextE
00000000132c36b0 T _ZN5torch12AttributeDef8CopyFromERKN6google8protobuf7MessageE
00000000132c3650 T _ZN5torch12AttributeDef9MergeFromERKN6google8protobuf7MessageE
00000000132c0920 T _ZN5torch12AttributeDefC1EPN6google8protobuf5ArenaE
00000000132c0920 T _ZN5torch12AttributeDefC2EPN6google8protobuf5ArenaE
00000000132c2070 T _ZN5torch12ParameterDef14_InternalParseEPKcPN6google8protobuf8internal12ParseContextE
00000000132c3440 T _ZN5torch12ParameterDef8CopyFromERKN6google8protobuf7MessageE
00000000132c33e0 T _ZN5torch12ParameterDef9MergeFromERKN6google8protobuf7MessageE
00000000132c0b40 T _ZN5torch12ParameterDefC1EPN6google8protobuf5ArenaE
00000000132c0b40 T _ZN5torch12ParameterDefC2EPN6google8protobuf5ArenaE
00000000132c1500 T _ZN5torch6LibDef14_InternalParseEPKcPN6google8protobuf8internal12ParseContextE
00000000132c2ac0 T _ZN5torch6LibDef8CopyFromERKN6google8protobuf7MessageE
00000000132c27c0 T _ZN5torch6LibDef9MergeFromERKN6google8protobuf7MessageE
00000000132c0df0 T _ZN5torch6LibDefC1EPN6google8protobuf5ArenaE
00000000132c0df0 T _ZN5torch6LibDefC2EPN6google8protobuf5ArenaE
00000000132c6960 T _ZN5torch8ModelDef14_InternalParseEPKcPN6google8protobuf8internal12ParseContextE
00000000132c5420 T _ZN5torch8ModelDef8CopyFromERKN6google8protobuf7MessageE
00000000132c53c0 T _ZN5torch8ModelDef9MergeFromERKN6google8protobuf7MessageE
00000000132c3e90 T _ZN5torch8ModelDefC1EPN6google8protobuf5ArenaE
00000000132c3e90 T _ZN5torch8ModelDefC2EPN6google8protobuf5ArenaE
00000000132c5fd0 T _ZN5torch9ModuleDef14_InternalParseEPKcPN6google8protobuf8internal12ParseContextE
00000000132c5070 T _ZN5torch9ModuleDef8CopyFromERKN6google8protobuf7MessageE
00000000132c5010 T _ZN5torch9ModuleDef9MergeFromERKN6google8protobuf7MessageE
00000000132c4790 T _ZN5torch9ModuleDefC1EPN6google8protobuf5ArenaE
00000000132c4790 T _ZN5torch9ModuleDefC2EPN6google8protobuf5ArenaE
00000000132c1340 T _ZN5torch9RecordRef14_InternalParseEPKcPN6google8protobuf8internal12ParseContextE
00000000132c29f0 T _ZN5torch9RecordRef8CopyFromERKN6google8protobuf7MessageE
00000000132c2680 T _ZN5torch9RecordRef9MergeFromERKN6google8protobuf7MessageE
00000000132c0180 T _ZN5torch9RecordRefC1EPN6google8protobuf5ArenaE
00000000132c0180 T _ZN5torch9RecordRefC2EPN6google8protobuf5ArenaE
00000000132c16a0 T _ZN5torch9TensorDef14_InternalParseEPKcPN6google8protobuf8internal12ParseContextE
00000000132c3e10 T _ZN5torch9TensorDef8CopyFromERKN6google8protobuf7MessageE
00000000132c3db0 T _ZN5torch9TensorDef9MergeFromERKN6google8protobuf7MessageE
00000000132c0800 T _ZN5torch9TensorDefC1EPN6google8protobuf5ArenaE
00000000132c0800 T _ZN5torch9TensorDefC2EPN6google8protobuf5ArenaE
00000000132df700 T _ZN6caffe211OperatorDef14_InternalParseEPKcPN6google8protobuf8internal12ParseContextE
00000000132e3a50 T _ZN6caffe211OperatorDef8CopyFromERKN6google8protobuf7MessageE
00000000132e39f0 T _ZN6caffe211OperatorDef9MergeFromERKN6google8protobuf7MessageE
00000000132de480 T _ZN6caffe211OperatorDefC1EPN6google8protobuf5ArenaE
00000000132de480 T _ZN6caffe211OperatorDefC2EPN6google8protobuf5ArenaE
00000000132d4f50 T _ZN6caffe211TensorProto14_InternalParseEPKcPN6google8protobuf8internal12ParseContextE
00000000132dc840 T _ZN6caffe211TensorProto8CopyFromERKN6google8protobuf7MessageE
00000000132db8b0 T _ZN6caffe211TensorProto9MergeFromERKN6google8protobuf7MessageE
00000000132cf4d0 T _ZN6caffe211TensorProtoC1EPN6google8protobuf5ArenaE
00000000132cf4d0 T _ZN6caffe211TensorProtoC2EPN6google8protobuf5ArenaE
00000000132d42a0 T _ZN6caffe211TensorShape14_InternalParseEPKcPN6google8protobuf8internal12ParseContextE
00000000132da530 T _ZN6caffe211TensorShape8CopyFromERKN6google8protobuf7MessageE
00000000132d82f0 T _ZN6caffe211TensorShape9MergeFromERKN6google8protobuf7MessageE
00000000132cfb80 T _ZN6caffe211TensorShapeC1EPN6google8protobuf5ArenaE
00000000132cfb80 T _ZN6caffe211TensorShapeC2EPN6google8protobuf5ArenaE
00000000132d4bf0 T _ZN6caffe212DeviceOption14_InternalParseEPKcPN6google8protobuf8internal12ParseContextE
00000000132dad80 T _ZN6caffe212DeviceOption8CopyFromERKN6google8protobuf7MessageE
00000000132d90e0 T _ZN6caffe212DeviceOption9MergeFromERKN6google8protobuf7MessageE
00000000132d05a0 T _ZN6caffe212DeviceOptionC1EPN6google8protobuf5ArenaE
00000000132d05a0 T _ZN6caffe212DeviceOptionC2EPN6google8protobuf5ArenaE
00000000132d3c60 T _ZN6caffe212QTensorProto14_InternalParseEPKcPN6google8protobuf8internal12ParseContextE
00000000132db190 T _ZN6caffe212QTensorProto8CopyFromERKN6google8protobuf7MessageE
00000000132da140 T _ZN6caffe212QTensorProto9MergeFromERKN6google8protobuf7MessageE
00000000132cf650 T _ZN6caffe212QTensorProtoC1EPN6google8protobuf5ArenaE
00000000132cf650 T _ZN6caffe212QTensorProtoC2EPN6google8protobuf5ArenaE
00000000132d57e0 T _ZN6caffe212TensorProtos14_InternalParseEPKcPN6google8protobuf8internal12ParseContextE
00000000132e1370 T _ZN6caffe212TensorProtos8CopyFromERKN6google8protobuf7MessageE
00000000132e1310 T _ZN6caffe212TensorProtos9MergeFromERKN6google8protobuf7MessageE
00000000132dd810 T _ZN6caffe212TensorProtosC1EPN6google8protobuf5ArenaE
00000000132dd810 T _ZN6caffe212TensorProtosC2EPN6google8protobuf5ArenaE
00000000132d4740 T _ZN6caffe212TensorShapes14_InternalParseEPKcPN6google8protobuf8internal12ParseContextE
00000000132e1770 T _ZN6caffe212TensorShapes8CopyFromERKN6google8protobuf7MessageE
00000000132e1710 T _ZN6caffe212TensorShapes9MergeFromERKN6google8protobuf7MessageE
00000000132dd940 T _ZN6caffe212TensorShapesC1EPN6google8protobuf5ArenaE
00000000132dd940 T _ZN6caffe212TensorShapesC2EPN6google8protobuf5ArenaE
00000000132d6320 T _ZN6caffe213DBReaderProto14_InternalParseEPKcPN6google8protobuf8internal12ParseContextE
00000000132dc190 T _ZN6caffe213DBReaderProto8CopyFromERKN6google8protobuf7MessageE
00000000132d85b0 T _ZN6caffe213DBReaderProto9MergeFromERKN6google8protobuf7MessageE
00000000132d30c0 T _ZN6caffe213DBReaderProtoC1EPN6google8protobuf5ArenaE
00000000132d30c0 T _ZN6caffe213DBReaderProtoC2EPN6google8protobuf5ArenaE
00000000132e0620 T _ZN6caffe213ExecutionStep14_InternalParseEPKcPN6google8protobuf8internal12ParseContextE
00000000132e58c0 T _ZN6caffe213ExecutionStep8CopyFromERKN6google8protobuf7MessageE
00000000132e5860 T _ZN6caffe213ExecutionStep9MergeFromERKN6google8protobuf7MessageE
00000000132e04b0 T _ZN6caffe213ExecutionStepC1EPN6google8protobuf5ArenaE
00000000132e04b0 T _ZN6caffe213ExecutionStepC2EPN6google8protobuf5ArenaE
00000000132d59f0 T _ZN6caffe213MapFieldEntry14_InternalParseEPKcPN6google8protobuf8internal12ParseContextE
00000000132dabf0 T _ZN6caffe213MapFieldEntry8CopyFromERKN6google8protobuf7MessageE
00000000132d6fc0 T _ZN6caffe213MapFieldEntry9MergeFromERKN6google8protobuf7MessageE
00000000132d0710 T _ZN6caffe213MapFieldEntryC1EPN6google8protobuf5ArenaE
00000000132d0710 T _ZN6caffe213MapFieldEntryC2EPN6google8protobuf5ArenaE
00000000132de710 T _ZN6caffe213PartitionInfo14_InternalParseEPKcPN6google8protobuf8internal12ParseContextE
00000000132e25c0 T _ZN6caffe213PartitionInfo8CopyFromERKN6google8protobuf7MessageE
00000000132e2560 T _ZN6caffe213PartitionInfo9MergeFromERKN6google8protobuf7MessageE
00000000132debb0 T _ZN6caffe213PartitionInfoC1EPN6google8protobuf5ArenaE
00000000132debb0 T _ZN6caffe213PartitionInfoC2EPN6google8protobuf5ArenaE
00000000132d5c20 T _ZN6caffe214BackendOptions14_InternalParseEPKcPN6google8protobuf8internal12ParseContextE
00000000132e2010 T _ZN6caffe214BackendOptions8CopyFromERKN6google8protobuf7MessageE
00000000132e1fb0 T _ZN6caffe214BackendOptions9MergeFromERKN6google8protobuf7MessageE
00000000132de5e0 T _ZN6caffe214BackendOptionsC1EPN6google8protobuf5ArenaE
00000000132de5e0 T _ZN6caffe214BackendOptionsC2EPN6google8protobuf5ArenaE
00000000132dda70 T _ZN6caffe216TensorBoundShape14_InternalParseEPKcPN6google8protobuf8internal12ParseContextE
00000000132dafb0 T _ZN6caffe216TensorBoundShape8CopyFromERKN6google8protobuf7MessageE
00000000132d8b90 T _ZN6caffe216TensorBoundShape9MergeFromERKN6google8protobuf7MessageE
00000000132d01a0 T _ZN6caffe216TensorBoundShapeC1EPN6google8protobuf5ArenaE
00000000132d01a0 T _ZN6caffe216TensorBoundShapeC2EPN6google8protobuf5ArenaE
00000000132dde60 T _ZN6caffe217TensorBoundShapes14_InternalParseEPKcPN6google8protobuf8internal12ParseContextE
00000000132e1d50 T _ZN6caffe217TensorBoundShapes8CopyFromERKN6google8protobuf7MessageE
00000000132e1cf0 T _ZN6caffe217TensorBoundShapes9MergeFromERKN6google8protobuf7MessageE
00000000132de1c0 T _ZN6caffe217TensorBoundShapesC1EPN6google8protobuf5ArenaE
00000000132de1c0 T _ZN6caffe217TensorBoundShapesC2EPN6google8protobuf5ArenaE
00000000132d3860 T _ZN6caffe219TensorProto_Segment14_InternalParseEPKcPN6google8protobuf8internal12ParseContextE
00000000132d95c0 T _ZN6caffe219TensorProto_Segment8CopyFromERKN6google8protobuf7MessageE
00000000132d7180 T _ZN6caffe219TensorProto_Segment9MergeFromERKN6google8protobuf7MessageE
00000000132ce5f0 T _ZN6caffe219TensorProto_SegmentC1EPN6google8protobuf5ArenaE
00000000132ce5f0 T _ZN6caffe219TensorProto_SegmentC2EPN6google8protobuf5ArenaE
00000000132d68f0 T _ZN6caffe220SerializationOptions14_InternalParseEPKcPN6google8protobuf8internal12ParseContextE
00000000132e5b10 T _ZN6caffe220SerializationOptions8CopyFromERKN6google8protobuf7MessageE
00000000132e5ab0 T _ZN6caffe220SerializationOptions9MergeFromERKN6google8protobuf7MessageE
00000000132e1070 T _ZN6caffe220SerializationOptionsC1EPN6google8protobuf5ArenaE
00000000132e1070 T _ZN6caffe220SerializationOptionsC2EPN6google8protobuf5ArenaE
00000000132d6610 T _ZN6caffe224BlobSerializationOptions14_InternalParseEPKcPN6google8protobuf8internal12ParseContextE
00000000132da330 T _ZN6caffe224BlobSerializationOptions8CopyFromERKN6google8protobuf7MessageE
00000000132d7590 T _ZN6caffe224BlobSerializationOptions9MergeFromERKN6google8protobuf7MessageE
00000000132d31b0 T _ZN6caffe224BlobSerializationOptionsC1EPN6google8protobuf5ArenaE
00000000132d31b0 T _ZN6caffe224BlobSerializationOptionsC2EPN6google8protobuf5ArenaE
00000000132dfd10 T _ZN6caffe26NetDef14_InternalParseEPKcPN6google8protobuf8internal12ParseContextE
00000000132e3f10 T _ZN6caffe26NetDef8CopyFromERKN6google8protobuf7MessageE
00000000132e3eb0 T _ZN6caffe26NetDef9MergeFromERKN6google8protobuf7MessageE
00000000132ded00 T _ZN6caffe26NetDefC1EPN6google8protobuf5ArenaE
00000000132ded00 T _ZN6caffe26NetDefC2EPN6google8protobuf5ArenaE
00000000132e0bc0 T _ZN6caffe27PlanDef14_InternalParseEPKcPN6google8protobuf8internal12ParseContextE
00000000132e4dc0 T _ZN6caffe27PlanDef8CopyFromERKN6google8protobuf7MessageE
00000000132e4d60 T _ZN6caffe27PlanDef9MergeFromERKN6google8protobuf7MessageE
00000000132e0f30 T _ZN6caffe27PlanDefC1EPN6google8protobuf5ArenaE
00000000132e0f30 T _ZN6caffe27PlanDefC2EPN6google8protobuf5ArenaE
00000000132def10 T _ZN6caffe28Argument14_InternalParseEPKcPN6google8protobuf8internal12ParseContextE
00000000132e3490 T _ZN6caffe28Argument8CopyFromERKN6google8protobuf7MessageE
00000000132e3430 T _ZN6caffe28Argument9MergeFromERKN6google8protobuf7MessageE
00000000132de300 T _ZN6caffe28ArgumentC1EPN6google8protobuf5ArenaE
00000000132de300 T _ZN6caffe28ArgumentC2EPN6google8protobuf5ArenaE
00000000132d4950 T _ZN6caffe29AOTConfig14_InternalParseEPKcPN6google8protobuf8internal12ParseContextE
00000000132da6d0 T _ZN6caffe29AOTConfig8CopyFromERKN6google8protobuf7MessageE
00000000132d8970 T _ZN6caffe29AOTConfig9MergeFromERKN6google8protobuf7MessageE
00000000132d02f0 T _ZN6caffe29AOTConfigC1EPN6google8protobuf5ArenaE
00000000132d02f0 T _ZN6caffe29AOTConfigC2EPN6google8protobuf5ArenaE
00000000132d5f70 T _ZN6caffe29BlobProto14_InternalParseEPKcPN6google8protobuf8internal12ParseContextE
00000000132dc7c0 T _ZN6caffe29BlobProto8CopyFromERKN6google8protobuf7MessageE
00000000132dbc30 T _ZN6caffe29BlobProto9MergeFromERKN6google8protobuf7MessageE
00000000132d2fc0 T _ZN6caffe29BlobProtoC1EPN6google8protobuf5ArenaE
00000000132d2fc0 T _ZN6caffe29BlobProtoC2EPN6google8protobuf5ArenaE
00000000134fabf0 T _ZN6google8protobuf5Arena18CreateMaybeMessageIN10onnx_torch10GraphProtoEJEEEPT_PS1_DpOT0_
00000000134fa3e0 T _ZN6google8protobuf5Arena18CreateMaybeMessageIN10onnx_torch10ModelProtoEJEEEPT_PS1_DpOT0_
00000000134f8be0 T _ZN6google8protobuf5Arena18CreateMaybeMessageIN10onnx_torch11TensorProtoEJEEEPT_PS1_DpOT0_
00000000134fa9d0 T _ZN6google8protobuf5Arena18CreateMaybeMessageIN10onnx_torch13FunctionProtoEJEEEPT_PS1_DpOT0_
0000000013508ee0 T _ZN6google8protobuf5Arena18CreateMaybeMessageIN10onnx_torch13OptionalProtoEJEEEPT_PS1_DpOT0_
0000000013509f80 T _ZN6google8protobuf5Arena18CreateMaybeMessageIN10onnx_torch13SequenceProtoEJEEEPT_PS1_DpOT0_
00000000134f1ef0 T _ZN6google8protobuf5Arena18CreateMaybeMessageIN10onnx_torch13TypeProto_MapEJEEEPT_PS1_DpOT0_
00000000134f9480 T _ZN6google8protobuf5Arena18CreateMaybeMessageIN10onnx_torch14AttributeProtoEJEEEPT_PS1_DpOT0_
00000000134f1b70 T _ZN6google8protobuf5Arena18CreateMaybeMessageIN10onnx_torch14ValueInfoProtoEJEEEPT_PS1_DpOT0_
00000000134f8a10 T _ZN6google8protobuf5Arena18CreateMaybeMessageIN10onnx_torch16TensorAnnotationEJEEEPT_PS1_DpOT0_
00000000134fad20 T _ZN6google8protobuf5Arena18CreateMaybeMessageIN10onnx_torch16TensorShapeProtoEJEEEPT_PS1_DpOT0_
00000000134f2070 T _ZN6google8protobuf5Arena18CreateMaybeMessageIN10onnx_torch16TypeProto_OpaqueEJEEEPT_PS1_DpOT0_
00000000134f1df0 T _ZN6google8protobuf5Arena18CreateMaybeMessageIN10onnx_torch16TypeProto_TensorEJEEEPT_PS1_DpOT0_
00000000134f1cf0 T _ZN6google8protobuf5Arena18CreateMaybeMessageIN10onnx_torch17SparseTensorProtoEJEEEPT_PS1_DpOT0_
00000000134f88e0 T _ZN6google8protobuf5Arena18CreateMaybeMessageIN10onnx_torch17TrainingInfoProtoEJEEEPT_PS1_DpOT0_
00000000134f2170 T _ZN6google8protobuf5Arena18CreateMaybeMessageIN10onnx_torch18OperatorSetIdProtoEJEEEPT_PS1_DpOT0_
00000000134f1f70 T _ZN6google8protobuf5Arena18CreateMaybeMessageIN10onnx_torch18TypeProto_OptionalEJEEEPT_PS1_DpOT0_
00000000134f1e70 T _ZN6google8protobuf5Arena18CreateMaybeMessageIN10onnx_torch18TypeProto_SequenceEJEEEPT_PS1_DpOT0_
00000000134f1c70 T _ZN6google8protobuf5Arena18CreateMaybeMessageIN10onnx_torch19TensorProto_SegmentEJEEEPT_PS1_DpOT0_
00000000134f1bf0 T _ZN6google8protobuf5Arena18CreateMaybeMessageIN10onnx_torch22StringStringEntryProtoEJEEEPT_PS1_DpOT0_
00000000134f1ff0 T _ZN6google8protobuf5Arena18CreateMaybeMessageIN10onnx_torch22TypeProto_SparseTensorEJEEEPT_PS1_DpOT0_
00000000134f1d70 T _ZN6google8protobuf5Arena18CreateMaybeMessageIN10onnx_torch26TensorShapeProto_DimensionEJEEEPT_PS1_DpOT0_
0000000013508e60 T _ZN6google8protobuf5Arena18CreateMaybeMessageIN10onnx_torch8MapProtoEJEEEPT_PS1_DpOT0_
00000000134f9be0 T _ZN6google8protobuf5Arena18CreateMaybeMessageIN10onnx_torch9NodeProtoEJEEEPT_PS1_DpOT0_
00000000134f20f0 T _ZN6google8protobuf5Arena18CreateMaybeMessageIN10onnx_torch9TypeProtoEJEEEPT_PS1_DpOT0_
00000000132c1030 T _ZN6google8protobuf5Arena18CreateMaybeMessageIN5torch12AttributeDefEJEEEPT_PS1_DpOT0_
00000000132c10b0 T _ZN6google8protobuf5Arena18CreateMaybeMessageIN5torch12ParameterDefEJEEEPT_PS1_DpOT0_
00000000132c1130 T _ZN6google8protobuf5Arena18CreateMaybeMessageIN5torch6LibDefEJEEEPT_PS1_DpOT0_
00000000132c3f50 T _ZN6google8protobuf5Arena18CreateMaybeMessageIN5torch8ModelDefEJEEEPT_PS1_DpOT0_
00000000132c48a0 T _ZN6google8protobuf5Arena18CreateMaybeMessageIN5torch9ModuleDefEJEEEPT_PS1_DpOT0_
00000000132c0f30 T _ZN6google8protobuf5Arena18CreateMaybeMessageIN5torch9RecordRefEJEEEPT_PS1_DpOT0_
00000000132c0fb0 T _ZN6google8protobuf5Arena18CreateMaybeMessageIN5torch9TensorDefEJEEEPT_PS1_DpOT0_
00000000132de560 T _ZN6google8protobuf5Arena18CreateMaybeMessageIN6caffe211OperatorDefEJEEEPT_PS1_DpOT0_
00000000132d3360 T _ZN6google8protobuf5Arena18CreateMaybeMessageIN6caffe211TensorProtoEJEEEPT_PS1_DpOT0_
00000000132d3460 T _ZN6google8protobuf5Arena18CreateMaybeMessageIN6caffe211TensorShapeEJEEEPT_PS1_DpOT0_
00000000132d35e0 T _ZN6google8protobuf5Arena18CreateMaybeMessageIN6caffe212DeviceOptionEJEEEPT_PS1_DpOT0_
00000000132d33e0 T _ZN6google8protobuf5Arena18CreateMaybeMessageIN6caffe212QTensorProtoEJEEEPT_PS1_DpOT0_
00000000132dd8c0 T _ZN6google8protobuf5Arena18CreateMaybeMessageIN6caffe212TensorProtosEJEEEPT_PS1_DpOT0_
00000000132dd9f0 T _ZN6google8protobuf5Arena18CreateMaybeMessageIN6caffe212TensorShapesEJEEEPT_PS1_DpOT0_
00000000132d3760 T _ZN6google8protobuf5Arena18CreateMaybeMessageIN6caffe213DBReaderProtoEJEEEPT_PS1_DpOT0_
00000000132e05a0 T _ZN6google8protobuf5Arena18CreateMaybeMessageIN6caffe213ExecutionStepEJEEEPT_PS1_DpOT0_
00000000132d3660 T _ZN6google8protobuf5Arena18CreateMaybeMessageIN6caffe213MapFieldEntryEJEEEPT_PS1_DpOT0_
00000000132dec80 T _ZN6google8protobuf5Arena18CreateMaybeMessageIN6caffe213PartitionInfoEJEEEPT_PS1_DpOT0_
00000000132de690 T _ZN6google8protobuf5Arena18CreateMaybeMessageIN6caffe214BackendOptionsEJEEEPT_PS1_DpOT0_
00000000132d34e0 T _ZN6google8protobuf5Arena18CreateMaybeMessageIN6caffe216TensorBoundShapeEJEEEPT_PS1_DpOT0_
00000000132de280 T _ZN6google8protobuf5Arena18CreateMaybeMessageIN6caffe217TensorBoundShapesEJEEEPT_PS1_DpOT0_
00000000132d32e0 T _ZN6google8protobuf5Arena18CreateMaybeMessageIN6caffe219TensorProto_SegmentEJEEEPT_PS1_DpOT0_
00000000132e1120 T _ZN6google8protobuf5Arena18CreateMaybeMessageIN6caffe220SerializationOptionsEJEEEPT_PS1_DpOT0_
00000000132d37e0 T _ZN6google8protobuf5Arena18CreateMaybeMessageIN6caffe224BlobSerializationOptionsEJEEEPT_PS1_DpOT0_
00000000132dee90 T _ZN6google8protobuf5Arena18CreateMaybeMessageIN6caffe26NetDefEJEEEPT_PS1_DpOT0_
00000000132e0ff0 T _ZN6google8protobuf5Arena18CreateMaybeMessageIN6caffe27PlanDefEJEEEPT_PS1_DpOT0_
00000000132de400 T _ZN6google8protobuf5Arena18CreateMaybeMessageIN6caffe28ArgumentEJEEEPT_PS1_DpOT0_
00000000132d3560 T _ZN6google8protobuf5Arena18CreateMaybeMessageIN6caffe29AOTConfigEJEEEPT_PS1_DpOT0_
00000000132d36e0 T _ZN6google8protobuf5Arena18CreateMaybeMessageIN6caffe29BlobProtoEJEEEPT_PS1_DpOT0_
0000000013520040 T _ZN6google8protobuf8internal8byteswapILi1EEEvPv
0000000013520050 T _ZN6google8protobuf8internal8byteswapILi4EEEvPv
0000000013520060 T _ZN6google8protobuf8internal8byteswapILi8EEEvPv
00000000134efb60 T _ZNK10onnx_torch10GraphProto18_InternalSerializeEPhPN6google8protobuf2io19EpsCopyOutputStreamE
00000000134f09c0 T _ZNK10onnx_torch10ModelProto18_InternalSerializeEPhPN6google8protobuf2io19EpsCopyOutputStreamE
00000000134ec960 T _ZNK10onnx_torch11TensorProto18_InternalSerializeEPhPN6google8protobuf2io19EpsCopyOutputStreamE
00000000134f04b0 T _ZNK10onnx_torch13FunctionProto18_InternalSerializeEPhPN6google8protobuf2io19EpsCopyOutputStreamE
000000001350d160 T _ZNK10onnx_torch13OptionalProto18_InternalSerializeEPhPN6google8protobuf2io19EpsCopyOutputStreamE
000000001350c890 T _ZNK10onnx_torch13SequenceProto18_InternalSerializeEPhPN6google8protobuf2io19EpsCopyOutputStreamE
00000000134eeba0 T _ZNK10onnx_torch13TypeProto_Map18_InternalSerializeEPhPN6google8protobuf2io19EpsCopyOutputStreamE
00000000134eee40 T _ZNK10onnx_torch14AttributeProto18_InternalSerializeEPhPN6google8protobuf2io19EpsCopyOutputStreamE
00000000134ee8b0 T _ZNK10onnx_torch14ValueInfoProto18_InternalSerializeEPhPN6google8protobuf2io19EpsCopyOutputStreamE
00000000134eb970 T _ZNK10onnx_torch16TensorAnnotation18_InternalSerializeEPhPN6google8protobuf2io19EpsCopyOutputStreamE
00000000134ebca0 T _ZNK10onnx_torch16TensorShapeProto18_InternalSerializeEPhPN6google8protobuf2io19EpsCopyOutputStreamE
00000000134eb6e0 T _ZNK10onnx_torch16TypeProto_Opaque18_InternalSerializeEPhPN6google8protobuf2io19EpsCopyOutputStreamE
00000000134edc70 T _ZNK10onnx_torch16TypeProto_Tensor18_InternalSerializeEPhPN6google8protobuf2io19EpsCopyOutputStreamE
00000000134ed320 T _ZNK10onnx_torch17SparseTensorProto18_InternalSerializeEPhPN6google8protobuf2io19EpsCopyOutputStreamE
00000000134f0190 T _ZNK10onnx_torch17TrainingInfoProto18_InternalSerializeEPhPN6google8protobuf2io19EpsCopyOutputStreamE
00000000134eb810 T _ZNK10onnx_torch18OperatorSetIdProto18_InternalSerializeEPhPN6google8protobuf2io19EpsCopyOutputStreamE
00000000134eed50 T _ZNK10onnx_torch18TypeProto_Optional18_InternalSerializeEPhPN6google8protobuf2io19EpsCopyOutputStreamE
00000000134eeab0 T _ZNK10onnx_torch18TypeProto_Sequence18_InternalSerializeEPhPN6google8protobuf2io19EpsCopyOutputStreamE
00000000134eaf60 T _ZNK10onnx_torch19TensorProto_Segment18_InternalSerializeEPhPN6google8protobuf2io19EpsCopyOutputStreamE
00000000134eb5b0 T _ZNK10onnx_torch22StringStringEntryProto18_InternalSerializeEPhPN6google8protobuf2io19EpsCopyOutputStreamE
00000000134ee160 T _ZNK10onnx_torch22TypeProto_SparseTensor18_InternalSerializeEPhPN6google8protobuf2io19EpsCopyOutputStreamE
00000000134ebad0 T _ZNK10onnx_torch26TensorShapeProto_Dimension18_InternalSerializeEPhPN6google8protobuf2io19EpsCopyOutputStreamE
000000001350cdd0 T _ZNK10onnx_torch8MapProto18_InternalSerializeEPhPN6google8protobuf2io19EpsCopyOutputStreamE
00000000134ef780 T _ZNK10onnx_torch9NodeProto18_InternalSerializeEPhPN6google8protobuf2io19EpsCopyOutputStreamE
00000000134ee570 T _ZNK10onnx_torch9TypeProto18_InternalSerializeEPhPN6google8protobuf2io19EpsCopyOutputStreamE
00000000132bfde0 T _ZNK5torch12AttributeDef18_InternalSerializeEPhPN6google8protobuf2io19EpsCopyOutputStreamE
00000000132bffc0 T _ZNK5torch12ParameterDef18_InternalSerializeEPhPN6google8protobuf2io19EpsCopyOutputStreamE
00000000132c0d00 T _ZNK5torch6LibDef18_InternalSerializeEPhPN6google8protobuf2io19EpsCopyOutputStreamE
00000000132c75e0 T _ZNK5torch8ModelDef18_InternalSerializeEPhPN6google8protobuf2io19EpsCopyOutputStreamE
00000000132c6e40 T _ZNK5torch9ModuleDef18_InternalSerializeEPhPN6google8protobuf2io19EpsCopyOutputStreamE
00000000132bfd30 T _ZNK5torch9RecordRef18_InternalSerializeEPhPN6google8protobuf2io19EpsCopyOutputStreamE
00000000132c0290 T _ZNK5torch9TensorDef18_InternalSerializeEPhPN6google8protobuf2io19EpsCopyOutputStreamE
00000000132d2240 T _ZNK6caffe211OperatorDef18_InternalSerializeEPhPN6google8protobuf2io19EpsCopyOutputStreamE
00000000132ceb60 T _ZNK6caffe211TensorProto18_InternalSerializeEPhPN6google8protobuf2io19EpsCopyOutputStreamE
00000000132cc150 T _ZNK6caffe211TensorShape18_InternalSerializeEPhPN6google8protobuf2io19EpsCopyOutputStreamE
00000000132cc840 T _ZNK6caffe212DeviceOption18_InternalSerializeEPhPN6google8protobuf2io19EpsCopyOutputStreamE
00000000132cdeb0 T _ZNK6caffe212QTensorProto18_InternalSerializeEPhPN6google8protobuf2io19EpsCopyOutputStreamE
00000000132cf3d0 T _ZNK6caffe212TensorProtos18_InternalSerializeEPhPN6google8protobuf2io19EpsCopyOutputStreamE
00000000132cc460 T _ZNK6caffe212TensorShapes18_InternalSerializeEPhPN6google8protobuf2io19EpsCopyOutputStreamE
00000000132cb6a0 T _ZNK6caffe213DBReaderProto18_InternalSerializeEPhPN6google8protobuf2io19EpsCopyOutputStreamE
00000000132cd7e0 T _ZNK6caffe213ExecutionStep18_InternalSerializeEPhPN6google8protobuf2io19EpsCopyOutputStreamE
00000000132cb410 T _ZNK6caffe213MapFieldEntry18_InternalSerializeEPhPN6google8protobuf2io19EpsCopyOutputStreamE
00000000132cbbe0 T _ZNK6caffe213PartitionInfo18_InternalSerializeEPhPN6google8protobuf2io19EpsCopyOutputStreamE
00000000132cb540 T _ZNK6caffe214BackendOptions18_InternalSerializeEPhPN6google8protobuf2io19EpsCopyOutputStreamE
00000000132cfd00 T _ZNK6caffe216TensorBoundShape18_InternalSerializeEPhPN6google8protobuf2io19EpsCopyOutputStreamE
00000000132cff60 T _ZNK6caffe217TensorBoundShapes18_InternalSerializeEPhPN6google8protobuf2io19EpsCopyOutputStreamE
00000000132cb270 T _ZNK6caffe219TensorProto_Segment18_InternalSerializeEPhPN6google8protobuf2io19EpsCopyOutputStreamE
00000000132cbae0 T _ZNK6caffe220SerializationOptions18_InternalSerializeEPhPN6google8protobuf2io19EpsCopyOutputStreamE
00000000132cb8d0 T _ZNK6caffe224BlobSerializationOptions18_InternalSerializeEPhPN6google8protobuf2io19EpsCopyOutputStreamE
00000000132d14e0 T _ZNK6caffe26NetDef18_InternalSerializeEPhPN6google8protobuf2io19EpsCopyOutputStreamE
00000000132d27a0 T _ZNK6caffe27PlanDef18_InternalSerializeEPhPN6google8protobuf2io19EpsCopyOutputStreamE
00000000132d1b20 T _ZNK6caffe28Argument18_InternalSerializeEPhPN6google8protobuf2io19EpsCopyOutputStreamE
00000000132cbe80 T _ZNK6caffe29AOTConfig18_InternalSerializeEPhPN6google8protobuf2io19EpsCopyOutputStreamE
00000000132d2b00 T _ZNK6caffe29BlobProto18_InternalSerializeEPhPN6google8protobuf2io19EpsCopyOutputStreamE

Checking out one of the nightly builds:
https://github.com/pytorch/pytorch/actions/runs/7730151509/job/21074917462

I can see the following:

...
-- Building using own protobuf under third_party per request.
-- Use custom protobuf build.
...
-- Caffe2 protobuf include directory: $<BUILD_INTERFACE:/pytorch/third_party/protobuf/src>$<INSTALL_INTERFACE:include>
...
--   USE_PROTOBUF_SHARED_LIBS          : OFF
--   Protobuf_USE_STATIC_LIBS          : ON
...
--   BUILD_CUSTOM_PROTOBUF : ON
--     Link local protobuf : ON

If disabling Caffe2 and Onnx is an option for the nightly, that would be great. Otherwise we need to build PyTorch from source in order to change the version of protobuf, which is the case I am hitting. Of course another option would be to upgrade Protobuf to a more mainstream version (v22 and later, which has a breaking change with dependency on abseil).

@anthonyalayo
Copy link
Contributor

I can make the PR, just wanted to confirm this means we can turn off Onnx and/or Caffe2 @malfet ?

@malfet
Copy link
Contributor

malfet commented Feb 1, 2024

Caffe2 integration has been disabled 2+ years ago, and removing ONNX integration from libtorch builds sounds fine to me, but I would defer to @BowenBao opinion here

@anthonyalayo
Copy link
Contributor

@BowenBao i'm assuming we would just set INTERN_DISABLE_ONNX to ON higher up here?

set(INTERN_DISABLE_ONNX ON)

@anthonyalayo
Copy link
Contributor

@BowenBao friendly bump

@malfet
Copy link
Contributor

malfet commented Feb 2, 2024

@anthonyalayo please do not ping people all the time, just propose a PR and we can discuss it there (Or I can try to find time next week to write one)

@anthonyalayo
Copy link
Contributor

@BowenBao i'm assuming we would just set INTERN_DISABLE_ONNX to ON higher up here?

set(INTERN_DISABLE_ONNX ON)

I was going to go with this @malfet but wasn't sure if that would be debated or not

@anthonyalayo anthonyalayo linked a pull request Feb 2, 2024 that will close this issue
@BowenBao
Copy link
Collaborator

BowenBao commented Feb 3, 2024

Hi @anthonyalayo feel free to go ahead and give it a shot. I'm not aware of any existing use cases of ONNX in libtorch.

@anthonyalayo
Copy link
Contributor

Thanks @BowenBao , mind sharing your input on #119096?

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
high priority module: abi libtorch C++ ABI related problems module: build Build system issues module: cpp Related to C++ API module: protobuf triaged This issue has been looked at a team member, and triaged and prioritized into an appropriate module
Projects
None yet
Development

Successfully merging a pull request may close this issue.