Libtorch Compile Install in ARM
尝试在 ARM 架构上编译安装了 LibTorch,由于 git 拉取源码仓库时存在第三方库拉取失败的问题,我在早期的一些版本编译会失败,因此使用pytorch-2.5.1源码包,对应要求Python>=3.9
基本环境安装
需要的环境依赖可以在仓库中看到
apt install git build-essential cmake -y #需要的库
git clone -b v2.5.1 --recurse-submodule https://github.com/pytorch/pytorch.git
mkdir pytorch-build && cd pytorch-build
apt install python3
apt install python3-yaml python3-typing-extensions # 安装依赖包
Python依赖安装
总共需要5个包,setuptools,pip,PyYAML,typing_extensions,wheel
依赖安装顺序:setuptools » pip » others
由于只编译C++不编译Python,因此numpy等其余依赖包无需安装,但需要保证github拉取的源码文件中third_party内各第三方库完整。
LibTorch编译安装
这一步最好需要对相应处理器具有的指令集有足够的了解,避免出现编译安装了结果运行时不能用的尴尬情况。具体我用的命令是
cmake -DCMAKE_BUILD_TYPE=Release \
-DBUILD_PYTHON=OFF \ # 关闭Python依赖
-DCMAKE_INSTALL_PREFIX=/path/to/your/libtorch \ # 这里需要填写你的安装路径
-DPYTHON_EXECUTABLE=/opt/python-3.10/bin/python3.10 \
-DPYTHON_INCLUDE_DIR=/opt/python-3.10/include/python3.10 \
-DPYTHON_LIBRARY=/opt/python-3.10/lib/libpython3.10.so \
-DBUILD_SHARED_LIBS=ON \
-DUSE_CUDA=OFF \
-DUSE_CUDNN=OFF \
-DDEBUG_CUDA=OFF \
-DUSE_MKLDNN=OFF \
-DUSE_AVX=OFF \
-DUSE_FBGEMM=OFF \
-DUSE_NUMA=OFF \
-DUSE_NNPACK=OFF \
-DUSE_DISTRIBUTED=OFF \
-DCFLAGS="-march=armv8-a" \
../install_packets/pytorch
cmake --build . --target install -j4
测试程序
然后是一个测试程序,在测试目录下创建一个main.cpp文件。
#include <iostream>
#include <torch/torch.h>
int main() {
// 创建一个(2,3)张量
torch::Tensor tensor = torch::zeros({2, 3});
std::cout << tensor << std::endl;
std::cout << "Welcome to LibTorch" << std::endl;
return 0;
}
相应的我们需要创建一个CMakeLists.txt来编译运行这个代码
cmake_minimum_required(VERSION 3.18 FATAL_ERROR)
project(test)
set(CMAKE_CXX_STANDARD 17)
set(CMAKE_CXX_STANDARD_REQUIRED ON)
# 设置libtorch路径
set(Torch_DIR "/path/to/your/libtorch") # 这里需要记得修改地址为你的libtorch地址
find_package(Torch REQUIRED)
# 添加可执行文件
add_executable(${PROJECT_NAME} main.cpp)
# 链接libtorch库
target_link_libraries(${PROJECT_NAME} "${TORCH_LIBRARIES}")
# 设置编译选项
target_compile_options(${PROJECT_NAME} PRIVATE "-Wall" "-Wextra")
然后运行下面的命令
mkdir build && cd build
cmake ..
make
./test
最后修改于 2025-12-30