1. 版权声明

以下条款适用于所有访问燧原产品和服务相关文档的用户或阅读者(以下统称“您”),本文档包括本文档提供的信息属于上海燧原科技股份有限公司和/或其子公司(以下统称“燧原”)或其许可方所有,且燧原保留不经通知随时对本文档信息或对本文档所述任何产品和服务做出修改的权利。本文档所含信息和本文档所引用燧原其他信息均“按原样”提供。燧原不担保信息、文本、图案、链接或本文档内所含其他项目的准确性或完整性。燧原不对本文档所述产品的可销售性、所有权、不侵犯知识产权、准确性、完整性、稳定性或特定用途适用性做任何暗示担保、保证。燧原可不经通知随时对本文档或本文档所述产品或服务做出更改,但不承诺因此更新本文档。

在任何情况下,燧原不对因使用或未使用本文档而导致的任何损害(包括但不限于利润损失、业务中断和信息损失等损害)承担任何责任。除非另行书面同意,燧原不对本文档承担任何责任,不论该责任因任何原因而产生或基于任何侵权理论。

本文档所列的规格参数、性能数据和等级基于特定芯片或计算机系统或组件测试所得。经该等测试,本文档所示结果反映了燧原产品在上述测试环境中的性能表现。测试系统配置及软硬件版本、环境变量等的任何变化都会影响产品或服务的实际性能,如产品或服务的实际效果与本文档描述存在差异的,均属正常现象。燧原不担保测试本文档中每种产品或服务的所有参数的准确性和稳定性。您自行承担对本文档中产品或服务是否适合并适用于您计划的应用进行评估以及进行必要测试的责任。您的使用环境、系统配置、产品设计等特性可能会影响燧原产品或服务的质量和可靠性并导致超出本文档范围的额外或不同的情况和/或要求,燧原对此不做任何担保或承担任何责任。

燧原®、Enflame ®和本文档中显示的其他所有商标、标志是上海燧原科技股份有限公司或其许可方申请和/或注册的商标。本文档并未明示或暗示地授予您任何专利、版权、商标、集成电路布图设计、商业秘密或任何其他燧原或其许可方知识产权的权利或许可。

本文档为燧原或其许可方版权所有并受全世界版权法律和条约条款的保护。未经燧原或其许可方的事先书面许可,任何人不可以任何方式复制、修改、出版、上传、发布、传输或分发本文档。为免疑义,除了允许您按照本文档要求使用本文档相关信息外,燧原或其许可方不授予其他任何明示或暗示的权利或许可。

本文档可能保留有与第三方网站或网址的链接,访问这些链接将由您自己作出决定,燧原并不保证这些链接上所提供的任何信息、数据、观点、图片、陈述或建议的准确性、完整性、充分性和可靠性。燧原提供这些链接仅仅在于提供方便,并不表示燧原对这些信息的认可和推荐,也不是用于宣传或广告目的。

您同意在使用本文档及其内容时,遵守国家法律法规、社会公共道德。您不得利用本文档及其内容从事制作、查阅、复制和传播任何违法、侵犯他人权益等扰乱社会秩序、破坏社会稳定的行为,亦不得利用本文档及其内容从事任何危害或试图危害计算机系统及网络安全的活动。

您同意,与您访问或使用本文档相关的所有事项,应根据中华人民共和国法律解释、理解和管辖。您同意,中国上海市有管辖权的法院具有相关的管辖权。

燧原对本文档享有最终解释权。

2. 前言

2.1. 专有名词解释

表 2.1.6 缩略语和术语

术语

定义

TopsGraph

计算图优化软件栈

MLIR

Multi-Level Intermediate Representation,一种面向异构计算编译器开发的基础框架

HLIR

High Level Intermediate Representation,TopsGraph 图层的表示和优化

Op

HLIR Operation 的简称,燧原科技定义的算子

HLIR Module

由 HLIR Op 组合而成的一个完整的计算图(模型)

TopsGraphBuilder

创建算子的基础设施,可以用于构建计算图 HLIR Module

TopsGraphCompiler

计算图编译引擎,用于调用 TopsGraph 图优化 pass,编译 HLIR Module

2.2. 手册简介

本手册的主要目的是介绍 TopsGraph 计算图优化软件栈基础 API 的调用方法,并提供参考用例,读者可以通过本手册快速上手 TopsGraph 软件栈。

版本更新

表 2.2.1 版本历史

文档版本

文档日期

文档说明

V0.5

2023-08-29

测试版本发布

V0.7

2024-06-01

测试版增加用户使用手册

  • V0.5 2023.08.29

测试版本发布,搭建 TopsGraph 文档的基本结构框架。

  • V0.7 2024.06.01

测试版本增加用户使用手册,描述 TopsGraph 的基础功能和包含的模块。

2.3. TopsGraph 简介

TopsGraph 是什么?

TopsGraph 包括 AI 框架算子和计算图的解析/转化和优化,使用统一的 Graph IR(HLIR) 适配 AI 框架。提供统一的 opset 解析不同框架下的 AI 语义算子。构建静态单赋值(SSA)计算图,完成一系列计算图优化。

主要功能

TopsGraph 的主要功能有:

  1. 支持常用 AI 框架算子和计算图的解析/转化;

  2. 支持用户自定义算子;

  3. 支持代数优化,常量折叠,算子融合等计算图 Pass 优化;

  4. 支持设置编译选项,控制 Pass 的开启和关闭;

  5. 支持计算图编译,生成燧原科技人工智能加速卡可执行的二进制文件。

3. 安装使用说明

TopsGraph 是 TopsRider 软件包的组成部分,与 TopsGraph 相关的文件如下表所示。

表 3.3 TopsGraph 软件包文件

组件

文件

说明

运行环境

SDK

tops-sdk_{version_number}.deb

Enflame软件开发包

Docker

tops-sdk_{version_number}.rpm

3.1. TopsGraph 安装方式说明

Prerequisites

TopsGraphBuilder: 构图只依赖 tops-sdk,

TopsGraphCompiler: 编译只依赖 tops-sdk, tops-factor。如果要运行则依赖 tops-runtime.

安装 SDK, TopsFactor 软件包

参考 TopsRider 相关文档(软件安装手册及测试用例试用说明.pdf)启动 docker,在 docker 中切换到存放 SDK 安装包的目录,安装命令为:

## For Ubuntu
# cd sdk
# dpkg -i tops-sdk_{version_number}_amd64.deb
# dpkg -i tops-factor_{version_number}_amd64.deb

## For CentOS
# cd sdk
# rpm -i tops-sdk_{version_number}.x86_64.rpm
# rpm -i tops-factor_{version_number}.x86_64.rpm

安装完 SDK 后,检查 /usr/include/gcu/hlir 目录是否存在。

安装完 TopsFactor 后,检查 /usr/include/gcu/factor 目录是否存在。

安装 TopsGraph Python 软件包

TopsGraph 的 Python 包依赖于 tops-sdk,只支持 TopsGraphBuilder。请在安装完 tops-sdk 包之后再安装 Python 包,启动 docker,在 docker 中切换到 python_packages 目录,安装命令为:

# cd python_packages
# pip install --force-reinstall tops_graph*.whl

Attention

TopsGraph Python whl 包未对外 release。

TopsGraph Python whl 包依赖于 tops-sdk, tops-factor 包,在安装之前一定要确保安装好正确版本的 tops-sdk 和 tops-factor 包,否则 TopsGraph 无法正常运行。