caffe icon indicating copy to clipboard operation
caffe copied to clipboard

How to run caffe in the M1 mac? I meet a problem.

Open shadowwu1 opened this issue 4 years ago • 11 comments

I use the homebrew in M1 mac to install the lib such as boost, hdm5. After I change the cmakelist and cmake successed , I try to run make, but I meet problem below:

Undefined symbols for architecture arm64: "boost::python::detail::init_module(char const*, void (*)())", referenced from: _init_caffe in _caffe.cpp.o ld: symbol(s) not found for architecture arm64 clang: error: linker command failed with exit code 1 (use -v to see invocation) make[2]: *** [lib/_caffe.dylib] Error 1 make[1]: *** [python/CMakeFiles/pycaffe.dir/all] Error 2 make: *** [all] Error 2

when i install boost by homebrew, it look like boost supoort arm64, I try to find some solution or some problom just like I meet, but I thought I was the first one who try to use this simple solution to run caffe in the M1 mac which is arm core inside rather than x86. I hope someone can give me some help to make it. Thanks! This is my Cmakelist file. CMakeLists.txt

shadowwu1 avatar Sep 21 '21 15:09 shadowwu1

same problem, the only solution for me now is using docker

klrc avatar Oct 20 '21 08:10 klrc

@klrc can you give reference on how you solved with docker? Thanks

rverma-dev avatar Nov 17 '21 13:11 rverma-dev

应该是库没链接对,我试过M1可以跑

xxlyu-2046 avatar Jan 05 '22 12:01 xxlyu-2046

@klrc can you give reference on how you solved with docker? Thanks

solved now, pls make sure to link with your arm64 python library I edit CMakeCache.txt like this:

//Path to a library.
PYTHON_LIBRARY:FILEPATH=/opt/homebrew/Cellar/[email protected]/3.9.10/Frameworks/Python.framework/Versions/3.9/lib/libpython3.9.dylib

hope this helps

you can also check this: https://www.dazhuanlan.com/evenlemon/topics/947293

NOTE: pycaffe cannot run through Rosetta (e.g. anaconda) because of x86_64 arch

klrc avatar Jan 20 '22 07:01 klrc

@klrc can you give reference on how you solved with docker? Thanks

solved now, pls make sure to link with your arm64 python library I edit CMakeCache.txt like this:

//Path to a library.
PYTHON_LIBRARY:FILEPATH=/opt/homebrew/Cellar/[email protected]/3.9.10/Frameworks/Python.framework/Versions/3.9/lib/libpython3.9.dylib

hope this helps

you can also check this: https://www.dazhuanlan.com/evenlemon/topics/947293

NOTE: pycaffe cannot run through Rosetta (e.g. anaconda) because of x86_64 arch

Can you show me your whole cmakecache.txt? I modified it according to your method, but it still doesn't work. thank you

wym11ciri avatar Feb 11 '22 19:02 wym11ciri

这是来自QQ邮箱的假期自动回复邮件。 谢谢,您的邮件已收到,尽快给您回复。

xiaolin1990 avatar Feb 11 '22 19:02 xiaolin1990

您好,邮件已收到,谢谢!

lovie123 avatar Feb 11 '22 19:02 lovie123

这是来自QQ邮箱的假期自动回复邮件。   您好,我最近正在休假中,无法亲自回复您的邮件。我将在假期结束后,尽快给您回复。

dragonQian avatar Feb 11 '22 19:02 dragonQian

I use the homebrew in M1 mac to install the lib such as boost, hdm5. After I change the cmakelist and cmake successed , I try to run make, but I meet problem below:

Undefined symbols for architecture arm64: "boost::python::detail::init_module(char const*, void (*)())", referenced from: _init_caffe in _caffe.cpp.o ld: symbol(s) not found for architecture arm64 clang: error: linker command failed with exit code 1 (use -v to see invocation) make[2]: *** [lib/_caffe.dylib] Error 1 make[1]: *** [python/CMakeFiles/pycaffe.dir/all] Error 2 make: *** [all] Error 2

when i install boost by homebrew, it look like boost supoort arm64, I try to find some solution or some problom just like I meet, but I thought I was the first one who try to use this simple solution to run caffe in the M1 mac which is arm core inside rather than x86. I hope someone can give me some help to make it. Thanks! This is my Cmakelist file. CMakeLists.txt

您好请问解决了吗

wym11ciri avatar Feb 11 '22 20:02 wym11ciri

I got a problem, an the compile is terminated! the outputs are:

`

[ 75%] Building CXX object src/caffe/CMakeFiles/caffe.dir/util/db_lmdb.cpp.o [ 75%] Building CXX object src/caffe/CMakeFiles/caffe.dir/util/hdf5.cpp.o [ 76%] Building CXX object src/caffe/CMakeFiles/caffe.dir/util/im2col.cpp.o [ 76%] Building CXX object src/caffe/CMakeFiles/caffe.dir/util/insert_splits.cpp.o [ 78%] Building CXX object src/caffe/CMakeFiles/caffe.dir/util/io.cpp.o [ 78%] Building CXX object src/caffe/CMakeFiles/caffe.dir/util/math_functions.cpp.o [ 79%] Building CXX object src/caffe/CMakeFiles/caffe.dir/util/signal_handler.cpp.o [ 79%] Building CXX object src/caffe/CMakeFiles/caffe.dir/util/upgrade_proto.cpp.o [ 81%] Linking CXX shared library ../../lib/libcaffe.dylib Undefined symbols for architecture arm64: "_AbslInternalSpinLockWake_lts_20240116", referenced from: absl::lts_20240116::base_internal::SpinLockWake(std::__1::atomic, bool) in libprotobuf.a(text_format.cc.o) absl::lts_20240116::base_internal::SpinLockWake(std::__1::atomic, bool) in libprotobuf.a(reflection_ops.cc.o) absl::lts_20240116::base_internal::SpinLockWake(std::__1::atomic, bool) in libprotobuf.a(generated_message_reflection.cc.o) absl::lts_20240116::base_internal::SpinLockWake(std::__1::atomic, bool) in libprotobuf.a(descriptor.cc.o) absl::lts_20240116::base_internal::SpinLockWake(std::__1::atomic, bool) in libprotobuf.a(message.cc.o) absl::lts_20240116::base_internal::SpinLockWake(std::__1::atomic, bool) in libprotobuf.a(dynamic_message.cc.o) absl::lts_20240116::base_internal::SpinLockWake(std::__1::atomic, bool) in libprotobuf.a(wire_format.cc.o) ... "utf8_range::IsStructurallyValid(absl::lts_20240116::string_view)", referenced from: google::protobuf::internal::WireFormatLite::VerifyUtf8String(char const, int, google::protobuf::internal::WireFormatLite::Operation, char const*) in libprotobuf.a(wire_format_lite.cc.o)

`

how can i solve it?

SLiang-liao avatar Jan 28 '24 05:01 SLiang-liao