所有项目
维护中 2024

PyTorch 鸿蒙移植

将 PyTorch 推理框架交叉编译适配到 OpenHarmony 平台

项目背景

将 PyTorch 推理能力引入 HarmonyOS 设备,使鸿蒙应用可本地运行 AI 模型推理,无需依赖云端服务。

技术挑战

PyTorch 构建系统极其复杂——CMake + 十余个第三方依赖(protobuf、eigen、cpuinfo、NNPACK 等),每个都需要单独适配 OpenHarmony 工具链。

平台差异处理

  • 替换 Linux 特有系统调用,适配 musl libc 与 bionic 差异
  • 处理 ARM64 NEON 指令集优化路径
  • 解决 OpenHarmony NDK 与标准 Android NDK 的头文件/链接差异

依赖链管理

十余个子依赖的交叉编译与版本对齐,任何一个编译失败都会阻塞整体构建。通过定制 CMake Toolchain File 统一管理编译器、sysroot、链接器参数。

解决方案

  • 定制 CMake Toolchain File,统一 ARM64 交叉编译环境
  • 编写平台适配层(shim)屏蔽 OS 差异
  • 裁剪不需要的模块(CUDA / 分布式训练 / GPU 后端)减小产物体积
  • 保留 CPU 推理后端,确保模型加载与推理功能完整

成果

成功在 HarmonyOS 设备上运行 PyTorch CPU 推理,支持常见模型格式加载与推理。为鸿蒙生态的 AI 应用开发提供了本地推理基础能力。