跳转到主要内容
博客

原型功能现已可用 – 用于硬件加速移动和 ARM64 构建的 API

作者: 2020 年 11 月 12 日2024 年 11 月 16 日无评论

今天,我们宣布推出四项 PyTorch 原型功能。其中前三项将使移动机器学习开发者能够在组成片上系统 (SOC) 的全套硬件 (HW) 引擎上执行模型。这为开发者提供了优化模型执行以实现独特的性能、功耗和系统级并发的选项。

这些功能包括在以下设备上启用硬件引擎执行:

  • 通过与 Google 合作开发的 Android 神经网络 API (NNAPI) 在 DSP 和 NPU 上执行
  • 通过 Vulkan 在 Android 上进行 GPU 执行
  • 通过 Metal 在 iOS 上进行 GPU 执行

此次发布还包括通过新引入的对 Linux ARM64 版本的支持而带来的开发者效率提升。

下面,您将找到每个功能的简要说明以及入门链接。这些功能可通过我们的每夜构建获得。如有任何意见或反馈,请通过 PyTorch 论坛联系我们。我们很乐意听取您对这些功能的反馈,并了解您如何使用它们!

支持 Google Android NNAPI

Google Android 和 PyTorch 团队合作,通过 PyTorch Mobile 实现了对 Android 神经网络 API (NNAPI) 的支持。开发者现在可以在 Android 手机上解锁高性能执行,因为他们的机器学习模型将能够访问手机片上系统的额外硬件块。NNAPI 允许 Android 应用程序在为手机提供动力的芯片上最强大、最高效的部分运行计算密集型神经网络,包括 DSP(数字信号处理器)和 NPU(专用神经网络处理单元)。该 API 在 Android 8 (Oreo) 中引入,并在 Android 10 和 11 中显着扩展,以支持更丰富的 AI 模型。通过此集成,开发者现在可以直接从 PyTorch Mobile 无缝访问 NNAPI。此初始版本包括对核心功能和操作符集的完全功能支持,Google 和 Facebook 将在未来几个月努力扩展功能。

链接

PyTorch Mobile GPU 支持

在 GPU 上进行推理可以为许多模型类型提供出色的性能,尤其是那些利用高精度浮点数学的模型。利用 GPU 进行机器学习模型执行(例如高通、联发科和苹果等公司的 SOC 中的 GPU)可以卸载 CPU,从而将移动 CPU 用于非机器学习用例。此初始原型级别的设备上 GPU 支持通过 iOS 的 Metal API 规范和 Android 的 Vulkan API 规范提供。由于此功能处于早期阶段:性能尚未优化,模型覆盖范围有限。我们预计在 2021 年期间,这种情况将显着改善,我们希望听到您希望在哪些模型和设备上看到性能改进。

链接

Linux 版 ARM64 构建

我们现在将为 Linux 上的 ARM64 设备提供原型级 PyTorch 构建。随着我们在社区中看到更多 ARM 用途,例如 Raspberry Pis 和 Graviton(2) 实例,它们分别涵盖边缘和服务器。此功能可通过我们的每夜构建获得。

我们重视您对这些功能的反馈,并期待与您合作,不断进一步改进它们!

谢谢,

PyTorch 团队