天天看点

异构加速平台Heterogeneity-Aware Lowering and Optimization (HALO)简介

Heterogeneity-Aware Lowering and Optimization (HALO)是异构计算加速度基于编译器的技术平台。

它通过称为开放深度学习 API ( ODLA )的抽象、可扩展接口来利用针对深度学习领域的异构计算能力。HALO 提供统一的 Ahead-Of-Time 编译解决方案,自动为云、边缘和物联网场景量身定制。

HALO 支持多种编译模式。在提前(AOT)编译模式下,HALO 将 AI 模型编译成用 ODLA API 编写的 C/C++ 代码。编译后的模型可以在具有相应 ODLA 运行时库的任何受支持平台上运行。此外,HALO 能够同时编译主机和异构设备代码。

下图为整体编译流程:

异构加速平台Heterogeneity-Aware Lowering and Optimization (HALO)简介
HALO 支持从以下框架编译模型:

  • 咖啡
  • ONNX
  • TensorFlow
  • TFLite

很快将支持更多框架。

HALO 通过其

HgAI SDK

支持

阿里巴巴的第一款 AI 推理芯片

Hanguang-800 NPU

。含光800 NPU由阿里巴巴集团旗下企业

T-Head Semiconductor Co., Ltd.

(又名PingTouGe)设计。

异构加速平台Heterogeneity-Aware Lowering and Optimization (HALO)简介

通过针对各种异构加速器/运行时的 ODLA 运行时库集支持广泛的 ODLA 生态系统:

我们欢迎新的加速器平台加入 ODLA 社区。

ODLA API 参考可以在

这里

找到 ,详细的编程指南即将推出...

https://github.com/alibaba/heterogeneity-aware-lowering-and-optimization/blob/master/README.md#partners 伙伴

我们感谢以下合作伙伴对 ODLA 运行时的支持:

异构加速平台Heterogeneity-Aware Lowering and Optimization (HALO)简介

如何使用光环

要构建 HALO,请按照

此处

的说明进行操作。

使用 HALO 部署模型的工作流程包括:

  1. 使用 HALO 将模型文件编译为基于 ODLA 的 C/C++ 源文件。
  2. 使用 C/C++ 编译器将生成的 C/C++ 文件编译为目标文件。
  3. 将目标文件、权重二进制文件和特定的 ODLA 运行时库链接在一起。

https://github.com/alibaba/heterogeneity-aware-lowering-and-optimization/blob/master/README.md#a-simple-example 一个简单的例子

让我们从一个基于

TensorFlow Tutorial

的 MNIST 的简单示例开始 。下图显示了整体工作流程:

异构加速平台Heterogeneity-Aware Lowering and Optimization (HALO)简介

简要说明:

HALO 生成 3 个文件:

  • mnist.h :应用程序要使用的头文件。
  • mnist.cc :代表模型的 ODLA C++ 文件。
  • mnist.bin : ELF 格式的权重。

对于应用程序,推理被简单地视为一个函数调用

mnist()

请注意,出于可移植性的目的,即使输出文件 model.cc 是 C++ 格式,HALO 也始终以 C 约定导出函数。

更详细的解释可以在

找到。示例代码可以在

找到

https://github.com/alibaba/heterogeneity-aware-lowering-and-optimization/blob/master/models/vision/classification/mnist_simple

有关所有命令行选项,请参阅

HALO 选项列表

https://github.com/alibaba/heterogeneity-aware-lowering-and-optimization/blob/master/README.md#more-examples 更多例子

https://github.com/alibaba/heterogeneity-aware-lowering-and-optimization/blob/master/README.md#contributing 贡献

我们一直在寻求帮助以改进 HALO。有关更多详细信息,请参阅

贡献指南

。谢谢!

https://github.com/alibaba/heterogeneity-aware-lowering-and-optimization/blob/master/README.md#resources 资源

https://github.com/alibaba/heterogeneity-aware-lowering-and-optimization/blob/master/README.md#license 执照

HALO 在

Apache 2.0 许可

下获得

许可