头文件和库文件说明
环境要求
依赖文件列表
- 调用算子aclnn API时,需include依赖的头文件和库文件,头文件默认在“${INSTALL_DIR}/include/”目录,库文件默认在“${INSTALL_DIR}/lib64/”目录,详细路径参见表1。
- 调用torch_extension API时,需导入如下模块,其中cann_ops_transformer定义在“${INSTALL_DIR}/python/site-packages/cann_ops_transformer”目录。
import torch import torch_npu import cann_ops_transformer
- 调用Ascend IR算子时,其头文件路径为“${INSTALL_DIR}/opp/built-in/op_graph/inc/ops_proto_*.h”,库文件路径为“${INSTALL_DIR}/opp/built-in/op_graph/lib/libopgraph_*.so”,详细路径参见表1。
其中${INSTALL_DIR}请替换为CANN软件安装后文件存储路径。以root用户安装为例,安装后文件默认存储路径为:/usr/local/Ascend/cann。
接口分类 |
用途 |
命名风格 |
依赖的头文件 |
依赖的库文件 |
|---|---|---|---|---|
调用aclnn API依赖的公共Meta接口,如创建aclTensor、aclScalar、aclIntArray等。 |
以acl为前缀,要求大驼峰风格。 |
|
libnnopbase.so |
|
提供一套C API实现CANN算子调用,包括Math、NN、CV、Transformer等类算子。 |
以aclnn为前缀,一般分为两段式接口,其中“Xxx”表示算子名(要求大驼峰风格)。
|
|
|
|
针对非PyTorch原生但常见的大模型算子,提供一套兼容PyTorch风格的API实现CANN算子调用。 |
以${op_name}为接口名,要求小写和下划线形式,调用方式推荐cann_ops_transformer.${op_name}。 |
定义在“${INSTALL_DIR}/python/site-packages/cann_ops_transformer”目录 |
||
提供GE图场景下会用到的CANN算子规格信息,包括功能、数据类型、format等。 |
IR命名是大驼峰风格:XxxYyyZzz,例如AsinGrad。 |
|
|
|
提供开发aclnn API依赖的公共框架能力接口。 |
大驼峰风格 |
aclnn/opdev/*.h,具体文件名参见nnopbase接口列表。 |
- |
|
提供开发aclnn API依赖的Level0接口。 |
大驼峰风格 |
aclnn_kernels/*.h,具体文件名参见nnopbase接口列表。 |
libopapi_math.so |
|
提供算子开发/调用过程中依赖的公共能力,例如日志获取、Tiling/InferShape开发相关接口。 |
大驼峰风格 |
具体文件名参见op_common接口列表。 |
- |
|
- 调用算子接口(aclnn)时,请注意依赖的头文件:
- 引用每类总头文件后无需引用单API头文件。
- 从CANN 7.0.0开始,算子头文件路径aclnnop/level2/aclnn_*.h废弃,请使用新头文件路径aclnnop/aclnn_*.h替代。
- 调用算子接口(aclnn)时,请注意依赖的库文件:
- 从CANN 9.0.0开始,libopapi.so废弃,请使用libopapi_*.so子库文件以提升算子编译效率。
- 从CANN 8.5.0开始,libaclnn_ops_infer、libaclnn_ops_train、libaclnn_math、libaclnn_rand静态库(*.a)和动态库(*.so)废弃,请使用libopapi_*.so库文件。