c++ 如何在mac arm上构建libtorch?

gupuwyp2  于 2023-01-22  发布在  Mac
关注(0)|答案(2)|浏览(109)

我下载了libtorch,并在MacBook Pro ARM上制作这些文件:

example-app/
     build/
     libtorch/
     CMakeLists.txt
     example-app.cpp

然后我使用这些命令来构建torch:

cmake -DCMAKE_PREFIX_PATH=/path-to-example-app/example-app/libtorch
make

我得到了这个错误:

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

您能帮我一下吗?

bis0qfac

bis0qfac1#

我能够在Mac M1上从源代码构建libtorch库,并运行您正在查看的C++ example-app项目
https://medium.com/@albertsundjaja/installing-pytorch-c-api-d52c722f47ec
我是按照以下步骤完成的:

% git clone -b master --recurse-submodule https://github.com/pytorch/pytorch.git
% mkdir pytorch-build
% cd pytorch-build 
% cmake -DBUILD_SHARED_LIBS:BOOL=ON -DCMAKE_BUILD_TYPE:STRING=Release -DPYTHON_EXECUTABLE:PATH=`which python3` -DCMAKE_INSTALL_PREFIX:PATH=../pytorch-install ../pytorch

% cmake --build . --target install

上述过程创建了一个名为pytorch-install的目录,将pytorch-install中以下目录中的文件复制到/example-app/libtorch/中的相应目录

包括
利伯
份额
重要提示:替换文件不是目录或一些需要的文件从原始libtorch将丢失.
完成此操作后,我可以根据教程运行以下命令:

% cmake -DCMAKE_PREFIX_PATH=/path-to-example-app/example-app/libtorch ..
    make

然后运行命令

% ./example-app

我得到

0.1816  0.6954  0.8272
 0.7898  0.0256  0.1385
[ CPUFloatType{2,3} ]
vxbzzdmp

vxbzzdmp2#

因为libtorch只为x86arch构建默认值,而不是arm arch。可能你需要自己编译它。
我是说你下载的libtorch是预建库,里面包含了.so文件,这是行不通的,因为pytorch只提供x86架构的预建库,而且你用的是arm架构的cpu。
您需要下载libtorch源代码,然后从头构建libtorch。
在你从头开始构建libtorch之后,你会得到适合在arm架构cpu上链接的二进制文件。so。

相关问题