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

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

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

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

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


下图为整体编译流程:

image.png

HALO 支持从以下框架编译模型:

  • 咖啡
  • ONNX
  • TensorFlow
  • TFLite

很快将支持更多框架。

HALO 通过其HgAI SDK支持 阿里巴巴的第一款 AI 推理芯片Hanguang-800 NPU。含光800 NPU由阿里巴巴集团旗下企业T-Head Semiconductor Co., Ltd.(又名PingTouGe)设计。

image.png

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

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

ODLA API 参考可以在这里找到 ,详细的编程指南即将推出...

伙伴

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

image.png

如何使用光环

要构建 HALO,请按照此处的说明进行操作。

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

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

一个简单的例子

让我们从一个基于TensorFlow Tutorial的 MNIST 的简单示例开始 。下图显示了整体工作流程:

image.png

简要说明:

HALO 生成 3 个文件:

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

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

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

更详细的解释可以在这里找到。示例代码可以在这里找到

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

更多例子

贡献

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

资源

执照

HALO 在Apache 2.0 许可下获得许可


相关文章
|
6月前
|
数据可视化 测试技术 API
Azure Machine Learning - Azure可视化图像分类操作实战
Azure Machine Learning - Azure可视化图像分类操作实战
85 1
|
1月前
|
Kubernetes 调度 算法框架/工具
NVIDIA Triton系列02-功能与架构简介
本文介绍了NVIDIA Triton推理服务器的功能与架构,强调其不仅适用于大型服务类应用,还能广泛应用于各类推理场景。Triton支持多种模型格式、查询类型和部署方式,具备高效的模型管理和优化能力,确保高性能和系统稳定性。文章详细解析了Triton的主从架构,包括模型仓库、客户端应用、通信协议和推理服务器的核心功能模块。
73 1
NVIDIA Triton系列02-功能与架构简介
|
3月前
|
算法 异构计算
自研分布式训练框架EPL问题之帮助加速Bert Large模型的训练如何解决
自研分布式训练框架EPL问题之帮助加速Bert Large模型的训练如何解决
|
6月前
|
人工智能 监控 开发者
阿里云PAI发布DeepRec Extension,打造稳定高效的分布式训练,并宣布开源!
阿里云人工智能平台PAI正式发布自研的 DeepRec Extension(即 DeepRec 扩展),旨在以更低成本,更高效率进行稀疏模型的分布式训练。
|
6月前
|
机器学习/深度学习 人工智能 PyTorch
人工智能平台PAI 操作报错合集之机器学习PAI,用Triton Inference Server 22.05 部署模型,遇到SaveV3这个op的问题,如何解决
阿里云人工智能平台PAI (Platform for Artificial Intelligence) 是阿里云推出的一套全面、易用的机器学习和深度学习平台,旨在帮助企业、开发者和数据科学家快速构建、训练、部署和管理人工智能模型。在使用阿里云人工智能平台PAI进行操作时,可能会遇到各种类型的错误。以下列举了一些常见的报错情况及其可能的原因和解决方法。
|
11月前
|
机器学习/深度学习 文件存储 Python
Azure云工作站上做Machine Learning模型开发 - 全流程演示
Azure云工作站上做Machine Learning模型开发 - 全流程演示
91 0
|
存储 机器学习/深度学习 缓存
阿里云PAIx达摩院GraphScope开源基于PyTorch的GPU加速分布式GNN框架
阿里云机器学习平台 PAI 团队和达摩院 GraphScope 团队联合推出了面向 PyTorch 的 GPU 加速分布式 GNN 框架 GraphLearn-for-PyTorch(GLT) 。
阿里云PAIx达摩院GraphScope开源基于PyTorch的GPU加速分布式GNN框架
|
算法 图计算
TuGraph Analytics图计算快速上手之K-core算法
K-Core算法是一种用来在图中找出符合指定核心度的紧密关联的子图结构,在K-Core的结果子图中,每个顶点至少具有k的度数,且所有顶点都至少与该子图中的 k 个其他节点相连。K-Core通常用来对一个图进行子图划分,通过去除不重要的顶点,将符合逾期的子图暴露出来进行进一步分析。K-Core图算法常用来识别和提取图中的紧密连通群组,因具有较低的时间复杂度(线性)及较好的直观可解释性,广泛应用于金融风控、社交网络和生物学等研究领域。
|
机器学习/深度学习 搜索推荐 算法
AWS工程师辞职创建Tensor Search引擎,即插即用HuggingFace版CLIP模型
AWS工程师辞职创建Tensor Search引擎,即插即用HuggingFace版CLIP模型
154 0
|
调度 Perl 容器
开源工具GPU Sharing:支持Kubernetes集群细粒度
问题背景 全球主要的容器集群服务厂商的Kubernetes服务都提供了Nvidia GPU容器调度能力,但是通常都是将一个GPU卡分配给一个容器。这可以实现比较好的隔离性,确保使用GPU的应用不会被其他应用影响;对于深度学习模型训练的场景非常适合,但是如果对于模型开发和模型预测的场景就会比较浪费。
16370 0