由 PyTorch 团队

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

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

  • 使用与谷歌合作开发的 Android 神经网络 API(NNAPI)启用 DSP 和 NPUs 的执行
  • Android 上通过 Vulkan 进行 GPU 执行
  • iOS 上通过 Metal 进行 GPU 执行

本次发布还包括开发效率的提升,新增了对 Linux 的 ARM64 构建支持。

下面,您可以找到每个功能的简要描述以及开始使用的链接。这些功能可通过我们的夜间构建获得。在 PyTorch 论坛上联系我们,以提供任何评论或反馈。我们非常希望听到您对这些功能的反馈以及您如何使用它们!

Google Android 对 NNAPI 的支持

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

链接

PyTorch Mobile GPU 支持

在 GPU 上进行推理可以为许多模型类型提供出色的性能,尤其是那些使用高精度浮点数学的模型。利用 GPU 执行 ML 模型,如高通、联发科和苹果的 SoC 中的模型,可以实现 CPU 卸载,释放移动 CPU 用于非 ML 用例。此初始原型级别对设备 GPU 的支持是通过 iOS 的 Metal API 规范和 Android 的 Vulkan API 规范实现的。由于此功能处于早期阶段:性能尚未优化,模型覆盖范围有限。我们预计在 2021 年这一情况将显著改善,并希望了解您希望看到性能改进的哪些模型和设备。

链接

Linux 的 ARM64 构建

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

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

谢谢,

PyTorch 团队