Libtorch Compile Install in ARM

尝试在 ARM 架构上编译安装了 LibTorch,由于 git 拉取源码仓库时存在第三方库拉取失败的问题,我在早期的一些版本编译会失败,因此使用pytorch-2.5.1源码包,对应要求Python>=3.9

基本环境安装

需要的环境依赖可以在仓库中看到

libtorch安装需要环境依赖

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