天天看點

異構加速平台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 許可

下獲得

許可