如何在 mac ARM 上构建 libtorch?

Saj*_*mmi 5 c++ macos arm libtorch

我下载了 libtorch 并在 macbook pro ARM 上制作了这些文件:

example-app/
     build/
     libtorch/
     CMakeLists.txt
     example-app.cpp
Run Code Online (Sandbox Code Playgroud)

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

cmake -DCMAKE_PREFIX_PATH=/path-to-example-app/example-app/libtorch
make
Run Code Online (Sandbox Code Playgroud)

我收到此错误:

building for macOS-x86_64 but attempting to link with file built for unknown-arm64
Run Code Online (Sandbox Code Playgroud)

你能帮助我吗?

小智 7

我能够在 Mac M1 上从源代码构建 libtorch 库并运行您正在查看的 C++ 示例应用程序项目

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 
Run Code Online (Sandbox Code Playgroud)

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

bin
包含
lib
共享

重要提示:替换文件而不是目录,否则原始 libtorch 中的一些所需文件将丢失。

完成此操作后,我可以根据教程运行以下命令:

% cmake -DCMAKE_PREFIX_PATH=/path-to-example-app/example-app/libtorch ..
    make
Run Code Online (Sandbox Code Playgroud)

然后运行命令

% ./example-app
Run Code Online (Sandbox Code Playgroud)

我明白了

 0.1816  0.6954  0.8272
 0.7898  0.0256  0.1385
[ CPUFloatType{2,3} ]
Run Code Online (Sandbox Code Playgroud)