8
5

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

More than 1 year has passed since last update.

M1 MacでPytorchのc++版、libtorchをインストールして実行する

Last updated at Posted at 2022-07-18

PyTorchのc++版のlibtorchをM1 Macでインストールする方法についてまとめます。

インストール

  • 必要なもの
    gccとcmake
    適当にbrewでインストールしてください。

次に、PyTorchのウェブサイトに行って、Macのlibtorchをダウンロードし、どこかに展開しておきます。このディレクトリをlibtorchとします。

なお、このlibtorchの中身を使ってもm1 Macの場合はコンパイルできません。ですので、ソースからビルドすることにします。
方法はこちらにありました。

git clone -b main --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 

を順番に実行し、エラーが起きないのを祈ります。[以前はmasterでしたが、現在はmainです。]

2023/08/30追記

M2 Maxでのインストールを試みました。yamlがないと言われた場合には

python3 -m pip install pyyaml

をしてください。

コンパイル後

無事に終了すると、ディレクトリpytorch-installができています。このディレクトリの中の

bin
include
lib
share

をlibtorchの同じ場所にコピーします。つまり、

cp -r ./pytorch-install/bin/* ~/libtorch/bin 

みたいにしてコピーします。コピー先とコピー元はご自分のディレクトリの場所にしてください。includeもlibもshareも同様にします。これで終わりです。

テスト

次にテストしましょう。あるディレクトリに

example-app.cpp
CMakeLists.txt

という二つのファイルを用意します。それぞれ中身は

example-app.cpp
#include <torch/torch.h>
#include <iostream>

int main() {
  torch::Tensor tensor = torch::rand({2, 3});
  std::cout << tensor << std::endl;
}
CMakeLists.txt
cmake_minimum_required(VERSION 3.2 FATAL_ERROR)
project(example-app)

list(APPEND CMAKE_PREFIX_PATH ./libtorch)
find_package(Torch REQUIRED)
set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} ${TORCH_CXX_FLAGS}")

add_executable(example-app example-app.cpp)
target_link_libraries(example-app "${TORCH_LIBRARIES}")
set_property(TARGET example-app PROPERTY CXX_STANDARD 17)

とします。list(APPEND CMAKE_PREFIX_PATH ./libtorch)の部分は、ご自分のlibtorchのディレクトリを指定してください。
これらを作ったあと、

mkdir build
cd build
cmake ..
make

とすれば、実行ファイルができます。実行結果は

./example-app 
 0.6674  0.3057  0.8953
 0.3742  0.9715  0.9115
[ CPUFloatType{2,3} ]

となれば、libtorchが動いていることがわかります。

8
5
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
8
5

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?