开发者
下载

头文件与库文件说明

接口分类

ATB(AscendTransformerBoost)加速库对外提供 C++ 和 C 两种接口风格,覆盖推理与训练场景。接口按功能分为以下几类:

接口类别

命名约定

描述

基础类型与约定

atb:: 命名空间,无特殊前缀

包含基本数据结构(TensorDesc、Dims、VariantPack)、错误码(Status)、工具函数(Utils)、容器(SVector)等。

上下文管理

atb::Context / CreateContext / DestroyContext

运行时上下文管理,包括 Stream 设置、Tiling 属性、启动模式(单算子/图模式)等。

算子定义与执行

atb::Operation / CreateOperation / DestroyOperation

算子抽象基类,提供 Setup(预计算 workspace 大小)、Execute(执行算子)等生命周期接口。

图构建

atb::GraphOpBuilder / CreateGraphOpBuilder

将多个算子组合成计算图,支持 Reshape、AddOperation、Build 等图构建操作。

推理算子参数

atb::infer::*Param

推理算子参数结构体,如 LinearParam、SelfAttentionParam、RmsNormParam 等。

训练算子参数

atb::train::*Param

训练算子参数结构体,如 FastSoftMaxParam、LaserAttentionParam、RopeGradParam 等。

通信域接口

atb::Comm:: 前缀

HCCL 通信域管理,包括通信域创建/销毁等。

C风格算子接口

atb 前缀,两阶段调用

针对特定异构算子的 C 接口,如 AtbMLA、AtbFusedAddTopkDiv、AtbRingMLA 等。

通信算子参数

atb::common::*Param

通用算子参数,如 Event 同步(EventParam)、条件分支(IfCondParam)。

插件扩展基类

atb::OperationInfra

面向自定义/插件算子的基础设施类,继承自 atb::Operation。

调用接口依赖的头文件和库文件说明

安装 ATB 加速库后,编译、运行应用程序时需要引用 ATB 接口的头文件和库文件。

头文件位于 ${ATB_HOME_PATH}/include/atb/ 目录下,库文件位于 ${ATB_HOME_PATH}/lib/ 目录下。其中 ${ATB_HOME_PATH} 为 ATB 加速库安装路径,通常通过 source <安装目录>/atb/set_env.sh 设置。

以 root 用户安装为例,安装后文件存储路径为:

  • 头文件:/usr/local/Ascend/atb/cxx_abi_1/include/atb/ 或 /usr/local/Ascend/atb/cxx_abi_0/include/atb/
  • 库文件:/usr/local/Ascend/atb/cxx_abi_1/lib/ 或 /usr/local/Ascend/atb/cxx_abi_0/lib/

cxx_abi 取值取决于编译环境的 C++ ABI 版本。若环境中的 PyTorch 使用 CXX11 ABI 编译,则使用 cxx_abi_1;否则使用 cxx_abi_0。可通过 source atb/set_env.sh --cxx_abi=1 或 --cxx_abi=0 指定。

编译 ATB 接口程序时,请按照 include 的头文件依赖对应的库文件。若仅使用推理功能,只需链接 libatb.so;若使用训练算子,需额外链接 libatb_train.so。引用多余的 so 文件可能导致版本功能异常或后续版本升级时存在兼容性问题。

用户需要根据实际使用的 ATB 接口来 include 依赖的头文件。推荐直接 include atb/atb_infer.h 作为总入口头文件,该文件已包含所有对外头文件的引用。各头文件用途及对应的库文件如下表所示:

定义接口的头文件

用途

对应的库文件

atb/atb_infer.h

总入口头文件。

libatb.so

atb/types.h

基本数据结构定义,包括 Status(错误码)、Dims(维度描述)、TensorDesc(张量描述符)、Tensor(张量数据)、VariantPack(输入输出张量包)等。

libatb.so

atb/svector.h

栈上 Vector 容器 SVector<T> 定义。

libatb.so

atb/context.h

Context 接口类,用于设置算子执行上下文,如执行 Stream、Tiling 属性、启动模式等;以及 CreateContext/DestroyContext 工厂函数。

libatb.so

atb/operation.h

Operation 算子抽象基类,提供算子生命周期接口(Setup/Execute)、形状推导(InferShape)以及 CreateOperation/DestroyOperation 等工厂函数。

libatb.so

atb/operation_infra.h

OperationInfra 插件算子基础设施类,继承自 Operation。

libatb.so

atb/infer_op_params.h

推理算子参数定义,包含 LinearParam、SelfAttentionParam、RmsNormParam、ActivationParam、ElewiseParam、KvCacheParam、SoftmaxParam、LayerNormParam 等。

libatb.so

atb/train_op_params.h

训练算子参数定义,包含 FastSoftMaxParam/FastSoftMaxGradParam、LaserAttentionParam/LaserAttentionGradParam、StridedBatchMatmulParam、RopeGradParam 等。

libatb_train.so

atb/common_op_params.h

通用算子参数定义,包括 EventParam(Stream 同步事件)和 IfCondParam(运行时条件分支)。

libatb.so

atb/graph_op_builder.h

GraphOpBuilder 图构建器接口,支持将多个算子组合为计算图。

libatb.so

atb/utils.h

Utils 工具类,提供版本查询(GetAtbVersion)、张量大小/元素数计算、量化参数转换、日志级别设置等静态方法。

libatb.so

atb/atb_acl.h

C 风格 ACLNN 算子接口,针对特定异构算子(如 AtbMLA、AtbFusedAddTopkDiv、AtbRingMLA、AtbPagedCacheLoad 等)的两阶段调用函数。

libatb.so

atb/comm.h

通信域接口,提供 HCCL 通信域管理函数:CreateHcclComm、CreateHcclCommByRankTableFile、DestoryHcclComm 等。

libatb.so