项目背景
将 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 应用开发提供了本地推理基础能力。