Skip to content

SJTU-DDST/ARM-Libtorch

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

4 Commits
 
 
 
 
 
 
 
 
 
 

Repository files navigation

libtorch for Linux ARM (NVIDIA BlueField-3)

本文件夹包含适用于 Linux ARM 架构(如 NVIDIA BlueField-3)的 libtorch 库文件。
libtorch 是 PyTorch 官方提供的 C++ API 库,可用于在 C++ 项目中进行深度学习推理和张量操作。
注意:本仓库使用 pytorch 源码自行编译生成,非官方发布版本。

目录结构

  • lib/:包含所有 .so.a 静态/动态库文件
  • include/:头文件目录
  • share/:CMake 配置等辅助文件

使用方法

  1. 依赖安装
  • 推荐使用 Git LFS 管理大文件:
    sudo apt-get install git-lfs
    git lfs install
  • 克隆本仓库:
    git clone https://github.com/SJTU-DDST/ARM-Libtorch.git
  1. 可选
  • 将仓库移动到/opt目录下并改名为libtorch
    sudo cp -r ARM-Libtorch /opt
    sudo ARM-Libtorch libtorch
  • .bashrc中添加环境变量:
    export LD_LIBRARY_PATH=/opt/libtorch/lib:$LD_LIBRARY_PATH
  1. CMake/Meson 配置示例
  • 在你的 CMakeLists.txt 中添加如下内容:
    set(Torch_DIR "/opt/libtorch/share/cmake/Torch")
    find_package(Torch REQUIRED)
    target_link_libraries(your_target "${TORCH_LIBRARIES}")
  • 或者在你的 meson.build 中添加如下内容:
    base_app_inc_dirs = [
        # ...
        include_directories('/opt/libtorch/include'),
        include_directories('/opt/libtorch/include/torch/csrc/api/include')
        # ...
    ]
    executable(
        # ...
        include_directories: base_app_inc_dirs,
        link_args: [
            '-L/opt/libtorch/lib',  # 添加 libtorch 的库路径
            '-ltorch',                 # 链接 libtorch
            '-ltorch_cpu',             # 链接 libtorch_cpu
            '-lc10'                    # 链接 c10
        ],
        # ...
    )
    
  1. 编译示例
  • CMake 编译
    mkdir build && cd build
    cmake ..
    make
  • Meson 编译
    meson build
    ninja -C build
    
  1. 运行环境
  • 适用于 ARM64 Linux(如 BlueField-3)
  • 推荐使用 gcc/g++ 8.0 及以上版本

注意事项

  • 本库文件较大,已通过 Git LFS 管理。
  • 请确保 ARM 架构兼容,且系统已安装所需依赖(如 OpenMP)。
  • 该 libtorch 库仅支持 CPU,不支持 Cuda。

参考链接

About

The libtorch library under the ARM architecture, suitable for NVIDIA bluefield 3 DPU

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published