已合并
【PR】: 修改资料中的sample链接 #4527
Sophia1213创建于 13 天前
【PR】: 修改资料中的sample链接 #4527
已合并
Sophia1213创建于 13 天前
91 个文件变更+153-153
@@ -47,4 +47,4 @@ ge::Status GeSessionExecuteGraphWithStreamAsync(ge::Session &session, uint32_t g
47- 调用该接口前,需要通过acl提供的**aclrtCreateStream**接口创建Stream。47- 调用该接口前,需要通过acl提供的**aclrtCreateStream**接口创建Stream。
48- 得到输出运行结果前,需要通过**aclrtSynchronizeStream**接口保证Stream上的任务已经执行完。48- 得到输出运行结果前,需要通过**aclrtSynchronizeStream**接口保证Stream上的任务已经执行完。
49 49 
50-接口详细说明请参见《[Runtime运行时 API](https://hiascend.com/document/redirect/CannCommunityRuntimeApi)》中的“Stream管理”。50+接口详细说明请参见《[Runtime运行时 API](https://gitcode.com/cann/runtime/blob/master/docs/zh/api_ref/README.md)》中的“Stream管理”。
@@ -25,7 +25,7 @@ export DUMP_GE_GRAPH=1
25- 若指定环境变量:DUMP\_GRAPH\_PATH,生成的JSON文件在$\{DUMP\_GRAPH\_PATH\}/目录。25- 若指定环境变量:DUMP\_GRAPH\_PATH,生成的JSON文件在$\{DUMP\_GRAPH\_PATH\}/目录。
26- 若没有指定环境变量,生成的JSON文件在当前脚本执行目录。26- 若没有指定环境变量,生成的JSON文件在当前脚本执行目录。
27 27 
28-上述环境变量的详细说明请参见《[环境变量参考](https://hiascend.com/document/redirect/CannCommunityEnvRef)》。28+上述环境变量的详细说明请参见《[环境变量参考](https://gitcode.com/cann/docs/blob/master/docs/zh/env-vars/README.md)》。
29 29 
30## 函数原型30## 函数原型
31 31 
@@ -29,7 +29,7 @@ graphStatus SetCustomValue(uint64_t custom_value)
29 29 
30设置成功时返回“ge::GRAPH\_SUCCESS”。30设置成功时返回“ge::GRAPH\_SUCCESS”。
31 31 
32-关于graphStatus的定义,请参见[ge::graphStatus](https://hiascend.com/document/redirect/CannCommunitybasicopapi)。32+关于graphStatus的定义,请参见[ge::graphStatus](https://gitcode.com/cann/metadef/blob/master/docs/zh/api/README.md)。
33 33 
34## 约束说明34## 约束说明
35 35 
@@ -29,7 +29,7 @@ graphStatus SetHiddenInputSubType(HiddenInputSubType hidden_type)
29 29 
30设置成功时返回“ge::GRAPH\_SUCCESS”。30设置成功时返回“ge::GRAPH\_SUCCESS”。
31 31 
32-关于graphStatus的定义,请参见[ge::graphStatus](https://hiascend.com/document/redirect/CannCommunitybasicopapi)。32+关于graphStatus的定义,请参见[ge::graphStatus](https://gitcode.com/cann/metadef/blob/master/docs/zh/api/README.md)。
33 33 
34## 约束说明34## 约束说明
35 35 
@@ -11,7 +11,7 @@ GE退出,释放GE相关资源。
11 11 
12在该接口内,默认增加2000ms延时(实际最大延时可达2000ms),用于Device业务日志回传,保证ERROR级别和EVENT级别日志不丢失,您可以将**ASCEND\_LOG\_DEVICE\_FLUSH\_TIMEOUT**环境变量设置为0(命令示例:**export ASCEND\_LOG\_DEVICE\_FLUSH\_TIMEOUT=0**),去除该默认延时。12在该接口内,默认增加2000ms延时(实际最大延时可达2000ms),用于Device业务日志回传,保证ERROR级别和EVENT级别日志不丢失,您可以将**ASCEND\_LOG\_DEVICE\_FLUSH\_TIMEOUT**环境变量设置为0(命令示例:**export ASCEND\_LOG\_DEVICE\_FLUSH\_TIMEOUT=0**),去除该默认延时。
13 13 
14-关于**ASCEND\_LOG\_DEVICE\_FLUSH\_TIMEOUT**环境变量的详细描述请参见《[环境变量参考](https://hiascend.com/document/redirect/CannCommunityEnvRef)》。14+关于**ASCEND\_LOG\_DEVICE\_FLUSH\_TIMEOUT**环境变量的详细描述请参见《[环境变量参考](https://gitcode.com/cann/docs/blob/master/docs/zh/env-vars/README.md)》。
15 15 
16## 函数原型16## 函数原型
17 17 
@@ -25,7 +25,7 @@
25 25 
26推荐使用用法一:因为生成om离线模型后,调用GetCompiledModel接口和调用aclmdlLoadFromFile接口的CANN软件包版本号**可以不一致**;而如果使用用法二,由于内存缓冲区的序列化模型数据ModelBufferData不保证版本兼容性,要求调用GetCompiledModel接口和调用aclmdlLoadFromMem接口的CANN软件包版本号**一致**,否则可能引发未定义行为。26推荐使用用法一:因为生成om离线模型后,调用GetCompiledModel接口和调用aclmdlLoadFromFile接口的CANN软件包版本号**可以不一致**;而如果使用用法二,由于内存缓冲区的序列化模型数据ModelBufferData不保证版本兼容性,要求调用GetCompiledModel接口和调用aclmdlLoadFromMem接口的CANN软件包版本号**一致**,否则可能引发未定义行为。
27 27 
28-接口详细介绍请参见《[应用开发 \(C&C++\)](https://hiascend.com/document/redirect/CannCommunityCppBaseinfer)》中的“模型推理”章节。28+接口详细介绍请参见《[应用开发](https://gitcode.com/cann/docs/blob/master/docs/zh/app-dev/00_acl_cpp_dev.md)》中的“模型推理”章节。
29 29 
30## 函数原型30## 函数原型
31 31 
@@ -21,7 +21,7 @@ export DUMP_GE_GRAPH=1
21- 若指定环境变量:DUMP\_GRAPH\_PATH,生成的JSON文件在$\{DUMP\_GRAPH\_PATH\}/目录。21- 若指定环境变量:DUMP\_GRAPH\_PATH,生成的JSON文件在$\{DUMP\_GRAPH\_PATH\}/目录。
22- 若没有指定环境变量,生成的JSON文件在当前脚本执行目录。22- 若没有指定环境变量,生成的JSON文件在当前脚本执行目录。
23 23 
24-上述环境变量的详细说明请参见《[环境变量参考](https://hiascend.com/document/redirect/CannCommunityEnvRef)》。24+上述环境变量的详细说明请参见《[环境变量参考](https://gitcode.com/cann/docs/blob/master/docs/zh/env-vars/README.md)》。
25 25 
26## 函数原型26## 函数原型
27 27 
@@ -22,7 +22,7 @@ Status RegisterExternalAllocator(const void *const stream, AllocatorPtr allocato
22| 参数名 | 输入/输出 | 说明 |22| 参数名 | 输入/输出 | 说明 |
23| --- | --- | --- |23| --- | --- | --- |
24| stream | 输入 | 指定Allocator注册在哪个Stream上。 |24| stream | 输入 | 指定Allocator注册在哪个Stream上。 |
25-| allocator | 输入 | 用户Allocator对象的智能指针。Allocator基于《[基础数据结构和接口](https://hiascend.com/document/redirect/CannCommunitybasicopapi)》中的"ge命名空间 > Allocator"派生。 |25+| allocator | 输入 | 用户Allocator对象的智能指针。Allocator基于《[基础数据结构和接口](https://gitcode.com/cann/metadef/blob/master/docs/zh/api/README.md)》中的"ge命名空间 > Allocator"派生。 |
26 26 
27## 返回值说明27## 返回值说明
28 28 
@@ -29,7 +29,7 @@ graphStatus SetBlockDim(uint32_t block_dim)
29 29 
30设置成功时返回“ge::GRAPH\_SUCCESS”。30设置成功时返回“ge::GRAPH\_SUCCESS”。
31 31 
32-关于graphStatus的定义,请参见[ge::graphStatus](https://hiascend.com/document/redirect/CannCommunitybasicopapi)。32+关于graphStatus的定义,请参见[ge::graphStatus](https://gitcode.com/cann/metadef/blob/master/docs/zh/api/README.md)。
33 33 
34## 约束说明34## 约束说明
35 35 
@@ -28,8 +28,8 @@ TensorDesc GetInputDesc(uint32_t index) const
28 28 
29| 参数名 | 输入/输出 | 描述 |29| 参数名 | 输入/输出 | 描述 |
30| --- | --- | --- |30| --- | --- | --- |
31-| name | 输入 | 算子Input名称。<br>当无此算子Input名称时,则返回TensorDesc默认构造的对象,其中,主要设置[DataType](https://hiascend.com/document/redirect/CannCommunitybasicopapi)为DT_FLOAT(表示float类型),[Format](https://hiascend.com/document/redirect/CannCommunitybasicopapi)为FORMAT_NCHW(表示NCHW)。 |31+| name | 输入 | 算子Input名称。<br>当无此算子Input名称时,则返回TensorDesc默认构造的对象,其中,主要设置[DataType](https://gitcode.com/cann/metadef/blob/master/docs/zh/api/README.md)为DT_FLOAT(表示float类型),[Format](https://gitcode.com/cann/metadef/blob/master/docs/zh/api/README.md)为FORMAT_NCHW(表示NCHW)。 |
32-| index | 输入 | 算子Input索引。<br>当无此算子Input索引时,则返回TensorDesc默认构造的对象,其中,主要设置[DataType](https://hiascend.com/document/redirect/CannCommunitybasicopapi)为DT_FLOAT(表示float类型),[Format](https://hiascend.com/document/redirect/CannCommunitybasicopapi)为FORMAT_NCHW(表示NCHW)。 |32+| index | 输入 | 算子Input索引。<br>当无此算子Input索引时,则返回TensorDesc默认构造的对象,其中,主要设置[DataType](https://gitcode.com/cann/metadef/blob/master/docs/zh/api/README.md)为DT_FLOAT(表示float类型),[Format](https://gitcode.com/cann/metadef/blob/master/docs/zh/api/README.md)为FORMAT_NCHW(表示NCHW)。 |
33 33 
34## 返回值说明34## 返回值说明
35 35 
@@ -28,8 +28,8 @@ TensorDesc GetOutputDesc(uint32_t index) const
28 28 
29| 参数名 | 输入/输出 | 描述 |29| 参数名 | 输入/输出 | 描述 |
30| --- | --- | --- |30| --- | --- | --- |
31-| name | 输入 | 算子Output名称。<br>当无此算子Output名称时,返回TensorDesc默认构造的对象,其中,主要设置[DataType](https://hiascend.com/document/redirect/CannCommunitybasicopapi)为DT_FLOAT(表示float类型),[Format](https://hiascend.com/document/redirect/CannCommunitybasicopapi)为FORMAT_NCHW(表示NCHW)。 |31+| name | 输入 | 算子Output名称。<br>当无此算子Output名称时,返回TensorDesc默认构造的对象,其中,主要设置[DataType](https://gitcode.com/cann/metadef/blob/master/docs/zh/api/README.md)为DT_FLOAT(表示float类型),[Format](https://gitcode.com/cann/metadef/blob/master/docs/zh/api/README.md)为FORMAT_NCHW(表示NCHW)。 |
32-| index | 输入 | 算子Output索引。<br>当无此算子Output索引时,则返回TensorDesc默认构造的对象,其中,主要设置[DataType](https://hiascend.com/document/redirect/CannCommunitybasicopapi)为DT_FLOAT(表示float类型),[Format](https://hiascend.com/document/redirect/CannCommunitybasicopapi)为FORMAT_NCHW(表示NCHW)。 |32+| index | 输入 | 算子Output索引。<br>当无此算子Output索引时,则返回TensorDesc默认构造的对象,其中,主要设置[DataType](https://gitcode.com/cann/metadef/blob/master/docs/zh/api/README.md)为DT_FLOAT(表示float类型),[Format](https://gitcode.com/cann/metadef/blob/master/docs/zh/api/README.md)为FORMAT_NCHW(表示NCHW)。 |
33 33 
34## 返回值说明34## 返回值说明
35 35 
@@ -13,7 +13,7 @@
13 13 
14推导Operator输出的shape和DataType。14推导Operator输出的shape和DataType。
15 15 
16-关于DataType数据类型的定义,请参见[DataType](https://hiascend.com/document/redirect/CannCommunitybasicopapi)。16+关于DataType数据类型的定义,请参见[DataType](https://gitcode.com/cann/metadef/blob/master/docs/zh/api/README.md)。
17 17 
18## 函数原型18## 函数原型
19 19 
@@ -11,7 +11,7 @@ GE退出,释放GE相关资源。
11 11 
12在该接口内,默认增加2000ms延时(实际最大延时可达2000ms),用于Device业务日志回传,保证ERROR级别和EVENT级别日志不丢失,您可以将**ASCEND\_LOG\_DEVICE\_FLUSH\_TIMEOUT**环境变量设置为0(命令示例:**export ASCEND\_LOG\_DEVICE\_FLUSH\_TIMEOUT=0**),去除该默认延时。12在该接口内,默认增加2000ms延时(实际最大延时可达2000ms),用于Device业务日志回传,保证ERROR级别和EVENT级别日志不丢失,您可以将**ASCEND\_LOG\_DEVICE\_FLUSH\_TIMEOUT**环境变量设置为0(命令示例:**export ASCEND\_LOG\_DEVICE\_FLUSH\_TIMEOUT=0**),去除该默认延时。
13 13 
14-关于**ASCEND\_LOG\_DEVICE\_FLUSH\_TIMEOUT**环境变量的详细描述请参见《[环境变量参考](https://hiascend.com/document/redirect/CannCommunityEnvRef)》。14+关于**ASCEND\_LOG\_DEVICE\_FLUSH\_TIMEOUT**环境变量的详细描述请参见《[环境变量参考](https://gitcode.com/cann/docs/blob/master/docs/zh/env-vars/README.md)》。
15 15 
16## 函数原型16## 函数原型
17 17 
@@ -21,7 +21,7 @@ export DUMP_GE_GRAPH=1
21- 若指定环境变量:DUMP\_GRAPH\_PATH,生成的JSON文件在$\{DUMP\_GRAPH\_PATH\}/目录。21- 若指定环境变量:DUMP\_GRAPH\_PATH,生成的JSON文件在$\{DUMP\_GRAPH\_PATH\}/目录。
22- 若没有指定环境变量,生成的JSON文件在当前脚本执行目录。22- 若没有指定环境变量,生成的JSON文件在当前脚本执行目录。
23 23 
24-上述环境变量的详细说明请参见《[环境变量参考](https://hiascend.com/document/redirect/CannCommunityEnvRef)》。24+上述环境变量的详细说明请参见《[环境变量参考](https://gitcode.com/cann/docs/blob/master/docs/zh/env-vars/README.md)》。
25 25 
26## 函数原型26## 函数原型
27 27 
@@ -22,7 +22,7 @@ Status RegisterExternalAllocator(const void *const stream, AllocatorPtr allocato
22| 参数名 | 输入/输出 | 说明 |22| 参数名 | 输入/输出 | 说明 |
23| --- | --- | --- |23| --- | --- | --- |
24| stream | 输入 | 指定Allocator注册在哪个Stream上。 |24| stream | 输入 | 指定Allocator注册在哪个Stream上。 |
25-| allocator | 输入 | 用户Allocator对象的智能指针。Allocator基于[Allocator](https://hiascend.com/document/redirect/CannCommunitybasicopapi)派生。 |25+| allocator | 输入 | 用户Allocator对象的智能指针。Allocator基于[Allocator](https://gitcode.com/cann/metadef/blob/master/docs/zh/api/README.md)派生。 |
26 26 
27## 返回值说明27## 返回值说明
28 28 
@@ -25,7 +25,7 @@ DataType GetDataType() const
25 25 
26## 返回值26## 返回值
27 27 
28-ShapeAndType对象中的[DataType](https://hiascend.com/document/redirect/CannCommunitybasicopapi)。28+ShapeAndType对象中的[DataType](https://gitcode.com/cann/metadef/blob/master/docs/zh/api/README.md)。
29 29 
30## 约束说明30## 约束说明
31 31 
@@ -25,7 +25,7 @@ const Shape &GetShape() const
25 25 
26## 返回值26## 返回值
27 27 
28-ShapeAndType对象中的[Shape](https://hiascend.com/document/redirect/CannCommunitybasicopapi)。28+ShapeAndType对象中的[Shape](https://gitcode.com/cann/metadef/blob/master/docs/zh/api/README.md)。
29 29 
30## 约束说明30## 约束说明
31 31 
@@ -23,7 +23,7 @@ void SetType(DataType data_type)
23 23 
24| 参数名 | 输入/输出 | 描述 |24| 参数名 | 输入/输出 | 描述 |
25| --- | --- | --- |25| --- | --- | --- |
26-| data_type | 输入 | 设置的目标DataType。类型请参见[DataType](https://hiascend.com/document/redirect/CannCommunitybasicopapi)。 |26+| data_type | 输入 | 设置的目标DataType。类型请参见[DataType](https://gitcode.com/cann/metadef/blob/master/docs/zh/api/README.md)。 |
27 27 
28## 返回值说明28## 返回值说明
29 29 
@@ -9,7 +9,7 @@
9**使用约束:**9**使用约束:**
10 10 
11- 如果要自行指定算子编译的过程文件存放路径,需DEBUG\_DIR参数与OP\_DEBUG\_LEVEL参数配合使用,且当OP\_DEBUG\_LEVEL取值为0时,不能使用DEBUG\_DIR参数。11- 如果要自行指定算子编译的过程文件存放路径,需DEBUG\_DIR参数与OP\_DEBUG\_LEVEL参数配合使用,且当OP\_DEBUG\_LEVEL取值为0时,不能使用DEBUG\_DIR参数。
12-- 算子编译生成的调试文件存储路径,除DEBUG\_DIR参数设置的方式外,还可以配置环境变量ASCEND\_WORK\_PATH,几种方式优先级为:配置参数“DEBUG\_DIR”\>环境变量ASCEND\_WORK\_PATH \>默认存储路径。关于环境变量ASCEND\_WORK\_PATH的详细说明请参见《[环境变量参考](https://hiascend.com/document/redirect/CannCommunityEnvRef)》。12+- 算子编译生成的调试文件存储路径,除DEBUG\_DIR参数设置的方式外,还可以配置环境变量ASCEND\_WORK\_PATH,几种方式优先级为:配置参数“DEBUG\_DIR”\>环境变量ASCEND\_WORK\_PATH \>默认存储路径。关于环境变量ASCEND\_WORK\_PATH的详细说明请参见《[环境变量参考](https://gitcode.com/cann/docs/blob/master/docs/zh/env-vars/README.md)》。
13 13 
14**配置示例**14**配置示例**
15 15 
@@ -254,7 +254,7 @@ op_debug_list=GatherV2,opType::ReduceSum
254 254 
255> [!NOTE]说明255> [!NOTE]说明
256>256>
257->- 若未设置ASCEND\_WORK\_PATH环境变量,结果文件默认生成在执行脚本的当前路径;若设置了ASCEND\_WORK\_PATH环境变量,则保存路径为:`$ASCEND_WORK_PATH/FE/${进程号}/fusion_result.json`。环境变量详细说明请参见《[环境变量参考](https://hiascend.com/document/redirect/CannCommunityEnvRef)》。257+>- 若未设置ASCEND\_WORK\_PATH环境变量,结果文件默认生成在执行脚本的当前路径;若设置了ASCEND\_WORK\_PATH环境变量,则保存路径为:`$ASCEND_WORK_PATH/FE/${进程号}/fusion_result.json`。环境变量详细说明请参见《[环境变量参考](https://gitcode.com/cann/docs/blob/master/docs/zh/env-vars/README.md)》。
258>- 通过FUSION\_SWITCH\_FILE参数关闭的融合规则,不会在fusion\_result.json文件中呈现。258>- 通过FUSION\_SWITCH\_FILE参数关闭的融合规则,不会在fusion\_result.json文件中呈现。
259 259 
260**配置示例:**260**配置示例:**
@@ -260,7 +260,7 @@ $HOME/atc\_data
260- 如果参数指定的路径存在且有效,则在指定的路径下自动创建子目录kernel\_cache;如果指定的路径不存在但路径有效,则先自动创建目录,然后在该路径下自动创建子目录kernel\_cache。260- 如果参数指定的路径存在且有效,则在指定的路径下自动创建子目录kernel\_cache;如果指定的路径不存在但路径有效,则先自动创建目录,然后在该路径下自动创建子目录kernel\_cache。
261- 用户请不要在**默认缓存目录**下存放其他自有内容,自有内容在软件包安装或升级时会同默认缓存目录一并被删除。261- 用户请不要在**默认缓存目录**下存放其他自有内容,自有内容在软件包安装或升级时会同默认缓存目录一并被删除。
262- 通过该参数指定的**非默认缓存目录**无法删除(软件包安装或升级时不会被删除)。262- 通过该参数指定的**非默认缓存目录**无法删除(软件包安装或升级时不会被删除)。
263-- 算子编译磁盘缓存路径,除OP\_COMPILER\_CACHE\_DIR参数设置的方式外,还可以配置环境变量ASCEND\_CACHE\_PATH,几种方式优先级为:配置参数“OP\_COMPILER\_CACHE\_DIR”\>环境变量ASCEND\_CACHE\_PATH\>默认存储路径。关于环境变量ASCEND\_CACHE\_PATH的详细说明请参见《[环境变量参考](https://hiascend.com/document/redirect/CannCommunityEnvRef)》。263+- 算子编译磁盘缓存路径,除OP\_COMPILER\_CACHE\_DIR参数设置的方式外,还可以配置环境变量ASCEND\_CACHE\_PATH,几种方式优先级为:配置参数“OP\_COMPILER\_CACHE\_DIR”\>环境变量ASCEND\_CACHE\_PATH\>默认存储路径。关于环境变量ASCEND\_CACHE\_PATH的详细说明请参见《[环境变量参考](https://gitcode.com/cann/docs/blob/master/docs/zh/env-vars/README.md)》。
264 264 
265**产品支持情况:**265**产品支持情况:**
266 266 
@@ -99,7 +99,7 @@
99<!-- end id3 -->99<!-- end id3 -->
100<!-- @ref: ge/res/docs/zh/api/graph_engine_api/cpp/ge/aclgrphBuildInitialize_config_params/precision_tuning_res.md#id1 -->100<!-- @ref: ge/res/docs/zh/api/graph_engine_api/cpp/ge/aclgrphBuildInitialize_config_params/precision_tuning_res.md#id1 -->
101 101 
102-- 该参数默认为性能优先,后续推理时可能会导致精度溢出问题。如果推理时出现精度问题,可以参见《[应用开发 \(C&C++\)](https://hiascend.com/document/redirect/CannCommunityCppBaseinfer)》中的“模型推理 \> 精度/性能优化 \> 模型推理精度提升建议”进行定位。102+- 该参数默认为性能优先,后续推理时可能会导致精度溢出问题。如果推理时出现精度问题,可以参见《[应用开发](https://gitcode.com/cann/docs/blob/master/docs/zh/app-dev/00_acl_cpp_dev.md)》中的“模型推理 \> 精度/性能优化 \> 模型推理精度提升建议”进行定位。
103- 如果用户聚焦精度问题,可以修改为其他取值,比如**must\_keep\_origin\_dtype。**103- 如果用户聚焦精度问题,可以修改为其他取值,比如**must\_keep\_origin\_dtype。**
104 104 
105**配置示例:**105**配置示例:**
@@ -210,7 +210,7 @@
210 Ascend 950PR/Ascend 950DT210 Ascend 950PR/Ascend 950DT
211<!-- end id13 -->211<!-- end id13 -->
212 212 
213-- 该参数默认为性能优先,后续推理时可能会导致精度溢出问题。如果推理时出现精度问题,可以参见《[应用开发 \(C&C++\)](https://hiascend.com/document/redirect/CannCommunityCppBaseinfer)》中的“模型推理 \> 精度/性能优化 \> 模型推理精度提升建议”进行定位。213+- 该参数默认为性能优先,后续推理时可能会导致精度溢出问题。如果推理时出现精度问题,可以参见《[应用开发](https://gitcode.com/cann/docs/blob/master/docs/zh/app-dev/00_acl_cpp_dev.md)》中的“模型推理 \> 精度/性能优化 \> 模型推理精度提升建议”进行定位。
214- 如果用户聚焦精度问题,可以修改为其他取值,比如**origin。**214- 如果用户聚焦精度问题,可以修改为其他取值,比如**origin。**
215 215 
216**配置示例:**216**配置示例:**
@@ -48,4 +48,4 @@ graphStatus aclgrphBuildModel(const ge::Graph &graph, const std::map<AscendStrin
48 48 
49 后续进行推理业务时,需要使用**从内存中**加载模型的接口,例如aclmdlLoadFromMem,然后使用aclmdlExecute接口执行推理。49 后续进行推理业务时,需要使用**从内存中**加载模型的接口,例如aclmdlLoadFromMem,然后使用aclmdlExecute接口执行推理。
50 50 
51- 接口详细使用说明请参见《[应用开发 \(C&C++\)](https://hiascend.com/document/redirect/CannCommunityCppBaseinfer)》中的“模型推理”章节。51+ 接口详细使用说明请参见《[应用开发](https://gitcode.com/cann/docs/blob/master/docs/zh/app-dev/00_acl_cpp_dev.md)》中的“模型推理”章节。
@@ -29,7 +29,7 @@
29**使用约束:**29**使用约束:**
30 30 
31- 如果要自行指定算子编译的过程文件存放路径,需DEBUG\_DIR参数与OP\_DEBUG\_LEVEL参数配合使用,且当OP\_DEBUG\_LEVEL取值为0时,不能使用DEBUG\_DIR参数。31- 如果要自行指定算子编译的过程文件存放路径,需DEBUG\_DIR参数与OP\_DEBUG\_LEVEL参数配合使用,且当OP\_DEBUG\_LEVEL取值为0时,不能使用DEBUG\_DIR参数。
32-- 算子编译生成的调试文件存储路径,除DEBUG\_DIR参数设置的方式外,还可以配置环境变量ASCEND\_WORK\_PATH,几种方式优先级为:配置参数“DEBUG\_DIR”\>环境变量ASCEND\_WORK\_PATH \>默认存储路径。关于环境变量ASCEND\_WORK\_PATH的详细说明请参见《[环境变量参考](https://hiascend.com/document/redirect/CannCommunityEnvRef)》。32+- 算子编译生成的调试文件存储路径,除DEBUG\_DIR参数设置的方式外,还可以配置环境变量ASCEND\_WORK\_PATH,几种方式优先级为:配置参数“DEBUG\_DIR”\>环境变量ASCEND\_WORK\_PATH \>默认存储路径。关于环境变量ASCEND\_WORK\_PATH的详细说明请参见《[环境变量参考](https://gitcode.com/cann/docs/blob/master/docs/zh/env-vars/README.md)》。
33 33 
34**配置示例**34**配置示例**
35 35 
@@ -255,7 +255,7 @@ op_debug_list=GatherV2,opType::ReduceSum
255 255 
256> [!NOTE]说明256> [!NOTE]说明
257>257>
258->- 若未设置ASCEND\_WORK\_PATH环境变量,结果文件默认生成在执行脚本的当前路径;若设置了ASCEND\_WORK\_PATH环境变量,则保存路径为:$ASCEND\_WORK\_PATH/FE/$\{进程号\}/fusion\_result.json。环境变量详细说明请参见《[环境变量参考](https://hiascend.com/document/redirect/CannCommunityEnvRef)》。258+>- 若未设置ASCEND\_WORK\_PATH环境变量,结果文件默认生成在执行脚本的当前路径;若设置了ASCEND\_WORK\_PATH环境变量,则保存路径为:$ASCEND\_WORK\_PATH/FE/$\{进程号\}/fusion\_result.json。环境变量详细说明请参见《[环境变量参考](https://gitcode.com/cann/docs/blob/master/docs/zh/env-vars/README.md)》。
259>- 通过FUSION\_SWITCH\_FILE参数关闭的融合规则,不会在fusion\_result.json文件中呈现。259>- 通过FUSION\_SWITCH\_FILE参数关闭的融合规则,不会在fusion\_result.json文件中呈现。
260 260 
261**配置示例:**261**配置示例:**
@@ -116,7 +116,7 @@ EXCLUDE\_ENGINES提供了排除某个引擎的功能,比如在一次训练过
116- 如果参数指定的路径存在且有效,则在指定的路径下自动创建子目录kernel\_cache;如果指定的路径不存在但路径有效,则先自动创建目录,然后在该路径下自动创建子目录kernel\_cache。116- 如果参数指定的路径存在且有效,则在指定的路径下自动创建子目录kernel\_cache;如果指定的路径不存在但路径有效,则先自动创建目录,然后在该路径下自动创建子目录kernel\_cache。
117- 用户请不要在**默认缓存目录**下存放其他自有内容,自有内容在软件包安装或升级时会同默认缓存目录一并被删除。117- 用户请不要在**默认缓存目录**下存放其他自有内容,自有内容在软件包安装或升级时会同默认缓存目录一并被删除。
118- 通过该参数指定的**非默认缓存目录**无法删除(软件包安装或升级时不会被删除)。118- 通过该参数指定的**非默认缓存目录**无法删除(软件包安装或升级时不会被删除)。
119-- 算子编译磁盘缓存路径,除OP\_COMPILER\_CACHE\_DIR参数设置的方式外,还可以配置环境变量ASCEND\_CACHE\_PATH,几种方式优先级为:配置参数“OP\_COMPILER\_CACHE\_DIR”\>环境变量ASCEND\_CACHE\_PATH\>默认存储路径。关于环境变量ASCEND\_CACHE\_PATH的详细说明请参见《[环境变量参考](https://hiascend.com/document/redirect/CannCommunityEnvRef)》。119+- 算子编译磁盘缓存路径,除OP\_COMPILER\_CACHE\_DIR参数设置的方式外,还可以配置环境变量ASCEND\_CACHE\_PATH,几种方式优先级为:配置参数“OP\_COMPILER\_CACHE\_DIR”\>环境变量ASCEND\_CACHE\_PATH\>默认存储路径。关于环境变量ASCEND\_CACHE\_PATH的详细说明请参见《[环境变量参考](https://gitcode.com/cann/docs/blob/master/docs/zh/env-vars/README.md)》。
120 120 
121**产品支持情况:**121**产品支持情况:**
122 122 
@@ -4,7 +4,7 @@
4 4 
5是否采集量化算子的dump数据。此参数实际对应的options参数为`ge.quant_dumpable`5是否采集量化算子的dump数据。此参数实际对应的options参数为`ge.quant_dumpable`
6 6 
7-参考《应用开发 \(C&C++\)》中的“模型推理 \> 精度/性能优化 \> 模型推理精度提升建议”章节进行精度定位时,如果存在AMCT量化后的模型,该模型转成om离线模型时,图编译过程中可能优化量化算子的输入输出,从而影响量化算子dump数据的导出,例如:两个被量化的卷积计算,中间输出被优化为int8的量化后输出。7+参考《[应用开发](https://gitcode.com/cann/docs/blob/master/docs/zh/app-dev/00_acl_cpp_dev.md)》中的“模型推理 \> 精度/性能优化 \> 模型推理精度提升建议”章节进行精度定位时,如果存在AMCT量化后的模型,该模型转成om离线模型时,图编译过程中可能优化量化算子的输入输出,从而影响量化算子dump数据的导出,例如:两个被量化的卷积计算,中间输出被优化为int8的量化后输出。
8 8 
9为此引入QUANT\_DUMPABLE参数,配置该参数后,量化算子的输入输出不做融合,并且会插入transdata算子,还原原始模型的格式,从而能采集到量化算子的dump数据。9为此引入QUANT\_DUMPABLE参数,配置该参数后,量化算子的输入输出不做融合,并且会插入transdata算子,还原原始模型的格式,从而能采集到量化算子的dump数据。
10 10 
@@ -91,7 +91,7 @@
91 Ascend 950PR/Ascend 950DT91 Ascend 950PR/Ascend 950DT
92<!-- end id3 -->92<!-- end id3 -->
93 93 
94-- 该参数默认为性能优先,后续推理时可能会导致精度溢出问题。如果推理时出现精度问题,可以参见《[应用开发 \(C&C++\)](https://hiascend.com/document/redirect/CannCommunityCppBaseinfer)》中的“模型推理 \> 精度/性能优化 \> 模型推理精度提升建议”进行定位。94+- 该参数默认为性能优先,后续推理时可能会导致精度溢出问题。如果推理时出现精度问题,可以参见《[应用开发](https://gitcode.com/cann/docs/blob/master/docs/zh/app-dev/00_acl_cpp_dev.md)》中的“模型推理 \> 精度/性能优化 \> 模型推理精度提升建议”进行定位。
95- 如果用户聚焦精度问题,可以修改为其他取值,比如**must\_keep\_origin\_dtype。**95- 如果用户聚焦精度问题,可以修改为其他取值,比如**must\_keep\_origin\_dtype。**
96 96 
97**配置示例:**97**配置示例:**
@@ -208,7 +208,7 @@
208 Ascend 950PR/Ascend 950DT208 Ascend 950PR/Ascend 950DT
209<!-- end id8 -->209<!-- end id8 -->
210 210 
211-- 该参数默认为性能优先,后续推理时可能会导致精度溢出问题。如果推理时出现精度问题,可以参见《应用开发 \(C&C++\)》中的“模型推理 \> 精度/性能优化 \> 模型推理精度提升建议”进行定位。211+- 该参数默认为性能优先,后续推理时可能会导致精度溢出问题。如果推理时出现精度问题,可以参见《[应用开发](https://gitcode.com/cann/docs/blob/master/docs/zh/app-dev/00_acl_cpp_dev.md)》中的“模型推理 \> 精度/性能优化 \> 模型推理精度提升建议”进行定位。
212- 如果用户聚焦精度问题,可以修改为其他取值,比如**origin。**212- 如果用户聚焦精度问题,可以修改为其他取值,比如**origin。**
213 213 
214**配置示例:**214**配置示例:**
@@ -24,7 +24,7 @@ CompliantNodeBuilder &InstanceOutputOriginFormat(const char_t *name, ge::Format
24| 参数名 | 输入/输出 | 说明 |24| 参数名 | 输入/输出 | 说明 |
25| --- | --- | --- |25| --- | --- | --- |
26| name | 输入 | 输出名称。 |26| name | 输入 | 输出名称。 |
27-| format | 输入 | 原始格式。详细内容请参见[Format](https://hiascend.com/document/redirect/CannCommunitybasicopapi)。 |27+| format | 输入 | 原始格式。详细内容请参见[Format](https://gitcode.com/cann/metadef/blob/master/docs/zh/api/README.md)。 |
28 28 
29## 返回值说明29## 返回值说明
30 30 
@@ -24,7 +24,7 @@ CompliantNodeBuilder &InstanceOutputStorageFormat(const char_t *name, ge::Format
24| 参数名 | 输入/输出 | 说明 |24| 参数名 | 输入/输出 | 说明 |
25| --- | --- | --- |25| --- | --- | --- |
26| name | 输入 | 输出名称。 |26| name | 输入 | 输出名称。 |
27-| format | 输入 | 存储格式。详细内容请参见[Format](https://hiascend.com/document/redirect/CannCommunitybasicopapi)。 |27+| format | 输入 | 存储格式。详细内容请参见[Format](https://gitcode.com/cann/metadef/blob/master/docs/zh/api/README.md)。 |
28 28 
29## 返回值说明29## 返回值说明
30 30 
@@ -23,7 +23,7 @@ ge::Status SetDataType(const ge::DataType data_type)
23 23 
24| 参数名 | 输入/输出 | 说明 |24| 参数名 | 输入/输出 | 说明 |
25| --- | --- | --- |25| --- | --- | --- |
26-| data_type | 输入 | 数据类型。详情请参见[DataType](https://hiascend.com/document/redirect/CannCommunitybasicopapi)。 |26+| data_type | 输入 | 数据类型。详情请参见[DataType](https://gitcode.com/cann/metadef/blob/master/docs/zh/api/README.md)。 |
27 27 
28## 返回值说明28## 返回值说明
29 29 
@@ -23,7 +23,7 @@ ge::Status SetFormat(const ge::Format format)
23 23 
24| 参数名 | 输入/输出 | 说明 |24| 参数名 | 输入/输出 | 说明 |
25| --- | --- | --- |25| --- | --- | --- |
26-| format | 输入 | 数据格式。详情请参见[Format](https://hiascend.com/document/redirect/CannCommunitybasicopapi)。 |26+| format | 输入 | 数据格式。详情请参见[Format](https://gitcode.com/cann/metadef/blob/master/docs/zh/api/README.md)。 |
27 27 
28## 返回值说明28## 返回值说明
29 29 
@@ -23,7 +23,7 @@ ge::Status SetOriginFormat(const ge::Format format)
23 23 
24| 参数名 | 输入/输出 | 说明 |24| 参数名 | 输入/输出 | 说明 |
25| --- | --- | --- |25| --- | --- | --- |
26-| format | 输入 | 数据格式。详情请参见[Format](https://hiascend.com/document/redirect/CannCommunitybasicopapi)。 |26+| format | 输入 | 数据格式。详情请参见[Format](https://gitcode.com/cann/metadef/blob/master/docs/zh/api/README.md)。 |
27 27 
28## 返回值说明28## 返回值说明
29 29 
@@ -23,7 +23,7 @@ EsTensorHolder &SetDataType(const ge::DataType data_type)
23 23 
24| 参数名 | 输入/输出 | 说明 |24| 参数名 | 输入/输出 | 说明 |
25| --- | --- | --- |25| --- | --- | --- |
26-| data_type | 输入 | 数据类型。详细数据类型请参见[DataType](https://hiascend.com/document/redirect/CannCommunitybasicopapi)。 |26+| data_type | 输入 | 数据类型。详细数据类型请参见[DataType](https://gitcode.com/cann/metadef/blob/master/docs/zh/api/README.md)。 |
27 27 
28## 返回值说明28## 返回值说明
29 29 
@@ -23,7 +23,7 @@ EsTensorHolder &SetFormat(const ge::Format format)
23 23 
24| 参数名 | 输入/输出 | 说明 |24| 参数名 | 输入/输出 | 说明 |
25| --- | --- | --- |25| --- | --- | --- |
26-| format | 输入 | 张量格式。详情请参见[Format](https://hiascend.com/document/redirect/CannCommunitybasicopapi)。 |26+| format | 输入 | 张量格式。详情请参见[Format](https://gitcode.com/cann/metadef/blob/master/docs/zh/api/README.md)。 |
27 27 
28## 返回值说明28## 返回值说明
29 29 
@@ -23,7 +23,8 @@ std::map<ge::AscendString, ge::AscendString> ge_options = {{"ge.exec.deviceId",
23> [!NOTE]说明23> [!NOTE]说明
24>24>
25>- 若没有指定节点名,则节点默认按照index顺序存储,存储示例如下:`xxx\_0,xxx\_1,xxx\_2,……`,其中下划线后为节点在网络脚本中的定义顺序索引,节点会按照此索引的字母顺序进行排布,所以当节点的个数大于10时,则排序为`xxx_0 -> xxx_10 -> xxx_2 -> xxx_3`,网络脚本中定义索引为10的节点排在了索引为2的节点前面,导致定义的shape range与实际输入的节点不匹配。为避免此问题,当节点的输入个数大于10时,建议在网络脚本中指定节点的名称,则节点会以指定的名称进行命名,实现shape range与节点名称的关联。25>- 若没有指定节点名,则节点默认按照index顺序存储,存储示例如下:`xxx\_0,xxx\_1,xxx\_2,……`,其中下划线后为节点在网络脚本中的定义顺序索引,节点会按照此索引的字母顺序进行排布,所以当节点的个数大于10时,则排序为`xxx_0 -> xxx_10 -> xxx_2 -> xxx_3`,网络脚本中定义索引为10的节点排在了索引为2的节点前面,导致定义的shape range与实际输入的节点不匹配。为避免此问题,当节点的输入个数大于10时,建议在网络脚本中指定节点的名称,则节点会以指定的名称进行命名,实现shape range与节点名称的关联。
26->- 如果该参数与ge.dynamicDims同时配置,示例如下:26+>
27+>- 如果该参数与ge.dynamicDims同时配置,示例如下,ge.dynamicDims参数功能(动态分档)优先级高于ge.exec.dataInputsShapeRange参数功能(动态shape范围)。
27>28>
28> ```c++29> ```c++
29> std::map<ge::AscendString, ge::AscendString> ge_options =30> std::map<ge::AscendString, ge::AscendString> ge_options =
@@ -31,9 +32,8 @@ std::map<ge::AscendString, ge::AscendString> ge_options = {{"ge.exec.deviceId",
31> {"ge.dynamicDims", "20,20,1,1;40,40,2,2;80,60,4,4"},32> {"ge.dynamicDims", "20,20,1,1;40,40,2,2;80,60,4,4"},
32> xxx33> xxx
33> {"ge.exec.dataInputsShapeRange", "[128, 3~5, 2~128, -1],[ 128 ,3~5, 2~128, -1]"}};34> {"ge.exec.dataInputsShapeRange", "[128, 3~5, 2~128, -1],[ 128 ,3~5, 2~128, -1]"}};
34-> ```35+> ```
35>36>
36-> ge.dynamicDims参数功能(动态分档)优先级高于ge.exec.dataInputsShapeRange参数功能(动态shape范围)。
37 37 
38**必选/可选**:可选38**必选/可选**:可选
39 39 
@@ -9,7 +9,7 @@
9**使用约束:**9**使用约束:**
10 10 
11- 如果要自行指定算子编译的过程文件存放路径,需ge.debugDir参数与ge.opDebugLevel参数配合使用,且当ge.opDebugLevel取值为0时,不能使用ge.debugDir参数。11- 如果要自行指定算子编译的过程文件存放路径,需ge.debugDir参数与ge.opDebugLevel参数配合使用,且当ge.opDebugLevel取值为0时,不能使用ge.debugDir参数。
12-- 算子编译生成的调试文件存储路径,除ge.debugDir参数设置的方式外,还可以配置环境变量ASCEND\_WORK\_PATH,几种方式优先级为:配置参数“ge.debugDir”\> 环境变量ASCEND\_WORK\_PATH \> 默认存储路径。关于环境变量ASCEND\_WORK\_PATH的详细说明请参见《[环境变量参考](https://hiascend.com/document/redirect/CannCommunityEnvRef)》。12+- 算子编译生成的调试文件存储路径,除ge.debugDir参数设置的方式外,还可以配置环境变量ASCEND\_WORK\_PATH,几种方式优先级为:配置参数“ge.debugDir”\> 环境变量ASCEND\_WORK\_PATH \> 默认存储路径。关于环境变量ASCEND\_WORK\_PATH的详细说明请参见《[环境变量参考](https://gitcode.com/cann/docs/blob/master/docs/zh/env-vars/README.md)》。
13 13 
14**必选/可选**:可选14**必选/可选**:可选
15 15 
@@ -33,7 +33,7 @@
33>- 若配置了环境变量NPU\_COLLECT\_PATH,不论配置项“ge.exec.enable\_exception\_dump”的取值如何,仅收集普通exception dump信息,包括异常算子的输入数据和输出数据,且dump数据存储在环境变量NPU\_COLLECT\_PATH的指定目录下。33>- 若配置了环境变量NPU\_COLLECT\_PATH,不论配置项“ge.exec.enable\_exception\_dump”的取值如何,仅收集普通exception dump信息,包括异常算子的输入数据和输出数据,且dump数据存储在环境变量NPU\_COLLECT\_PATH的指定目录下。
34>- L1 exception dump即普通exception dump,L0 exception dump即Lite exception dump(轻量化的exception dump),两者都会导出算子输入输出、workspace数据等信息,但相比L0 exception dump,L1 exception dump的信息更多,开启L1 exception dump时,会在Host应用类日志文件(即plog日志)中打印出来各tensor的dtype等信息,还会把算子相关的算子名、kernel都打印出来。34>- L1 exception dump即普通exception dump,L0 exception dump即Lite exception dump(轻量化的exception dump),两者都会导出算子输入输出、workspace数据等信息,但相比L0 exception dump,L1 exception dump的信息更多,开启L1 exception dump时,会在Host应用类日志文件(即plog日志)中打印出来各tensor的dtype等信息,还会把算子相关的算子名、kernel都打印出来。
35 35 
36-关于环境变量的详细说明可参见《[环境变量参考](https://hiascend.com/document/redirect/CannCommunityEnvRef)》。36+关于环境变量的详细说明可参见《[环境变量参考](https://gitcode.com/cann/docs/blob/master/docs/zh/env-vars/README.md)》。
37 37 
38配置示例:38配置示例:
39 39 
@@ -74,7 +74,7 @@ std::map<ge::AscendString, ge::AscendString> ge_options = {"ge.exec.enable_excep
74- 2:图编译完成时,生成算子融合信息结果文件。即如果图编译已完成,后续程序提前中断,也会生成算子融合信息结果文件。74- 2:图编译完成时,生成算子融合信息结果文件。即如果图编译已完成,后续程序提前中断,也会生成算子融合信息结果文件。
75 75 
76> [!NOTE]说明76> [!NOTE]说明
77->若未设置ASCEND\_WORK\_PATH环境变量,结果文件默认生成在执行脚本当前路径;若设置了ASCEND\_WORK\_PATH环境变量,则保存路径为:$ASCEND\_WORK\_PATH/FE/$\{进程号\}/fusion\_result.json。环境变量详细说明请参见《[环境变量参考](https://hiascend.com/document/redirect/CannCommunityEnvRef)》。77+>若未设置ASCEND\_WORK\_PATH环境变量,结果文件默认生成在执行脚本当前路径;若设置了ASCEND\_WORK\_PATH环境变量,则保存路径为:$ASCEND\_WORK\_PATH/FE/$\{进程号\}/fusion\_result.json。环境变量详细说明请参见《[环境变量参考](https://gitcode.com/cann/docs/blob/master/docs/zh/env-vars/README.md)》。
78 78 
79**配置示例:**79**配置示例:**
80 80 
@@ -206,7 +206,7 @@ ge.exec.outputReuseInputMemIndexes = "0,1|6,8"
206 206 
207- 若配置了ge.externalWeightDir,则权重文件会落盘到指定目录。207- 若配置了ge.externalWeightDir,则权重文件会落盘到指定目录。
208- 若环境中未配置环境变量ASCEND\_WORK\_PATH,则权重文件落盘至当前执行目录`tmp_weight_<pid>_<sessionid>`下。208- 若环境中未配置环境变量ASCEND\_WORK\_PATH,则权重文件落盘至当前执行目录`tmp_weight_<pid>_<sessionid>`下。
209-- 若环境中配置环境变量ASCEND\_WORK\_PATH,则权重文件会落盘至`${ASCEND_WORK_PATH}/tmp_weight_<pid>_<sessionid>`目录下,关于ASCEND\_WORK\_PATH的详细说明,可参见《[环境变量参考](https://hiascend.com/document/redirect/CannCommunityEnvRef)》。209+- 若环境中配置环境变量ASCEND\_WORK\_PATH,则权重文件会落盘至`${ASCEND_WORK_PATH}/tmp_weight_<pid>_<sessionid>`目录下,关于ASCEND\_WORK\_PATH的详细说明,可参见《[环境变量参考](https://gitcode.com/cann/docs/blob/master/docs/zh/env-vars/README.md)》。
210 210 
211落盘路径优先级:ge.externalWeightDir \> `${ASCEND_WORK_PATH}/tmp_weight_<pid>_<sessionid>` \>当前执行目录`tmp_weight_<pid>_<sessionid>`211落盘路径优先级:ge.externalWeightDir \> `${ASCEND_WORK_PATH}/tmp_weight_<pid>_<sessionid>` \>当前执行目录`tmp_weight_<pid>_<sessionid>`
212 212 
@@ -184,7 +184,7 @@
184 184 
185如果profiling trace中显示模型计算存在明显的H2D等待,说明被等待的拷贝组过长,此时可手动调整分组边界,减少本组的拷贝数量。185如果profiling trace中显示模型计算存在明显的H2D等待,说明被等待的拷贝组过长,此时可手动调整分组边界,减少本组的拷贝数量。
186 186 
187-> 注:GE INFO日志通过环境变量`ASCEND_GLOBAL_LOG_LEVEL`设置,取值为`1`表示INFO级别(0=DEBUG,1=INFO,2=WARN,3=ERROR),详细说明请参见《[环境变量参考](https://hiascend.com/document/redirect/CannCommunityEnvRef)》。187+> 注:GE INFO日志通过环境变量`ASCEND_GLOBAL_LOG_LEVEL`设置,取值为`1`表示INFO级别(0=DEBUG,1=INFO,2=WARN,3=ERROR),详细说明请参见《[环境变量参考](https://gitcode.com/cann/docs/blob/master/docs/zh/env-vars/README.md)》。
188 188 
189**配置示例:**189**配置示例:**
190 190 
@@ -316,7 +316,7 @@
316- 如果参数指定的路径存在且有效,则在指定的路径下自动创建子目录kernel\_cache;如果指定的路径不存在但路径有效,则先自动创建目录,然后在该路径下自动创建子目录kernel\_cache。316- 如果参数指定的路径存在且有效,则在指定的路径下自动创建子目录kernel\_cache;如果指定的路径不存在但路径有效,则先自动创建目录,然后在该路径下自动创建子目录kernel\_cache。
317- 用户请不要在**默认缓存目录**下存放其他自有内容,自有内容在软件包安装或升级时会同默认缓存目录一并被删除。317- 用户请不要在**默认缓存目录**下存放其他自有内容,自有内容在软件包安装或升级时会同默认缓存目录一并被删除。
318- 通过该参数指定的**非默认缓存目录**无法删除(软件包安装或升级时不会被删除)。318- 通过该参数指定的**非默认缓存目录**无法删除(软件包安装或升级时不会被删除)。
319-- 算子编译磁盘缓存路径,除ge.op\_compiler\_cache\_dir参数设置的方式外,还可以配置环境变量ASCEND\_CACHE\_PATH,几种方式优先级为:配置参数“ge.op\_compiler\_cache\_dir”\>环境变量ASCEND\_CACHE\_PATH\>默认存储路径。关于环境变量ASCEND\_CACHE\_PATH的详细说明请参见《[环境变量参考](https://hiascend.com/document/redirect/CannCommunityEnvRef)》。319+- 算子编译磁盘缓存路径,除ge.op\_compiler\_cache\_dir参数设置的方式外,还可以配置环境变量ASCEND\_CACHE\_PATH,几种方式优先级为:配置参数“ge.op\_compiler\_cache\_dir”\>环境变量ASCEND\_CACHE\_PATH\>默认存储路径。关于环境变量ASCEND\_CACHE\_PATH的详细说明请参见《[环境变量参考](https://gitcode.com/cann/docs/blob/master/docs/zh/env-vars/README.md)》。
320 320 
321**必选/可选**:可选321**必选/可选**:可选
322 322 
@@ -45,11 +45,11 @@ REG_OP(xxx)
45| 接口名称 | 接口说明 | 衍生接口(可用于IR模型构建) |45| 接口名称 | 接口说明 | 衍生接口(可用于IR模型构建) |
46| --- | --- | --- |46| --- | --- | --- |
47| REG_OP(xxx) | 定义一个算子原型,算子类型为xxx。 | [REG_OP](./prototype_definition_derived_interface.md#reg_op) |47| REG_OP(xxx) | 定义一个算子原型,算子类型为xxx。 | [REG_OP](./prototype_definition_derived_interface.md#reg_op) |
48-| .INPUT(x, type) | 定义输入名称(x)和类型(type)。<br>类型为TensorType类型,例如:<br> - TensorType{DT_FLOAT}<br> - TensorType({DT_FLOAT, DT_INT8})<br> - TensorType::ALL()<br><br><br>关于TensorType类,请参见[TensorType类说明](https://hiascend.com/document/redirect/CannCommunitybasicopapi)。 | [INPUT](./prototype_definition_derived_interface.md#input) |48+| .INPUT(x, type) | 定义输入名称(x)和类型(type)。<br>类型为TensorType类型,例如:<br> - TensorType{DT_FLOAT}<br> - TensorType({DT_FLOAT, DT_INT8})<br> - TensorType::ALL()<br><br><br>关于TensorType类,请参见[TensorType类说明](https://gitcode.com/cann/metadef/blob/master/docs/zh/api/README.md)。 | [INPUT](./prototype_definition_derived_interface.md#input) |
49-| .OPTIONAL_INPUT(x, type) | 定义可选输入的名称(x)和类型(type)。<br>类型为TensorType类型,例如:<br> - TensorType{DT_FLOAT}<br> - TensorType({DT_FLOAT, DT_INT8})<br> - TensorType::ALL()<br><br><br>关于TensorType类,请参见[TensorType类说明](https://hiascend.com/document/redirect/CannCommunitybasicopapi)。 | [OPTIONAL_INPUT](./prototype_definition_derived_interface.md#optional_input) |49+| .OPTIONAL_INPUT(x, type) | 定义可选输入的名称(x)和类型(type)。<br>类型为TensorType类型,例如:<br> - TensorType{DT_FLOAT}<br> - TensorType({DT_FLOAT, DT_INT8})<br> - TensorType::ALL()<br><br><br>关于TensorType类,请参见[TensorType类说明](https://gitcode.com/cann/metadef/blob/master/docs/zh/api/README.md)。 | [OPTIONAL_INPUT](./prototype_definition_derived_interface.md#optional_input) |
50-| .DYNAMIC_INPUT(x, type) | 定义动态输入的名称(x)和类型(type)。<br>类型为TensorType类型,例如:<br> - TensorType{DT_FLOAT}<br> - TensorType({DT_FLOAT, DT_INT8})<br> - TensorType::ALL()<br><br><br>关于TensorType类,请参见[TensorType类说明](https://hiascend.com/document/redirect/CannCommunitybasicopapi)。 | [DYNAMIC_INPUT](./prototype_definition_derived_interface.md#dynamic_input) |50+| .DYNAMIC_INPUT(x, type) | 定义动态输入的名称(x)和类型(type)。<br>类型为TensorType类型,例如:<br> - TensorType{DT_FLOAT}<br> - TensorType({DT_FLOAT, DT_INT8})<br> - TensorType::ALL()<br><br><br>关于TensorType类,请参见[TensorType类说明](https://gitcode.com/cann/metadef/blob/master/docs/zh/api/README.md)。 | [DYNAMIC_INPUT](./prototype_definition_derived_interface.md#dynamic_input) |
51-| .OUTPUT(x, type) | 定义输出的名称(x)和类型(type)。<br>类型为TensorType类型,例如:<br> - TensorType{DT_FLOAT}<br> - TensorType({DT_FLOAT, DT_INT8})<br> - TensorType::ALL()<br><br><br>关于TensorType类,请参见[TensorType类说明](https://hiascend.com/document/redirect/CannCommunitybasicopapi)。 | [OUTPUT](./prototype_definition_derived_interface.md#output) |51+| .OUTPUT(x, type) | 定义输出的名称(x)和类型(type)。<br>类型为TensorType类型,例如:<br> - TensorType{DT_FLOAT}<br> - TensorType({DT_FLOAT, DT_INT8})<br> - TensorType::ALL()<br><br><br>关于TensorType类,请参见[TensorType类说明](https://gitcode.com/cann/metadef/blob/master/docs/zh/api/README.md)。 | [OUTPUT](./prototype_definition_derived_interface.md#output) |
52-| .DYNAMIC_OUTPUT(x, type) | 定义动态输出的名称(x)和类型(type)。<br>类型为TensorType类型,例如:<br> - TensorType{DT_FLOAT}<br> - TensorType({DT_FLOAT, DT_INT8})<br> - TensorType::ALL()<br><br><br>关于TensorType类,请参见[TensorType类说明](https://hiascend.com/document/redirect/CannCommunitybasicopapi)。 | [DYNAMIC_OUTPUT](./prototype_definition_derived_interface.md#dynamic_output) |52+| .DYNAMIC_OUTPUT(x, type) | 定义动态输出的名称(x)和类型(type)。<br>类型为TensorType类型,例如:<br> - TensorType{DT_FLOAT}<br> - TensorType({DT_FLOAT, DT_INT8})<br> - TensorType::ALL()<br><br><br>关于TensorType类,请参见[TensorType类说明](https://gitcode.com/cann/metadef/blob/master/docs/zh/api/README.md)。 | [DYNAMIC_OUTPUT](./prototype_definition_derived_interface.md#dynamic_output) |
53| .REQUIRED_ATTR(x, type) | 定义必备属性的名称(x)和类型(type)。<br>type的可选值包括:<br> - Int,属性类型为int64_t<br> - Float,属性类型为float<br> - String,属性类型为string<br> - Bool,属性类型为bool<br> - Tensor,属性类型为Tensor<br> - Type,属性为Type枚举定义<br> - NamedAttrs,属性类型为NamedAttrs<br> - AscendString,属性类型为AscendString<br> - ListInt,属性类型为vector<int64_t>,int64_t列表<br> - ListFloat,属性类型为vector\<float>,float列表<br> - ListString,属性类型为vector\<string>,string列表<br> - ListBool,属性类型为vector\<bool>,bool列表<br> - ListTensor,属性类型为vector\<Tensor>,Tensor列表<br> - Bytes,属性类型为Buffer<br> - ListType,属性类型为vector\<Type>,Type列表<br> - ListListInt,属性类型为vector<vector<int64_t>>,2维列表<br> - ListAscendString,属性类型为vector\<AscendString>,AscendString列表<br> - ListNamedAttrs,属性类型为vector\<NamedAttrs>,NamedAttrs列表 | [REQUIRED_ATTR](./prototype_definition_derived_interface.md#required_attr) |53| .REQUIRED_ATTR(x, type) | 定义必备属性的名称(x)和类型(type)。<br>type的可选值包括:<br> - Int,属性类型为int64_t<br> - Float,属性类型为float<br> - String,属性类型为string<br> - Bool,属性类型为bool<br> - Tensor,属性类型为Tensor<br> - Type,属性为Type枚举定义<br> - NamedAttrs,属性类型为NamedAttrs<br> - AscendString,属性类型为AscendString<br> - ListInt,属性类型为vector<int64_t>,int64_t列表<br> - ListFloat,属性类型为vector\<float>,float列表<br> - ListString,属性类型为vector\<string>,string列表<br> - ListBool,属性类型为vector\<bool>,bool列表<br> - ListTensor,属性类型为vector\<Tensor>,Tensor列表<br> - Bytes,属性类型为Buffer<br> - ListType,属性类型为vector\<Type>,Type列表<br> - ListListInt,属性类型为vector<vector<int64_t>>,2维列表<br> - ListAscendString,属性类型为vector\<AscendString>,AscendString列表<br> - ListNamedAttrs,属性类型为vector\<NamedAttrs>,NamedAttrs列表 | [REQUIRED_ATTR](./prototype_definition_derived_interface.md#required_attr) |
54| .ATTR(x, type, default_value) | 定义可选属性的名称、类型以及默认值。<br>当用户不设置算子对象的属性时,会使用此处设置的默认值。<br>type的可选值包括:<br> - Int,属性类型为int64_t<br> - Float,属性类型为float<br> - String,属性类型为string<br> - Bool,属性类型为bool<br> - Tensor,属性类型为Tensor<br> - Type,属性为Type枚举定义<br> - NamedAttrs,属性类型为NamedAttrs<br> - AscendString,属性类型为AscendString<br> - ListInt,属性类型为vector<int64_t>,int64_t列表<br> - ListFloat,属性类型为vector\<float>,float列表<br> - ListString,属性类型为vector\<string>,string列表<br> - ListBool,属性类型为vector\<bool>,bool列表<br> - ListTensor,属性类型为vector\<Tensor>,Tensor列表<br> - Bytes,属性类型为Buffer<br> - ListType,属性类型为vector\<Type>,Type列表<br> - ListListInt,属性类型为vector<vector<int64_t>>,2维列表<br> - ListAscendString,属性类型为vector\<AscendString>,AscendString列表<br> - ListNamedAttrs,属性类型为vector\<NamedAttrs>,NamedAttrs列表<br><br><br>定义示例:<br><br> - .ATTR(mode, Int, 1)<br> - .ATTR(pad, ListInt, {0, 0, 0, 0}) | [ATTR](./prototype_definition_derived_interface.md#attr) |54| .ATTR(x, type, default_value) | 定义可选属性的名称、类型以及默认值。<br>当用户不设置算子对象的属性时,会使用此处设置的默认值。<br>type的可选值包括:<br> - Int,属性类型为int64_t<br> - Float,属性类型为float<br> - String,属性类型为string<br> - Bool,属性类型为bool<br> - Tensor,属性类型为Tensor<br> - Type,属性为Type枚举定义<br> - NamedAttrs,属性类型为NamedAttrs<br> - AscendString,属性类型为AscendString<br> - ListInt,属性类型为vector<int64_t>,int64_t列表<br> - ListFloat,属性类型为vector\<float>,float列表<br> - ListString,属性类型为vector\<string>,string列表<br> - ListBool,属性类型为vector\<bool>,bool列表<br> - ListTensor,属性类型为vector\<Tensor>,Tensor列表<br> - Bytes,属性类型为Buffer<br> - ListType,属性类型为vector\<Type>,Type列表<br> - ListListInt,属性类型为vector<vector<int64_t>>,2维列表<br> - ListAscendString,属性类型为vector\<AscendString>,AscendString列表<br> - ListNamedAttrs,属性类型为vector\<NamedAttrs>,NamedAttrs列表<br><br><br>定义示例:<br><br> - .ATTR(mode, Int, 1)<br> - .ATTR(pad, ListInt, {0, 0, 0, 0}) | [ATTR](./prototype_definition_derived_interface.md#attr) |
55| .GRAPH(z1) | 注册算子中包含的子图信息,输入z1为子图名称。<br>例如If算子注册的子图为:<br>.GRAPH(then_branch) .GRAPH(else_branch)<br>对于同一个算子,注册的算子子图名称需要保持唯一。 | [GRAPH](./prototype_definition_derived_interface.md#graph) |55| .GRAPH(z1) | 注册算子中包含的子图信息,输入z1为子图名称。<br>例如If算子注册的子图为:<br>.GRAPH(then_branch) .GRAPH(else_branch)<br>对于同一个算子,注册的算子子图名称需要保持唯一。 | [GRAPH](./prototype_definition_derived_interface.md#graph) |
@@ -37,4 +37,4 @@ build_model(graph: Graph, build_options: Optional[dict] = None) -> ModelBuffer
37 - 如果希望将内存缓冲区中的模型保存为离线模型文件xx.om,则需要调用save\_model接口,序列化保存离线模型到文件中。后续进行推理业务,需要使用**从文件中**加载模型的接口,例如aclmdlLoadFromFile,然后使用aclmdlExecute接口执行推理。37 - 如果希望将内存缓冲区中的模型保存为离线模型文件xx.om,则需要调用save\_model接口,序列化保存离线模型到文件中。后续进行推理业务,需要使用**从文件中**加载模型的接口,例如aclmdlLoadFromFile,然后使用aclmdlExecute接口执行推理。
38 - 如果离线模型保存在内存缓冲区: 后续进行推理业务时,需要使用**从内存中**加载模型的接口,例如aclmdlLoadFromMem,然后使用aclmdlExecute接口执行推理。38 - 如果离线模型保存在内存缓冲区: 后续进行推理业务时,需要使用**从内存中**加载模型的接口,例如aclmdlLoadFromMem,然后使用aclmdlExecute接口执行推理。
39 39 
40-接口详细介绍请参见“[模型管理](https://hiascend.com/document/redirect/CannCommunityCppBaseinfer)”章节。40+接口详细介绍请参见“[模型管理](https://gitcode.com/cann/docs/blob/master/docs/zh/app-dev/00_acl_cpp_dev.md)”章节。
@@ -28,4 +28,4 @@ register_external_allocator(stream: int, allocator: Allocator) -> None
28- 如果注册失败,抛出RuntimeError。28- 如果注册失败,抛出RuntimeError。
29- 对于同一条流,多次调用本接口,以最后一次注册为准。29- 对于同一条流,多次调用本接口,以最后一次注册为准。
30- 对于不同流,如果用户使用同一个Allocator,不可以多条流并发执行,在执行下一条Stream前,需要对上一Stream做流同步。30- 对于不同流,如果用户使用同一个Allocator,不可以多条流并发执行,在执行下一条Stream前,需要对上一Stream做流同步。
31-- 将Allocator中的内存释放给操作系统前,需要先调用“[acl.rt.synchronize\_stream](https://hiascend.com/document/redirect/CannCommunitysynchronize)”接口执行流同步,确保Stream中的任务已执行完成。31+- 将Allocator中的内存释放给操作系统前,需要先调用“[acl.rt.synchronize\_stream](https://gitcode.com/cann/runtime/blob/master/docs/zh/api_ref/README.md)”接口执行流同步,确保Stream中的任务已执行完成。
@@ -28,4 +28,4 @@ run_graph_with_stream_async(graph_id: int, stream: int, inputs: List[Tensor]) ->
28- 如果stream不是整数,抛出TypeError。28- 如果stream不是整数,抛出TypeError。
29- 如果inputs中有元素不是Tensor类型,抛出TypeError。29- 如果inputs中有元素不是Tensor类型,抛出TypeError。
30- 如果运行失败,抛出RuntimeError。30- 如果运行失败,抛出RuntimeError。
31-- 调用该接口前,需要通过acl提供的**acl.rt.create\_stream\(\)**接口创建Stream,且只支持Stream为默认Context的场景;得到输出运行结果前,需要通过**acl.rt.synchronize\_stream**接口保证Stream上的任务已经执行完。接口详细说明请参见“[Stream管理](https://hiascend.com/document/redirect/CannCommunitycreatestream)”。31+- 调用该接口前,需要通过acl提供的**acl.rt.create\_stream\(\)**接口创建Stream,且只支持Stream为默认Context的场景;得到输出运行结果前,需要通过**acl.rt.synchronize\_stream**接口保证Stream上的任务已经执行完。接口详细说明请参见“[Stream管理](https://gitcode.com/cann/runtime/blob/master/docs/zh/api_ref/README.md)”。
@@ -45,4 +45,4 @@ atc --check_report=$HOME/module/out/check_result.json ...
45 45 
46预检结果文件存储路径,除[--check\_report](--check_report.md)参数设置的方式外,还可以配置环境变量ASCEND\_WORK\_PATH,几种方式优先级为:配置参数“--check\_report”\>环境变量ASCEND\_WORK\_PATH\>默认存储路径(执行atc命令当前路径)。46预检结果文件存储路径,除[--check\_report](--check_report.md)参数设置的方式外,还可以配置环境变量ASCEND\_WORK\_PATH,几种方式优先级为:配置参数“--check\_report”\>环境变量ASCEND\_WORK\_PATH\>默认存储路径(执行atc命令当前路径)。
47 47 
48-关于环境变量ASCEND\_WORK\_PATH的详细说明请参见《[环境变量参考](https://hiascend.com/document/redirect/CannCommunityEnvRef)》。48+关于环境变量ASCEND\_WORK\_PATH的详细说明请参见《[环境变量参考](https://gitcode.com/cann/docs/blob/master/docs/zh/env-vars/README.md)》。
@@ -167,13 +167,13 @@ atc --compression_optimize_conf=$HOME/module/compression_optimize.cfg ...
167 167 
168## 依赖约束168## 依赖约束
169 169 
170-- 使用该参数的压缩特性时,需要单独安装AMCT(acl)软件包,该包的获取以及安装方法请参见《[AMCT模型压缩工具](https://hiascend.com/document/redirect/CannCommunityToolAmct)》中的“准备环境 \> 获取软件包、上传软件包、安装工具”章节。170+- 使用该参数的压缩特性时,需要单独安装AMCT(acl)软件包,该包的获取以及安装方法请参见《[AMCT模型压缩工具](https://www.hiascend.com/document/detail/zh/CANNCommunityEdition/latest/devaids/amct/atlasamct_16_0001.html)》中的“准备环境 \> 获取软件包、上传软件包、安装工具”章节。
171- 使用该参数中的**enable\_first\_layer\_quantization**特性时,请确保使用的模型是由AMCT进行量化操作后输出的部署模型。171- 使用该参数中的**enable\_first\_layer\_quantization**特性时,请确保使用的模型是由AMCT进行量化操作后输出的部署模型。
172<!-- npu="A3,910b,910,310p,310b" id13 -->172<!-- npu="A3,910b,910,310p,310b" id13 -->
173-- 使用配置文件中的**calibration**训练后量化功能时,只支持**带NPU设备**的安装场景,详细介绍请参见《[软件安装](https://hiascend.com/document/redirect/CannCommunityInstSoftware)》手册搭建对应产品环境。173+- 使用配置文件中的**calibration**训练后量化功能时,只支持**带NPU设备**的安装场景,详细介绍请参见《[软件安装](https://www.hiascend.com/document/detail/zh/CANNCommunityEdition/latest/softwareinst/instg/instg_0000.html?OS=openEuler&InstallType=netyum)》手册搭建对应产品环境。
174<!-- end id13 -->174<!-- end id13 -->
175<!-- npu="310b" id12 -->175<!-- npu="310b" id12 -->
176-- Atlas 200I/500 A2 推理产品Ascend RC场景,还需要在运行环境上安装NCS软件,并配置密钥证书,请参见《[AOE调优工具](https://hiascend.com/document/redirect/CannCommunityToolAoe)》>AOE工具(Ascend RC)>环境准备。176+- Atlas 200I/500 A2 推理产品Ascend RC场景,还需要在运行环境上安装NCS软件,并配置密钥证书,请参见《[AOE调优工具](https://www.hiascend.com/document/detail/zh/CANNCommunityEdition/latest/devaids/aoe/auxiliarydevtool_aoe_0001.html)》>AOE工具(Ascend RC)>环境准备。
177<!-- end id12 -->177<!-- end id12 -->
178 178 
179<!-- @ref: ge/res/docs/zh/user_guides/atc_tools/CLI_options/--compression_optimize_conf_res.md#id4 -->179<!-- @ref: ge/res/docs/zh/user_guides/atc_tools/CLI_options/--compression_optimize_conf_res.md#id4 -->
@@ -44,4 +44,4 @@ atc --debug_dir=$HOME/module/out/debug_info --op_debug_level=1 ...
44 44 
45算子编译生成的调试文件存储路径,除[--debug\_dir](--debug_dir.md)参数设置的方式外,还可以配置环境变量ASCEND\_WORK\_PATH,几种方式优先级为:配置参数“[--debug\_dir](--debug_dir.md)”\>环境变量ASCEND\_WORK\_PATH \>默认存储路径。45算子编译生成的调试文件存储路径,除[--debug\_dir](--debug_dir.md)参数设置的方式外,还可以配置环境变量ASCEND\_WORK\_PATH,几种方式优先级为:配置参数“[--debug\_dir](--debug_dir.md)”\>环境变量ASCEND\_WORK\_PATH \>默认存储路径。
46 46 
47-关于环境变量ASCEND\_WORK\_PATH的详细说明请参见《[环境变量参考](https://hiascend.com/document/redirect/CannCommunityEnvRef)》。47+关于环境变量ASCEND\_WORK\_PATH的详细说明请参见《[环境变量参考](https://gitcode.com/cann/docs/blob/master/docs/zh/env-vars/README.md)》。
@@ -31,7 +31,7 @@ atc --disable_reuse_memory=0 ...
31 31 
32## 依赖约束32## 依赖约束
33 33 
34-在内存复用场景下(默认开启内存复用),支持基于指定算子(节点名称/算子类型)单独分配内存。通过OP\_NO\_REUSE\_MEM环境变量指定要单独分配的一个或多个节点,支持混合配置。配置多个节点时,中间通过英文逗号\(“,”\)隔开。详细说明请参见《[环境变量参考](https://hiascend.com/document/redirect/CannCommunityEnvRef)》。34+在内存复用场景下(默认开启内存复用),支持基于指定算子(节点名称/算子类型)单独分配内存。通过OP\_NO\_REUSE\_MEM环境变量指定要单独分配的一个或多个节点,支持混合配置。配置多个节点时,中间通过英文逗号\(“,”\)隔开。详细说明请参见《[环境变量参考](https://gitcode.com/cann/docs/blob/master/docs/zh/env-vars/README.md)》。
35 35 
36- 基于节点名称配置36- 基于节点名称配置
37 37 
@@ -36,7 +36,7 @@
36- 1:(默认值)程序运行正常退出时,生成算子融合信息结果文件。36- 1:(默认值)程序运行正常退出时,生成算子融合信息结果文件。
37- 2:图编译完成时,生成算子融合信息结果文件。即如果图编译已完成,后续程序提前中断,也会生成算子融合信息结果文件。37- 2:图编译完成时,生成算子融合信息结果文件。即如果图编译已完成,后续程序提前中断,也会生成算子融合信息结果文件。
38 38 
39-若未设置ASCEND\_WORK\_PATH环境变量,结果文件默认生成在执行atc命令的当前路径;若设置了ASCEND\_WORK\_PATH环境变量,则保存路径为:`$ASCEND_WORK_PATH/FE/${进程号}/fusion_result.json`。环境变量详细说明请参见《[环境变量参考](https://hiascend.com/document/redirect/CannCommunityEnvRef)》。39+若未设置ASCEND\_WORK\_PATH环境变量,结果文件默认生成在执行atc命令的当前路径;若设置了ASCEND\_WORK\_PATH环境变量,则保存路径为:`$ASCEND_WORK_PATH/FE/${进程号}/fusion_result.json`。环境变量详细说明请参见《[环境变量参考](https://gitcode.com/cann/docs/blob/master/docs/zh/env-vars/README.md)》。
40 40 
41## 示例41## 示例
42 42 
@@ -54,7 +54,7 @@
54 54 
55如果profiling trace中显示模型计算存在明显的H2D等待,说明被等待的拷贝组过长,此时可手动调整分组边界,减少本组的拷贝数量。55如果profiling trace中显示模型计算存在明显的H2D等待,说明被等待的拷贝组过长,此时可手动调整分组边界,减少本组的拷贝数量。
56 56 
57-> 注:GE INFO日志通过环境变量`ASCEND_GLOBAL_LOG_LEVEL`设置,取值为`1`表示INFO级别(0=DEBUG,1=INFO,2=WARN,3=ERROR),详细说明请参见《[环境变量参考](https://hiascend.com/document/redirect/CannCommunityEnvRef)》。57+> 注:GE INFO日志通过环境变量`ASCEND_GLOBAL_LOG_LEVEL`设置,取值为`1`表示INFO级别(0=DEBUG,1=INFO,2=WARN,3=ERROR),详细说明请参见《[环境变量参考](https://gitcode.com/cann/docs/blob/master/docs/zh/env-vars/README.md)》。
58 58 
59## 示例59## 示例
60 60 
@@ -15,7 +15,7 @@
15- 该参数需要与[--precision\_mode](--precision_mode.md)或[--precision\_mode\_v2](--precision_mode_v2.md)参数配合使用,但当[--precision\_mode](--precision_mode.md)取值为must\_keep\_origin\_dtype或[--precision\_mode\_v2](--precision_mode_v2.md)取值为origin时,--keep\_dtype参数不生效。15- 该参数需要与[--precision\_mode](--precision_mode.md)或[--precision\_mode\_v2](--precision_mode_v2.md)参数配合使用,但当[--precision\_mode](--precision_mode.md)取值为must\_keep\_origin\_dtype或[--precision\_mode\_v2](--precision_mode_v2.md)取值为origin时,--keep\_dtype参数不生效。
16- [--customize\_dtypes](--customize_dtypes.md)参数与[--keep\_dtype](--keep_dtype.md)参数都用于设置算子的计算精度,若涉及需提升模型推理精度的场景,建议先使用[--keep\_dtype](--keep_dtype.md)参数保持原图精度,若精度依然得不到提升,可以尝试使用[--customize\_dtypes](--customize_dtypes.md)参数自定义某个或某些算子的计算精度。16- [--customize\_dtypes](--customize_dtypes.md)参数与[--keep\_dtype](--keep_dtype.md)参数都用于设置算子的计算精度,若涉及需提升模型推理精度的场景,建议先使用[--keep\_dtype](--keep_dtype.md)参数保持原图精度,若精度依然得不到提升,可以尝试使用[--customize\_dtypes](--customize_dtypes.md)参数自定义某个或某些算子的计算精度。
17 17 
18- 但需注意,使用[--customize\_dtypes](--customize_dtypes.md)参数且通过配置算子名称的方式,可能会由于内部模型优化过程中的融合、拆分等操作导致算子名称发生变化,进而导致配置不生效,未达到提升精度的目的,可进一步获取日志定位问题,关于日志的详细说明请参见《[日志参考](https://hiascend.com/document/redirect/CannCommunitylogref)》。18+ 但需注意,使用[--customize\_dtypes](--customize_dtypes.md)参数且通过配置算子名称的方式,可能会由于内部模型优化过程中的融合、拆分等操作导致算子名称发生变化,进而导致配置不生效,未达到提升精度的目的,可进一步获取日志定位问题,关于日志的详细说明请参见《[日志参考](https://gitcode.com/cann/runtime/blob/master/docs/zh/log_ref/README.md)》。
19 19 
20- 若同时使用了[--customize\_dtypes](--customize_dtypes.md)参数与[--keep\_dtype](--keep_dtype.md)参数,则以[--customize\_dtypes](--customize_dtypes.md)参数设置的精度为准。20- 若同时使用了[--customize\_dtypes](--customize_dtypes.md)参数与[--keep\_dtype](--keep_dtype.md)参数,则以[--customize\_dtypes](--customize_dtypes.md)参数设置的精度为准。
21 21 
@@ -30,7 +30,7 @@
30 30 
31加载子图调优后自定义知识库的路径。31加载子图调优后自定义知识库的路径。
32 32 
33-子图调优详情请参见《[AOE调优工具](https://hiascend.com/document/redirect/CannCommunityToolAoe)》。33+子图调优详情请参见《[AOE调优工具](https://www.hiascend.com/document/detail/zh/CANNCommunityEdition/latest/devaids/aoe/auxiliarydevtool_aoe_0001.html)》。
34 34 
35## 关联参数35## 关联参数
36 36 
@@ -30,7 +30,7 @@
30 30 
31加载算子调优后自定义知识库的路径。31加载算子调优后自定义知识库的路径。
32 32 
33-算子调优详情请参见《[AOE调优工具](https://hiascend.com/document/redirect/CannCommunityToolAoe)》。33+算子调优详情请参见《[AOE调优工具](https://www.hiascend.com/document/detail/zh/CANNCommunityEdition/latest/devaids/aoe/auxiliarydevtool_aoe_0001.html)》。
34 34 
35## 参数取值35## 参数取值
36 36 
@@ -44,4 +44,4 @@ atc --op_compiler_cache_dir=$HOME/atc_data --op_compiler_cache_mode=enable ...
44 44 
45配置参数“[--op\_compiler\_cache\_dir](--op_compiler_cache_dir.md)”\>环境变量ASCEND\_CACHE\_PATH\>默认存储路径。45配置参数“[--op\_compiler\_cache\_dir](--op_compiler_cache_dir.md)”\>环境变量ASCEND\_CACHE\_PATH\>默认存储路径。
46 46 
47-关于环境变量ASCEND\_CACHE\_PATH的详细说明请参见《[环境变量参考](https://hiascend.com/document/redirect/CannCommunityEnvRef)》。47+关于环境变量ASCEND\_CACHE\_PATH的详细说明请参见《[环境变量参考](https://gitcode.com/cann/docs/blob/master/docs/zh/env-vars/README.md)》。
@@ -77,6 +77,6 @@ atc --op_debug_level=1 ...
77 77 
78- 算子编译生成的调试文件存储路径,除[--debug\_dir](--debug_dir.md)参数设置的方式外,还可以配置环境变量ASCEND\_WORK\_PATH,几种方式优先级为:配置参数“[--debug\_dir](--debug_dir.md)”\>环境变量ASCEND\_WORK\_PATH \>默认存储路径。78- 算子编译生成的调试文件存储路径,除[--debug\_dir](--debug_dir.md)参数设置的方式外,还可以配置环境变量ASCEND\_WORK\_PATH,几种方式优先级为:配置参数“[--debug\_dir](--debug_dir.md)”\>环境变量ASCEND\_WORK\_PATH \>默认存储路径。
79 79 
80- 关于ASCEND\_WORK\_PATH的详细说明请参见《[环境变量参考](https://hiascend.com/document/redirect/CannCommunityEnvRef)》。80+ 关于ASCEND\_WORK\_PATH的详细说明请参见《[环境变量参考](https://gitcode.com/cann/docs/blob/master/docs/zh/env-vars/README.md)》。
81 81 
82- 该参数优先级高于算子编译接口(TBE DSL的build接口或者TBE TIK的BuildCCE接口)中的**tbe\_debug\_level**的值。82- 该参数优先级高于算子编译接口(TBE DSL的build接口或者TBE TIK的BuildCCE接口)中的**tbe\_debug\_level**的值。
@@ -109,7 +109,7 @@
109 <!-- end id4 -->109 <!-- end id4 -->
110<!-- end id6 -->110<!-- end id6 -->
111 111 
112-- 该参数默认为性能优先,后续推理时可能会导致精度溢出问题。如果推理时出现精度问题,可以参见《[应用开发 \(C&C++\)](https://hiascend.com/document/redirect/CannCommunityCppBaseinfer)》中的“模型推理 \> 精度/性能优化 \> 模型推理精度提升建议”进行定位。112+- 该参数默认为性能优先,后续推理时可能会导致精度溢出问题。如果推理时出现精度问题,可以参见《[应用开发](https://gitcode.com/cann/docs/blob/master/docs/zh/app-dev/00_acl_cpp_dev.md)》中的“模型推理 \> 精度/性能优化 \> 模型推理精度提升建议”进行定位。
113- 如果用户聚焦精度问题,可以修改为其他取值,比如**must\_keep\_origin\_dtype。**113- 如果用户聚焦精度问题,可以修改为其他取值,比如**must\_keep\_origin\_dtype。**
114 114 
115## 推荐配置及收益115## 推荐配置及收益
@@ -130,4 +130,4 @@ atc --precision_mode=force_fp16 ...
130 130 
131混合精度场景下,如果版本升级后出现推理性能下降,建议使用AOE工具重新进行调优,调优完成后,通过[--op\_bank\_path](--op_bank_path.md)参数加载算子调优后自定义知识库的路径,然后重新进行模型转换。131混合精度场景下,如果版本升级后出现推理性能下降,建议使用AOE工具重新进行调优,调优完成后,通过[--op\_bank\_path](--op_bank_path.md)参数加载算子调优后自定义知识库的路径,然后重新进行模型转换。
132 132 
133-算子调优详情请参见《[AOE调优工具](https://hiascend.com/document/redirect/CannCommunityToolAoe)》。133+算子调优详情请参见《[AOE调优工具](https://www.hiascend.com/document/detail/zh/CANNCommunityEdition/latest/devaids/aoe/auxiliarydevtool_aoe_0001.html)》。
@@ -112,7 +112,7 @@
112 Ascend 950PR/Ascend 950DT112 Ascend 950PR/Ascend 950DT
113 113 
114<!-- end id5 -->114<!-- end id5 -->
115-- 该参数默认为性能优先,后续推理时可能会导致精度溢出问题。如果推理时出现精度问题,可以参见《[应用开发 \(C&C++\)](https://hiascend.com/document/redirect/CannCommunityCppBaseinfer)》中的“模型推理 \> 精度/性能优化 \> 模型推理精度提升建议”进行定位。115+- 该参数默认为性能优先,后续推理时可能会导致精度溢出问题。如果推理时出现精度问题,可以参见《[应用开发](https://gitcode.com/cann/docs/blob/master/docs/zh/app-dev/00_acl_cpp_dev.md)》中的“模型推理 \> 精度/性能优化 \> 模型推理精度提升建议”进行定位。
116- 如果用户聚焦精度问题,可以修改为其他取值,比如**origin。**116- 如果用户聚焦精度问题,可以修改为其他取值,比如**origin。**
117 117 
118## 推荐配置及收益118## 推荐配置及收益
@@ -131,4 +131,4 @@ atc --precision_mode_v2=fp16 ...
131 131 
132混合精度场景下,如果版本升级后出现推理性能下降,建议使用AOE工具重新进行调优,调优完成后,通过[--op\_bank\_path](--op_bank_path.md)参数加载算子调优后自定义知识库的路径,然后重新进行模型转换。132混合精度场景下,如果版本升级后出现推理性能下降,建议使用AOE工具重新进行调优,调优完成后,通过[--op\_bank\_path](--op_bank_path.md)参数加载算子调优后自定义知识库的路径,然后重新进行模型转换。
133 133 
134-算子调优详情请参见《[AOE调优工具](https://hiascend.com/document/redirect/CannCommunityToolAoe)》。134+算子调优详情请参见《[AOE调优工具](https://www.hiascend.com/document/detail/zh/CANNCommunityEdition/latest/devaids/aoe/auxiliarydevtool_aoe_0001.html)》。
@@ -8,7 +8,7 @@
8 8 
9是否采集量化算子的dump数据。9是否采集量化算子的dump数据。
10 10 
11-参考《[应用开发 \(C&C++\)](https://hiascend.com/document/redirect/CannCommunityCppBaseinfer)》中的“模型推理 \> 精度/性能优化 \> 模型推理精度提升建议”章节进行精度定位时,如果存在AMCT量化后的模型,该模型转成om离线模型时,图编译过程中可能优化量化算子的输入输出,从而影响量化算子dump数据的导出,例如:两个被量化的卷积计算,中间输出被优化为int8的量化后输出。11+参考《[应用开发](https://gitcode.com/cann/docs/blob/master/docs/zh/app-dev/00_acl_cpp_dev.md)》中的“模型推理 \> 精度/性能优化 \> 模型推理精度提升建议”章节进行精度定位时,如果存在AMCT量化后的模型,该模型转成om离线模型时,图编译过程中可能优化量化算子的输入输出,从而影响量化算子dump数据的导出,例如:两个被量化的卷积计算,中间输出被优化为int8的量化后输出。
12 12 
13为此引入--quant\_dumpable参数,配置该参数后,量化算子的输入输出不做融合,并且会插入transdata算子,还原原始模型的格式,从而能采集到量化算子的dump数据。13为此引入--quant\_dumpable参数,配置该参数后,量化算子的输入输出不做融合,并且会插入transdata算子,还原原始模型的格式,从而能采集到量化算子的dump数据。
14 14 
@@ -61,4 +61,4 @@ atc --status_check=1 ...
61 61 
62## 使用约束62## 使用约束
63 63 
64-使用[--status\_check](--status_check.md)参数只是在模型编译后生成的算子\*.cce文件中加入了溢出检测逻辑,如果想查看具体哪些算子有溢出,则需要配合模型推理过程中提供的**aclInit**接口,在该接口入参的JSON配置文件中打开“dump\_debug”开关,接口详细说明请参见《[Runtime运行时 API](https://hiascend.com/document/redirect/CannCommunityruntimeapiaclinit)》中的“初始化和去初始化 \> aclInit”章节。64+使用[--status\_check](--status_check.md)参数只是在模型编译后生成的算子\*.cce文件中加入了溢出检测逻辑,如果想查看具体哪些算子有溢出,则需要配合模型推理过程中提供的**aclInit**接口,在该接口入参的JSON配置文件中打开“dump\_debug”开关,接口详细说明请参见《[Runtime运行时 API](https://gitcode.com/cann/runtime/blob/master/docs/zh/api_ref/README.md)》中的“初始化和去初始化 \> aclInit”章节。
@@ -31,4 +31,4 @@ atc --topo_sorting_mode=3 ...
31 31 
32## 使用约束32## 使用约束
33 33 
34-模型转换过程中如果加载了自定义知识库路径,上述图遍历模式的改变可能会影响调优结果,建议重新进行调优,详情请参见《[AOE调优工具](https://hiascend.com/document/redirect/CannCommunityToolAoe)》。34+模型转换过程中如果加载了自定义知识库路径,上述图遍历模式的改变可能会影响调优结果,建议重新进行调优,详情请参见《[AOE调优工具](https://www.hiascend.com/document/detail/zh/CANNCommunityEdition/latest/devaids/aoe/auxiliarydevtool_aoe_0001.html)》。
@@ -36,7 +36,7 @@
36 36 
37关于参数的详细解释请参见[参数说明](../CLI_options/README.md)。若提示如下信息,则说明转换成功。37关于参数的详细解释请参见[参数说明](../CLI_options/README.md)。若提示如下信息,则说明转换成功。
38<!-- npu="950,A3,910b,910,310p,310b" id2 -->38<!-- npu="950,A3,910b,910,310p,310b" id2 -->
39-若模型转换失败,请参见《[故障处理](https://hiascend.com/document/redirect/CannCommunitytrouble)》\>“错误码参考”章节进行辅助定位。39+若模型转换失败,请参见《[故障处理](https://gitcode.com/cann/docs/blob/master/docs/zh/troubleshooting/00_troubleshooting.md)》\>“错误码参考”章节进行辅助定位。
40 40 
41<!-- end id2 -->41<!-- end id2 -->
42```console42```console
@@ -128,7 +128,7 @@ ATC run success, welcome to the next use.
128 128 
129 关于参数的详细解释请参见[参数说明](../CLI_options/README.md)。若提示如下信息,则说明模型转换成功。129 关于参数的详细解释请参见[参数说明](../CLI_options/README.md)。若提示如下信息,则说明模型转换成功。
130 <!-- npu="950,A3,910b,910,310p,310b" id3 -->130 <!-- npu="950,A3,910b,910,310p,310b" id3 -->
131- 若模型转换失败,请参见《[故障处理](https://hiascend.com/document/redirect/CannCommunitytrouble)》\>“错误码参考”章节进行辅助定位。131+ 若模型转换失败,请参见《[故障处理](https://gitcode.com/cann/docs/blob/master/docs/zh/troubleshooting/00_troubleshooting.md)》\>“错误码参考”章节进行辅助定位。
132 <!-- end id3 -->132 <!-- end id3 -->
133 133 
134 ```console134 ```console
@@ -169,7 +169,7 @@ ATC run success, welcome to the next use.
169 169 
170 关于参数的详细解释请参见[参数说明](../CLI_options/README.md)。若提示如下信息,则说明模型转换成功。170 关于参数的详细解释请参见[参数说明](../CLI_options/README.md)。若提示如下信息,则说明模型转换成功。
171 <!-- npu="950,A3,910b,910,310p,310b" id4 -->171 <!-- npu="950,A3,910b,910,310p,310b" id4 -->
172- 若模型转换失败,请参见《[故障处理](https://hiascend.com/document/redirect/CannCommunitytrouble)》\>“错误码参考”章节进行辅助定位。172+ 若模型转换失败,请参见《[故障处理](https://gitcode.com/cann/docs/blob/master/docs/zh/troubleshooting/00_troubleshooting.md)》\>“错误码参考”章节进行辅助定位。
173 <!-- end id4 -->173 <!-- end id4 -->
174 174 
175 ```console175 ```console
@@ -212,7 +212,7 @@ ATC run success, welcome to the next use.
212 212 
213 关于参数的详细解释请参见[参数说明](../CLI_options/README.md)。若提示如下信息,则说明模型转换成功。213 关于参数的详细解释请参见[参数说明](../CLI_options/README.md)。若提示如下信息,则说明模型转换成功。
214 <!-- npu="950,A3,910b,910,310p,310b" id5 -->214 <!-- npu="950,A3,910b,910,310p,310b" id5 -->
215- 若模型转换失败,请参见《[故障处理](https://hiascend.com/document/redirect/CannCommunitytrouble)》\>“错误码参考”章节进行辅助定位。215+ 若模型转换失败,请参见《[故障处理](https://gitcode.com/cann/docs/blob/master/docs/zh/troubleshooting/00_troubleshooting.md)》\>“错误码参考”章节进行辅助定位。
216 <!-- end id5 -->216 <!-- end id5 -->
217 217 
218 ```console218 ```console
@@ -18,7 +18,7 @@
18- 开源框架网络模型场景:18- 开源框架网络模型场景:
19 1. 开源框架网络模型经过Parser解析后,转换为中间态IR Graph。19 1. 开源框架网络模型经过Parser解析后,转换为中间态IR Graph。
20 2. 中间态IR经过图准备、图拆分、图优化、图编译等一系列操作后,转成适配AI处理器的离线模型(此处图指网络模型拓扑图)。20 2. 中间态IR经过图准备、图拆分、图优化、图编译等一系列操作后,转成适配AI处理器的离线模型(此处图指网络模型拓扑图)。
21- 3. 转换后的离线模型上传到板端环境,通过**模型加载接口加载模型文件,再调用模型执行接口**实现推理过程,详细流程请参见《[应用开发 \(C&C++\)](https://hiascend.com/document/redirect/CannCommunityCppBaseinfer)》中的“模型推理”章节。21+ 3. 转换后的离线模型上传到板端环境,通过**模型加载接口加载模型文件,再调用模型执行接口**实现推理过程,详细流程请参见《[应用开发](https://gitcode.com/cann/docs/blob/master/docs/zh/app-dev/00_acl_cpp_dev.md)》中的“模型推理”章节。
22 22 
23- 单算子描述文件场景:23- 单算子描述文件场景:
24 24 
@@ -2,7 +2,7 @@
2 2 
3## 获取ATC工具3## 获取ATC工具
4 4 
5-进行模型转换前,请参见《[软件安装](https://hiascend.com/document/redirect/CannCommunityInstSoftware)》完成环境搭建,并确保已安装CANN Toolkit开发套件包和ops算子包(针对8.5.0及之后版本,必须安装与目标AI处理器相匹配的ops算子包,否则会导致编译失败)。以root用户的默认安装路径为例,ATC工具安装在“/usr/local/Ascend/cann/bin”目录中。5+进行模型转换前,请参见《[软件安装](https://www.hiascend.com/document/detail/zh/CANNCommunityEdition/latest/softwareinst/instg/instg_0000.html?OS=openEuler&InstallType=netyum)》完成环境搭建,并确保已安装CANN Toolkit开发套件包和ops算子包(针对8.5.0及之后版本,必须安装与目标AI处理器相匹配的ops算子包,否则会导致编译失败)。以root用户的默认安装路径为例,ATC工具安装在“/usr/local/Ascend/cann/bin”目录中。
6 6 
7支持在同一开发环境中部署多个芯片的算子包,实现多芯片场景下的模型转换,可通过在不同路径下分别安装CANN Toolkit开发套件及对应芯片(如芯片A、芯片B)的算子包,例如:7支持在同一开发环境中部署多个芯片的算子包,实现多芯片场景下的模型转换,可通过在不同路径下分别安装CANN Toolkit开发套件及对应芯片(如芯片A、芯片B)的算子包,例如:
8 8 
@@ -148,4 +148,4 @@
148 148 
149 上述每个文件对应模型编译过程中的一个步骤,每个文件中包括完成该步骤所涉及的所有算子,关于dump图的详细信息请参见[dump图详细信息](../references/dump_graph_details.md)。149 上述每个文件对应模型编译过程中的一个步骤,每个文件中包括完成该步骤所涉及的所有算子,关于dump图的详细信息请参见[dump图详细信息](../references/dump_graph_details.md)。
150 150 
151- 4. **更多可选环境变量请参见**《[环境变量参考](https://hiascend.com/document/redirect/CannCommunityEnvRef)》。151+ 4. **更多可选环境变量请参见**《[环境变量参考](https://gitcode.com/cann/docs/blob/master/docs/zh/env-vars/README.md)》。
@@ -13,7 +13,7 @@
13> - 若开发环境架构为Arm(aarch64),模型转换耗时较长,则可以参考[开发环境架构为Arm(aarch64)时模型转换耗时较长](../FAQ/arm_aarch64_conversion_slow.md)解决。13> - 若开发环境架构为Arm(aarch64),模型转换耗时较长,则可以参考[开发环境架构为Arm(aarch64)时模型转换耗时较长](../FAQ/arm_aarch64_conversion_slow.md)解决。
14> <!-- end id1 -->14> <!-- end id1 -->
15> - 如果模型转换时,用户使用了设置网络模型精度参数[--precision\_mode](../CLI_options/--precision_mode.md)或[--precision\_mode\_v2](../CLI_options/--precision_mode_v2.md):15> - 如果模型转换时,用户使用了设置网络模型精度参数[--precision\_mode](../CLI_options/--precision_mode.md)或[--precision\_mode\_v2](../CLI_options/--precision_mode_v2.md):
16-> - 上述两个参数默认都为性能优先,后续推理时可能会导致精度溢出问题。如果推理时出现精度问题,可以参见《[应用开发 \(C&C++\)](https://hiascend.com/document/redirect/CannCommunityCppBaseinfer)》中的“模型推理 \> 精度/性能优化 \> 模型推理精度提升建议”进行定位。16+> - 上述两个参数默认都为性能优先,后续推理时可能会导致精度溢出问题。如果推理时出现精度问题,可以参见《[应用开发](https://gitcode.com/cann/docs/blob/master/docs/zh/app-dev/00_acl_cpp_dev.md)》中的“模型推理 \> 精度/性能优化 \> 模型推理精度提升建议”进行定位。
17> - 如果用户聚焦精度问题,可以修改为其他取值,比如--precision\_mode设置为must\_keep\_origin\_dtype或--precision\_mode\_v2设置为origin。17> - 如果用户聚焦精度问题,可以修改为其他取值,比如--precision\_mode设置为must\_keep\_origin\_dtype或--precision\_mode\_v2设置为origin。
18 18 
19## 开源框架的TensorFlow网络模型转换成离线模型19## 开源框架的TensorFlow网络模型转换成离线模型
@@ -43,7 +43,7 @@
43 43 
44 成功执行命令后,在--output参数指定的路径下,可查看离线模型(如:tf\_resnet50.om)。44 成功执行命令后,在--output参数指定的路径下,可查看离线模型(如:tf\_resnet50.om)。
45 <!-- npu="950,A3,910b,910,310p,310b" id2 -->45 <!-- npu="950,A3,910b,910,310p,310b" id2 -->
46- 若模型转换失败,请参见《[故障处理](https://hiascend.com/document/redirect/CannCommunitytrouble)》\>“错误码参考”章节进行辅助定位。46+ 若模型转换失败,请参见《[故障处理](https://gitcode.com/cann/docs/blob/master/docs/zh/troubleshooting/00_troubleshooting.md)》\>“错误码参考”章节进行辅助定位。
47 <!-- end id2 -->47 <!-- end id2 -->
48 48 
49## ONNX网络模型转换成离线模型49## ONNX网络模型转换成离线模型
@@ -73,7 +73,7 @@
73 73 
74 成功执行命令后,在--output参数指定的路径下,可查看离线模型(如:onnx\_resnet50.om)。74 成功执行命令后,在--output参数指定的路径下,可查看离线模型(如:onnx\_resnet50.om)。
75 <!-- npu="950,A3,910b,910,310p,310b" id3 -->75 <!-- npu="950,A3,910b,910,310p,310b" id3 -->
76- 若模型转换失败,请参见《[故障处理](https://hiascend.com/document/redirect/CannCommunitytrouble)》\>“错误码参考”章节进行辅助定位。76+ 若模型转换失败,请参见《[故障处理](https://gitcode.com/cann/docs/blob/master/docs/zh/troubleshooting/00_troubleshooting.md)》\>“错误码参考”章节进行辅助定位。
77 <!-- end id3 -->77 <!-- end id3 -->
78 78 
79## 开源框架的Caffe网络模型转换成离线模型79## 开源框架的Caffe网络模型转换成离线模型
@@ -107,7 +107,7 @@
107 107 
108 成功执行命令后,在--output参数指定的路径下,可查看离线模型(如:caffe\_resnet50.om)。108 成功执行命令后,在--output参数指定的路径下,可查看离线模型(如:caffe\_resnet50.om)。
109 <!-- npu="950,A3,910b,910,310p,310b" id4 -->109 <!-- npu="950,A3,910b,910,310p,310b" id4 -->
110- 若模型转换失败,请参见《[故障处理](https://hiascend.com/document/redirect/CannCommunitytrouble)》\>“错误码参考”章节进行辅助定位。110+ 若模型转换失败,请参见《[故障处理](https://gitcode.com/cann/docs/blob/master/docs/zh/troubleshooting/00_troubleshooting.md)》\>“错误码参考”章节进行辅助定位。
111 <!-- end id4 -->111 <!-- end id4 -->
112 112 
113## \*.air格式的模型文件转换成离线模型113## \*.air格式的模型文件转换成离线模型
@@ -137,5 +137,5 @@
137 137 
138 成功执行命令后,在--output参数指定的路径下,可查看离线模型(如:_resnet50_\_air.om)。138 成功执行命令后,在--output参数指定的路径下,可查看离线模型(如:_resnet50_\_air.om)。
139 <!-- npu="950,A3,910b,910,310p,310b" id5 -->139 <!-- npu="950,A3,910b,910,310p,310b" id5 -->
140- 若模型转换失败,请参见《[故障处理](https://hiascend.com/document/redirect/CannCommunitytrouble)》\>“错误码参考”章节进行辅助定位。140+ 若模型转换失败,请参见《[故障处理](https://gitcode.com/cann/docs/blob/master/docs/zh/troubleshooting/00_troubleshooting.md)》\>“错误码参考”章节进行辅助定位。
141 <!-- end id5 -->141 <!-- end id5 -->
@@ -19,7 +19,7 @@
194. 若提示如下信息,则说明模型转换成功。194. 若提示如下信息,则说明模型转换成功。
20 20 
21 <!-- npu="950,A3,910b,910,310p,310b" id1 -->21 <!-- npu="950,A3,910b,910,310p,310b" id1 -->
22- 若模型转换失败,请参见《[故障处理](https://hiascend.com/document/redirect/CannCommunitytrouble)》\> “错误码参考”章节进行辅助定位。22+ 若模型转换失败,请参见《[故障处理](https://gitcode.com/cann/docs/blob/master/docs/zh/troubleshooting/00_troubleshooting.md)》\> “错误码参考”章节进行辅助定位。
23 <!-- end id1 -->23 <!-- end id1 -->
24 24 
25 ```textconsole25 ```textconsole
@@ -4,7 +4,7 @@
4 4 
5支持的产品型号:Atlas A2 训练系列产品/Atlas A2 推理系列产品和Atlas A3 训练系列产品/Atlas A3 推理系列产品。5支持的产品型号:Atlas A2 训练系列产品/Atlas A2 推理系列产品和Atlas A3 训练系列产品/Atlas A3 推理系列产品。
6 6 
7-已经安装CANN软件,详细操作请参见《[软件安装](https://hiascend.com/document/redirect/CannCommunityInstSoftware)》。7+已经安装CANN软件,详细操作请参见《[软件安装](https://www.hiascend.com/document/detail/zh/CANNCommunityEdition/latest/softwareinst/instg/instg_0000.html?OS=openEuler&InstallType=netyum)》。
8 8 
9> [!NOTE]说明9> [!NOTE]说明
10>AI Server场景下,安装节点应采用容器/虚拟机隔离,容器/虚拟机的生命周期与业务进程/租户保持一致。容器/虚拟机生命周期结束时要清理持久化数据,避免对下一个业务进程/租户的影响。10>AI Server场景下,安装节点应采用容器/虚拟机隔离,容器/虚拟机的生命周期与业务进程/租户保持一致。容器/虚拟机生命周期结束时要清理持久化数据,避免对下一个业务进程/租户的影响。
@@ -27,7 +27,7 @@
27 export ASCEND_SLOG_PRINT_TO_STDOUT=1 #是否开启日志打印。1表示开启日志打印。27 export ASCEND_SLOG_PRINT_TO_STDOUT=1 #是否开启日志打印。1表示开启日志打印。
28 ```28 ```
29 29 
30- 具体说明请参考《[环境变量参考](https://hiascend.com/document/redirect/CannCommunityEnvRef)》。30+ 具体说明请参考《[环境变量参考](https://gitcode.com/cann/docs/blob/master/docs/zh/env-vars/README.md)》。
31 31 
32上述环境变量只在当前窗口生效,用户可以将上述命令写入\~/.bashrc文件,使其永久生效,方法如下:32上述环境变量只在当前窗口生效,用户可以将上述命令写入\~/.bashrc文件,使其永久生效,方法如下:
33 33 
@@ -41,4 +41,4 @@
41 41 
421. 网络包含几个输入,通过FlowData表示。421. 网络包含几个输入,通过FlowData表示。
432. 网络包含几个计算节点,通过FlowNode表示。432. 网络包含几个计算节点,通过FlowNode表示。
44-3. FlowNode里的实际计算由ProcessPoint表示,ProcessPoint有两种,GraphPp和FunctionPp,如果是GraphPp请参考《[图开发](https://hiascend.com/document/redirect/CannCommunityGraphguide)》进行AscendGraph开发。如果是FunctionPp参考[专题](special_topics.md)中的“UDF开发”自定义用户功能。44+3. FlowNode里的实际计算由ProcessPoint表示,ProcessPoint有两种,GraphPp和FunctionPp,如果是GraphPp请参考《[图开发](../../../graph_dev/README.md)》进行AscendGraph开发。如果是FunctionPp参考[专题](special_topics.md)中的“UDF开发”自定义用户功能。
@@ -26,7 +26,7 @@
26 26 
27#### 环境准备27#### 环境准备
28 28 
29-- 进行UDF开发前,需要完成驱动固件及开发套件包Ascend-cann-toolkit的安装,详细操作请参见《[软件安装](https://hiascend.com/document/redirect/CannCommunityInstSoftware)》。29+- 进行UDF开发前,需要完成驱动固件及开发套件包Ascend-cann-toolkit的安装,详细操作请参见《[软件安装](https://www.hiascend.com/document/detail/zh/CANNCommunityEdition/latest/softwareinst/instg/instg_0000.html?OS=openEuler&InstallType=netyum)》。
30- 配置环境变量CANN软件包安装路径ASCEND\_INSTALL\_PATH,UDF编译时根据该环境变量寻找依赖的头文件和so,如果不设置,默认该环境变量取值为“/usr/local/Ascend”。配置示例如下。30- 配置环境变量CANN软件包安装路径ASCEND\_INSTALL\_PATH,UDF编译时根据该环境变量寻找依赖的头文件和so,如果不设置,默认该环境变量取值为“/usr/local/Ascend”。配置示例如下。
31 31 
32 ```shell32 ```shell
@@ -10,7 +10,7 @@
10 10 
11- 当前仅支持Python3.11。安装方法请参考Python官网[https://www.python.org/](https://www.python.org/)。11- 当前仅支持Python3.11。安装方法请参考Python官网[https://www.python.org/](https://www.python.org/)。
12 12 
13-- 已经安装好开发套件包Ascend-cann-toolkit,详细操作请参见《[软件安装](https://hiascend.com/document/redirect/CannCommunityInstSoftware)》。13+- 已经安装好开发套件包Ascend-cann-toolkit,详细操作请参见《[软件安装](https://www.hiascend.com/document/detail/zh/CANNCommunityEdition/latest/softwareinst/instg/instg_0000.html?OS=openEuler&InstallType=netyum)》。
14 14 
15 > [!NOTE]说明15 > [!NOTE]说明
16 >AI Server场景下,安装节点应采用容器/虚拟机隔离,容器/虚拟机的生命周期与业务进程/租户保持一致。容器/虚拟机生命周期结束时要清理持久化数据,避免对下一个业务进程/租户的影响。16 >AI Server场景下,安装节点应采用容器/虚拟机隔离,容器/虚拟机的生命周期与业务进程/租户保持一致。容器/虚拟机生命周期结束时要清理持久化数据,避免对下一个业务进程/租户的影响。
@@ -17,7 +17,7 @@
17 17 
18### 环境准备18### 环境准备
19 19 
20-- 进行UDF开发前,需要完成驱动固件及开发套件包Ascend-cann-toolkit的安装,详细操作请参见《[软件安装](https://hiascend.com/document/redirect/CannCommunityInstSoftware)》。20+- 进行UDF开发前,需要完成驱动固件及开发套件包Ascend-cann-toolkit的安装,详细操作请参见《[软件安装](https://www.hiascend.com/document/detail/zh/CANNCommunityEdition/latest/softwareinst/instg/instg_0000.html?OS=openEuler&InstallType=netyum)》。
21- 进行Python UDF开发前需要安装Python依赖包:pybind11及jinja2。pybind11用于C++和Python之间对象的转换。jinja2用于快速生成工程模板。21- 进行Python UDF开发前需要安装Python依赖包:pybind11及jinja2。pybind11用于C++和Python之间对象的转换。jinja2用于快速生成工程模板。
22- 配置环境变量CANN软件包安装路径ASCEND\_INSTALL\_PATH,UDF编译时根据该环境变量寻找依赖的头文件和so,如果不设置,默认该环境变量取值为“/usr/local/Ascend”。配置示例如下。22- 配置环境变量CANN软件包安装路径ASCEND\_INSTALL\_PATH,UDF编译时根据该环境变量寻找依赖的头文件和so,如果不设置,默认该环境变量取值为“/usr/local/Ascend”。配置示例如下。
23 23 
@@ -1,6 +1,6 @@
1# 融合规则列表1# 融合规则列表
2 2 
3-如下融合规则关闭后可能会有功能使用上的风险;更多融合规则请参见《[图融合和UB融合规则参考](https://hiascend.com/document/redirect/CannCommunitygraphubfusionref)》。3+如下融合规则关闭后可能会有功能使用上的风险;更多融合规则请参见《[图融合和UB融合规则参考](https://www.hiascend.com/document/detail/zh/CANNCommunityEdition/latest/maintenref/graphubfusionref/atlasrr_30_0003.html)》。
4 4 
5<!-- npu="950" id1 -->5<!-- npu="950" id1 -->
6Ascend 950PR/Ascend 950DT不支持UB融合。6Ascend 950PR/Ascend 950DT不支持UB融合。
@@ -8,7 +8,7 @@ gen\_esb是ES API的代码生成二进制工具,根据ASCEND\_OPP\_PATH环境
8- 聚合头文件,方便用户一次性包含所有算子。8- 聚合头文件,方便用户一次性包含所有算子。
9- 聚合Python文件,方便用户一次性导入所有算子。9- 聚合Python文件,方便用户一次性导入所有算子。
10 10 
11-ASCEND\_OPP\_PATH环境变量详细说明请参见《[环境变量参考](https://hiascend.com/document/redirect/CannCommunityEnvRef)》。11+ASCEND\_OPP\_PATH环境变量详细说明请参见《[环境变量参考](https://gitcode.com/cann/docs/blob/master/docs/zh/env-vars/README.md)》。
12 12 
13## 使用前提13## 使用前提
14 14 
@@ -232,7 +232,7 @@
232 }232 }
233 ```233 ```
234 234 
235-aclrtMallocHost、aclrtMalloc、aclrtFreeHost、aclrtFree等接口详细说明请参见《[Runtime运行时 API](https://hiascend.com/document/redirect/CannCommunityruntimeapiaclmalloc)》中的“内存管理”。235+aclrtMallocHost、aclrtMalloc、aclrtFreeHost、aclrtFree等接口详细说明请参见《[Runtime运行时 API](https://gitcode.com/cann/runtime/blob/master/docs/zh/api_ref/README.md)》中的“内存管理”。
236 236 
237## 编译和运行接口变化237## 编译和运行接口变化
238 238 
@@ -4,7 +4,7 @@
4 4 
5### 前提条件5### 前提条件
6 6 
7-- 安装软件包:准备带有AI处理器的硬件环境,并安装驱动固件和CANN软件包,具体安装步骤请参见《[软件安装](https://hiascend.com/document/redirect/CannCommunityInstSoftware)》。7+- 安装软件包:准备带有AI处理器的硬件环境,并安装驱动固件和CANN软件包,具体安装步骤请参见《[软件安装](https://www.hiascend.com/document/detail/zh/CANNCommunityEdition/latest/softwareinst/instg/instg_0000.html?OS=openEuler&InstallType=netyum)》。
8- GCC版本:要求9.5.0及以上,建议使用9.5.0版本。8- GCC版本:要求9.5.0及以上,建议使用9.5.0版本。
9- CMake:要求3.20.0版本及以上,建议使用3.20.0版本。9- CMake:要求3.20.0版本及以上,建议使用3.20.0版本。
10- 安装mspti,mspti有两种获取方式(开启PGO特性时需要安装该依赖):10- 安装mspti,mspti有两种获取方式(开启PGO特性时需要安装该依赖):
@@ -87,7 +87,7 @@
87>87>
88>关于ATC工具详细使用方法请参见《[ATC离线模型编译工具](../../atc_tools/README.md)》。88>关于ATC工具详细使用方法请参见《[ATC离线模型编译工具](../../atc_tools/README.md)》。
89>89>
90->关于acl接口推理详细说明请参见《[应用开发 \(C&C++\)](https://hiascend.com/document/redirect/CannCommunityCppBaseinfer)》中的“模型推理”。90+>关于acl接口推理详细说明请参见《[应用开发](https://gitcode.com/cann/docs/blob/master/docs/zh/app-dev/00_acl_cpp_dev.md)》中的“模型推理”。
91 91 
92## AUTOFUSE\_FLAGS环境变量控制点92## AUTOFUSE\_FLAGS环境变量控制点
93 93 
@@ -1,6 +1,6 @@
1# 样例代码解析1# 样例代码解析
2 2 
3-本实践采用模块化设计,基于C++语言结合GE图引擎 API与acl(Ascend Computing Language)API实现,完整代码请单击[推荐网络高性能示例](https://gitcode.com/cann/ge/tree/master/examples/recommendation)获取,核心组件构成如下:3+本实践采用模块化设计,基于C++语言结合GE图引擎 API与acl(Ascend Computing Language)API实现,完整代码请单击[推荐网络高性能示例](../../../../../examples/recommendation)获取,核心组件构成如下:
4 4 
51. **ModelInference::Builder**:构建器,配置模型参数;封装ModelInference对象的构建过程,提供链式配置接口。51. **ModelInference::Builder**:构建器,配置模型参数;封装ModelInference对象的构建过程,提供链式配置接口。
62. **ModelInference**:核心类,提供模型初始化、资源管理、任务调度等核心能力。62. **ModelInference**:核心类,提供模型初始化、资源管理、任务调度等核心能力。
@@ -18,7 +18,7 @@
18 18 
19![图2示例](../figures/single_thread_14.png)19![图2示例](../figures/single_thread_14.png)
20 20 
21-1. 调用《[Runtime运行时 API](https://hiascend.com/document/redirect/CannCommunityruntimeapiaclinit)》中的“初始化和去初始化 \> aclInit”接口,初始化acl,调用《Runtime运行时 API》中的“Device管理 \> aclrtSetDevice”指定运行的Device。21+1. 调用《[Runtime运行时 API](https://gitcode.com/cann/runtime/blob/master/docs/zh/api_ref/README.md)》中的“初始化和去初始化 \> aclInit”接口,初始化acl,调用《Runtime运行时 API》中的“Device管理 \> aclrtSetDevice”指定运行的Device。
222. 构建ModelInference实例并初始化特性开关:开启批量H2D功能、配置AICore控核策略、使用多实例并行。222. 构建ModelInference实例并初始化特性开关:开启批量H2D功能、配置AICore控核策略、使用多实例并行。
233. ModelInference初始化:233. ModelInference初始化:
24 1. 调用[Session构造函数](../../../api/graph_engine_api/cpp/ge/Session/Session.md)创建Session类对象,申请Session资源,Session中的options中配置ge.aicoreNum参数。24 1. 调用[Session构造函数](../../../api/graph_engine_api/cpp/ge/Session/Session.md)创建Session类对象,申请Session资源,Session中的options中配置ge.aicoreNum参数。
@@ -98,4 +98,4 @@
98 98 
99 后续进行推理业务时,需要使用**从内存中**加载模型的接口,例如aclmdlLoadFromMem,然后使用aclmdlExecute接口执行推理。99 后续进行推理业务时,需要使用**从内存中**加载模型的接口,例如aclmdlLoadFromMem,然后使用aclmdlExecute接口执行推理。
100 100 
101-接口详细介绍请参见《[应用开发 \(C&C++\)](https://hiascend.com/document/redirect/CannCommunityCppBaseinfer)》中的“模型推理”章节。101+接口详细介绍请参见《[应用开发](https://gitcode.com/cann/docs/blob/master/docs/zh/app-dev/00_acl_cpp_dev.md)》中的“模型推理”章节。
@@ -11,9 +11,9 @@
11![图示](../figures/feature_intro_4.png)11![图示](../figures/feature_intro_4.png)
12 12 
131. 调用[GEInitializeV2](../../../api/graph_engine_api/cpp/ge/GeSession/GEInitializeV2.md)进行系统初始化(也可在Graph构建前调用),申请系统资源。131. 调用[GEInitializeV2](../../../api/graph_engine_api/cpp/ge/GeSession/GEInitializeV2.md)进行系统初始化(也可在Graph构建前调用),申请系统资源。
14-2. 调用《[Runtime运行时 API](https://hiascend.com/document/redirect/CannCommunityruntimeapiaclinit)》中的“初始化和去初始化 \> aclInit”接口,初始化acl。14+2. 调用《[Runtime运行时 API](https://gitcode.com/cann/runtime/blob/master/docs/zh/api_ref/README.md)》中的“初始化和去初始化 \> aclInit”接口,初始化acl。
153. 调用[Session构造函数](../../../api/graph_engine_api/cpp/ge/GeSession/GESession.md)创建Session类对象,申请Session资源。153. 调用[Session构造函数](../../../api/graph_engine_api/cpp/ge/GeSession/GESession.md)创建Session类对象,申请Session资源。
16-4. 调用《[Runtime运行时 API](https://hiascend.com/document/redirect/CannCommunityruntimeapiacldevice)》中的“Device管理 \> aclrtSetDevice”指定运行的Device,调用“aclrtCreateStream”创建Stream,然后调用《[Runtime运行时 API](https://hiascend.com/document/redirect/CannCommunityruntimeapiaclmalloc)》中的“内存管理 \> aclrtMallocHost/aclrtMalloc”分别申请Host和Device内存。16+4. 调用《[Runtime运行时 API](https://gitcode.com/cann/runtime/blob/master/docs/zh/api_ref/README.md)》中的“Device管理 \> aclrtSetDevice”指定运行的Device,调用“aclrtCreateStream”创建Stream,然后调用《[Runtime运行时 API](https://gitcode.com/cann/runtime/blob/master/docs/zh/api_ref/README.md)》中的“内存管理 \> aclrtMallocHost/aclrtMalloc”分别申请Host和Device内存。
175. 调用[AddGraph](../../../api/graph_engine_api/cpp/ge/GeSession/AddGraph.md)在Session类对象中添加定义好的图。175. 调用[AddGraph](../../../api/graph_engine_api/cpp/ge/GeSession/AddGraph.md)在Session类对象中添加定义好的图。
186. (可选)调用[CompileGraph](../../../api/graph_engine_api/cpp/ge/GeSession/CompileGraph.md)完成图编译。186. (可选)调用[CompileGraph](../../../api/graph_engine_api/cpp/ge/GeSession/CompileGraph.md)完成图编译。
197. (可选)调用[LoadGraph](../../../api/graph_engine_api/cpp/ge/GeSession/LoadGraph.md)(异步执行Graph场景),加载图模型到上面步骤创建的Stream上。197. (可选)调用[LoadGraph](../../../api/graph_engine_api/cpp/ge/GeSession/LoadGraph.md)(异步执行Graph场景),加载图模型到上面步骤创建的Stream上。
@@ -210,10 +210,10 @@
210![图示](../figures/single_thread.png)210![图示](../figures/single_thread.png)
211 211 
2121. 调用[GEInitializeV2](../../../api/graph_engine_api/cpp/ge/GeSession/GEInitializeV2.md)进行系统初始化(也可在Graph构建前调用),申请系统资源。2121. 调用[GEInitializeV2](../../../api/graph_engine_api/cpp/ge/GeSession/GEInitializeV2.md)进行系统初始化(也可在Graph构建前调用),申请系统资源。
213-2. 调用《[Runtime运行时 API](https://hiascend.com/document/redirect/CannCommunityruntimeapiaclinit)》中的“初始化和去初始化 \> aclInit”接口,初始化acl。213+2. 调用《[Runtime运行时 API](https://gitcode.com/cann/runtime/blob/master/docs/zh/api_ref/README.md)》中的“初始化和去初始化 \> aclInit”接口,初始化acl。
2143. 调用[Session构造函数](../../../api/graph_engine_api/cpp/ge/GeSession/GESession.md)创建多个Session类对象,申请Session资源,每个Session传入不同的ge.session\_device\_id,将模型运行在不同的Device。2143. 调用[Session构造函数](../../../api/graph_engine_api/cpp/ge/GeSession/GESession.md)创建多个Session类对象,申请Session资源,每个Session传入不同的ge.session\_device\_id,将模型运行在不同的Device。
2154. 创建多个线程,每个线程传入不同的Session,下面以一个线程为例,描述简单的流程:2154. 创建多个线程,每个线程传入不同的Session,下面以一个线程为例,描述简单的流程:
216- 1. 调用《[Runtime运行时 API](https://hiascend.com/document/redirect/CannCommunityruntimeapiacldevice)》中的“Device管理 \> aclrtSetDevice”指定运行的Device,调用“aclrtCreateStream”创建Stream,然后调用《[Runtime运行时 API](https://hiascend.com/document/redirect/CannCommunityruntimeapiaclmalloc)》中的“内存管理 \> aclrtMalloc”申请Device内存。216+ 1. 调用《[Runtime运行时 API](https://gitcode.com/cann/runtime/blob/master/docs/zh/api_ref/README.md)》中的“Device管理 \> aclrtSetDevice”指定运行的Device,调用“aclrtCreateStream”创建Stream,然后调用《[Runtime运行时 API](https://gitcode.com/cann/runtime/blob/master/docs/zh/api_ref/README.md)》中的“内存管理 \> aclrtMalloc”申请Device内存。
217 2. 调用[AddGraph](../../../api/graph_engine_api/cpp/ge/GeSession/AddGraph.md)在Session类对象中添加定义好的图。217 2. 调用[AddGraph](../../../api/graph_engine_api/cpp/ge/GeSession/AddGraph.md)在Session类对象中添加定义好的图。
218 3. 调用[CompileGraph](../../../api/graph_engine_api/cpp/ge/GeSession/CompileGraph.md)完成图编译。218 3. 调用[CompileGraph](../../../api/graph_engine_api/cpp/ge/GeSession/CompileGraph.md)完成图编译。
219 4. 调用[LoadGraph](../../../api/graph_engine_api/cpp/ge/GeSession/LoadGraph.md)(异步执行Graph场景),将图模型加载到前面创建的Stream上。219 4. 调用[LoadGraph](../../../api/graph_engine_api/cpp/ge/GeSession/LoadGraph.md)(异步执行Graph场景),将图模型加载到前面创建的Stream上。
@@ -6,7 +6,7 @@
6 6 
7|场景|功能说明|7|场景|功能说明|
8|--|--|8|--|--|
9-|[编译Graph为离线模型](#编译graph为离线模型)|**将Graph编译并保存为om离线模型**,编译生成的离线模型通过模型加载接口加载,然后通过模型执行接口进行推理。详细介绍请参考《[应用开发 (C&C++)](https://hiascend.com/document/redirect/CannCommunityCppBaseinfer)》中的“模型推理”章节。|9+|[编译Graph为离线模型](#编译graph为离线模型)|**将Graph编译并保存为om离线模型**,编译生成的离线模型通过模型加载接口加载,然后通过模型执行接口进行推理。详细介绍请参考《[应用开发](https://gitcode.com/cann/docs/blob/master/docs/zh/app-dev/00_acl_cpp_dev.md)》中的“模型推理”章节。|
10|[编译并运行Graph](#编译并运行graph)|构建完Graph之后,**直接编译并运行Graph**,使用AddGraph接口加载Graph对象;运行Graph时,根据调用接口不同,分为如下两种情况:<br>- 同步运行Graph:加载完后,使用RunGraph同步运行Graph,**得到图的执行结果**<br>- 异步运行Graph:加载完后,使用RunGraphWithStreamAsync异步运行Graph,**得到图的执行结果**。|10|[编译并运行Graph](#编译并运行graph)|构建完Graph之后,**直接编译并运行Graph**,使用AddGraph接口加载Graph对象;运行Graph时,根据调用接口不同,分为如下两种情况:<br>- 同步运行Graph:加载完后,使用RunGraph同步运行Graph,**得到图的执行结果**<br>- 异步运行Graph:加载完后,使用RunGraphWithStreamAsync异步运行Graph,**得到图的执行结果**。|
11 11 
12说明:12说明:
@@ -365,7 +365,7 @@ REG_OP(Cast)
365 .OP_END_FACTORY_REG(Cast)365 .OP_END_FACTORY_REG(Cast)
366```366```
367 367 
368-从Cast算子原型定义可以看到,有一个必选属性dst\_type,表示转换后的数据类型,设置为0表示转换后的数据类型为float32,值和数据类型对应关系请参见《[基础数据结构和接口](https://hiascend.com/document/redirect/CannCommunitybasicopapi)》中的"ge命名空间\>DataType"。368+从Cast算子原型定义可以看到,有一个必选属性dst\_type,表示转换后的数据类型,设置为0表示转换后的数据类型为float32,值和数据类型对应关系请参见《[基础数据结构和接口](https://gitcode.com/cann/metadef/blob/master/docs/zh/api/README.md)》中的"ge命名空间\>DataType"。
369 369 
370```c++370```c++
371auto greater = op::Greater("greater").set_input_x1(const1).set_input_x2(const2);371auto greater = op::Greater("greater").set_input_x1(const1).set_input_x2(const2);
@@ -84,7 +84,7 @@ namespace ge{
84 84 
85>[!NOTE]说明85>[!NOTE]说明
86>86>
87->DT\_FLOAT,DT\_UINT8_等数据类型对应关系请参见《[基础数据结构和接口](https://hiascend.com/document/redirect/CannCommunitybasicopapi)》\>"ge命名空间\>DataType"。87+>DT\_FLOAT,DT\_UINT8_等数据类型对应关系请参见《[基础数据结构和接口](https://gitcode.com/cann/metadef/blob/master/docs/zh/api/README.md)》\>"ge命名空间\>DataType"。
88 88 
89## 如何获取算子原型89## 如何获取算子原型
90 90 
@@ -34,7 +34,7 @@ Parser层目前为用户开放了自定义OpParser和自定义TensorFlow Scope
34 34 
35- 自定义OpParser:35- 自定义OpParser:
36 36 
37- 如果用户需要将原始框架中算子直接映射到CANN中已实现的Ascend C算子或者已实现的TBE算子,可直接进行第三方框架的适配,需分别参见《[Ascend C算子开发](https://hiascend.com/document/redirect/CannCommunityOpdevAscendC)》中的“编程指南 \> 附录 \> AI框架算子适配”章节或者参见《[TBE&AI CPU算子开发](https://hiascend.com/document/redirect/CannCommunityOpdevWizard)》中的“算子开发过程 \> 算子适配”章节,选择其中一种已实现的算子即可。37+ 如果用户需要将原始框架中算子直接映射到CANN中已实现的Ascend C算子或者已实现的TBE算子,可直接进行第三方框架的适配,需分别参见《[Ascend C算子开发](https://gitcode.com/cann/asc-devkit/blob/master/docs/zh/guide/index.md)》中的“编程指南 \> 附录 \> AI框架算子适配”章节或者参见《[TBE&AI CPU算子开发](https://hiascend.com/document/redirect/CannCommunityOpdevWizard)》中的“算子开发过程 \> 算子适配”章节,选择其中一种已实现的算子即可。
38 38 
39- 自定义TensorFlow Scope融合规则:基于TensorFlow构建的神经网络计算图通常由大量的小算子组成,为了实现高性能的计算,往往需要对子图中的小算子进行融合,使得融合后的大算子可以充分利用硬件加速资源。具体请参见《TensorFlow Parser Scope融合规则开发》。39- 自定义TensorFlow Scope融合规则:基于TensorFlow构建的神经网络计算图通常由大量的小算子组成,为了实现高性能的计算,往往需要对子图中的小算子进行融合,使得融合后的大算子可以充分利用硬件加速资源。具体请参见《TensorFlow Parser Scope融合规则开发》。
40 40 
@@ -10,7 +10,7 @@ GE提供了两种常规的模型调度模式(下沉调度和Host调度)用
10 10 
11Host调度模式通常适用于动态shape模型,由于输入tensor的shape不确定,必须在上一个算子完成shape推导后,才能确定下一个算子的输入shape等信息,因此整个模型无法下沉执行,通常需要将每个算子Kernel逐一下发到Device执行。11Host调度模式通常适用于动态shape模型,由于输入tensor的shape不确定,必须在上一个算子完成shape推导后,才能确定下一个算子的输入shape等信息,因此整个模型无法下沉执行,通常需要将每个算子Kernel逐一下发到Device执行。
12 12 
13-基于fallback形式下发算子属于Host调度模式的一种,用户可以在Host侧通过fallback函数执行算子,例如可直接调用aclnnXX单算子API执行算子。用户仅需在算子开发过程中调用Ascend C的[EnableFallBack](https://hiascend.com/document/redirect/CannCommunityAscendCApi)接口,即可自动生成fallback函数供GE自动回调,fallback函数的主要任务就是将GE的输入输出及属性转换为aclnnXX单算子API所需的参数格式,然后调用aclnnXX接口执行算子。13+基于fallback形式下发算子属于Host调度模式的一种,用户可以在Host侧通过fallback函数执行算子,例如可直接调用aclnnXX单算子API执行算子。用户仅需在算子开发过程中调用Ascend C的[EnableFallBack](https://gitcode.com/cann/asc-devkit/blob/master/docs/zh/api/README.md)接口,即可自动生成fallback函数供GE自动回调,fallback函数的主要任务就是将GE的输入输出及属性转换为aclnnXX单算子API所需的参数格式,然后调用aclnnXX接口执行算子。
14 14 
15**图 1** 常规Host调度模式和fallback下发的对比15**图 1** 常规Host调度模式和fallback下发的对比
16![图示](../figures/compare.png "常规Host调度模式和fallback下发的对比")16![图示](../figures/compare.png "常规Host调度模式和fallback下发的对比")
@@ -36,7 +36,7 @@ fallback函数的主要任务是将GE的输入输出及属性转换为aclnn单
36static graphStatus ConcatExecuteFunc(OpExecuteContext* host_api_ctx)36static graphStatus ConcatExecuteFunc(OpExecuteContext* host_api_ctx)
37```37```
38 38 
39-OpExecuteContext指针入参中主要包含计算fallback所需的信息,例如输入输出的shape和datatype等,具体请参考《[基础数据结构和接口](https://hiascend.com/document/redirect/CannCommunitybasicopapi)》\>"gert命名空间\>OpImplSpaceRegistryV2类"。39+OpExecuteContext指针入参中主要包含计算fallback所需的信息,例如输入输出的shape和datatype等,具体请参考《[基础数据结构和接口](https://gitcode.com/cann/metadef/blob/master/docs/zh/api/README.md)》\>"gert命名空间\>OpImplSpaceRegistryV2类"。
40 40 
41用户无需手动实现fallback函数,在算子原型注册过程中,只需调用EnableFallBack接口,系统将自动生成fallback函数并注册到GE。41用户无需手动实现fallback函数,在算子原型注册过程中,只需调用EnableFallBack接口,系统将自动生成fallback函数并注册到GE。
42 42 
@@ -31,7 +31,7 @@ Triton-Ascend是面向昇腾平台构建的Triton编译框架,旨在让Triton
31- **CANN软件包安装**:参见[环境准备](../overview/environment_setup.md)安装CANN软件包,并设置环境变量。31- **CANN软件包安装**:参见[环境准备](../overview/environment_setup.md)安装CANN软件包,并设置环境变量。
32- **Triton-Ascend 安装**:参见[Triton-Ascend安装指南](https://gitcode.com/Ascend/triton-ascend/blob/master/docs/sources/getting-started/installation.md)进行安装。32- **Triton-Ascend 安装**:参见[Triton-Ascend安装指南](https://gitcode.com/Ascend/triton-ascend/blob/master/docs/sources/getting-started/installation.md)进行安装。
33 33 
34-详细Sample示例请单击[Triton自定义算子入图样例](https://gitcode.com/cann/ge/tree/master/examples/custom_op/triton_add_custom)获取。34+详细Sample示例请单击[Triton自定义算子入图样例](../../../../../examples/custom_op/triton_add_custom/README.md)获取。
35 35 
36### 生成npubin文件36### 生成npubin文件
37 37 
@@ -302,9 +302,9 @@ g++ -std=c++14 -shared $SOURCE_FILES -o outputs/libcustom_ops.so -fPIC ${TF_CFLA
302 ```302 ```
303 <!-- end id1 -->303 <!-- end id1 -->
304 304 
305- 其中,aclrtBinaryLoadFromFile、aclrtBinaryGetFunction、aclrtLaunchKernelWithHostArgs接口详细说明请参见《[Runtime运行时 API](https://hiascend.com/document/redirect/CannCommunityruntimeapiaclkernel)》中的“Kernel加载与执行”。305+ 其中,aclrtBinaryLoadFromFile、aclrtBinaryGetFunction、aclrtLaunchKernelWithHostArgs接口详细说明请参见《[Runtime运行时 API](https://gitcode.com/cann/runtime/blob/master/docs/zh/api_ref/README.md)》中的“Kernel加载与执行”。
306 306 
307- GetAddr、GetShape、GetSize、GetDataType、GetFormat、GetShapeSize接口详细说明请参见《[基础数据结构和接口](https://hiascend.com/document/redirect/CannCommunitybasicopapi)》。307+ GetAddr、GetShape、GetSize、GetDataType、GetFormat、GetShapeSize接口详细说明请参见《[基础数据结构和接口](https://gitcode.com/cann/metadef/blob/master/docs/zh/api/README.md)》。
308 308 
309 其他接口详细说明请参见[EagerExecuteOp](../../../api/graph_engine_api/cpp/ge/EagerExecuteOp/EagerExecuteOp.md/)、[Execute](../../../api/graph_engine_api/cpp/ge/EagerExecuteOp/Execute.md)、[GetInputTensor](../../../api/graph_engine_api/cpp/gert/EagerOpExecutionContext/GetInputTensor.md)、[MallocOutputTensor](../../../api/graph_engine_api/cpp/gert/EagerOpExecutionContext/MallocOutputTensor.md)、[GetStream](../../../api/graph_engine_api/cpp/gert/EagerOpExecutionContext/GetStream.md)、[REG\_AUTO\_MAPPING\_OP](../../../api/graph_engine_api/cpp/ge/REG_AUTO_MAPPING_OP.md)。309 其他接口详细说明请参见[EagerExecuteOp](../../../api/graph_engine_api/cpp/ge/EagerExecuteOp/EagerExecuteOp.md/)、[Execute](../../../api/graph_engine_api/cpp/ge/EagerExecuteOp/Execute.md)、[GetInputTensor](../../../api/graph_engine_api/cpp/gert/EagerOpExecutionContext/GetInputTensor.md)、[MallocOutputTensor](../../../api/graph_engine_api/cpp/gert/EagerOpExecutionContext/MallocOutputTensor.md)、[GetStream](../../../api/graph_engine_api/cpp/gert/EagerOpExecutionContext/GetStream.md)、[REG\_AUTO\_MAPPING\_OP](../../../api/graph_engine_api/cpp/ge/REG_AUTO_MAPPING_OP.md)。
310 310 
@@ -98,7 +98,7 @@ REGISTER_CUSTOM_PASS("pass_name").CustomAllocateStreamPassFn(CustomStreamPassFun
98 98 
99- **前提条件**99- **前提条件**
100 100 
101- 请参见《[软件安装](https://hiascend.com/document/redirect/CannCommunityInstSoftware)》安装CANN软件包。101+ 请参见《[软件安装](https://www.hiascend.com/document/detail/zh/CANNCommunityEdition/latest/softwareinst/instg/instg_0000.html?OS=openEuler&InstallType=netyum)》安装CANN软件包。
102 102 
103- **程序编译:**103- **程序编译:**
104 1. 参见[样例使用指导](https://gitee.com/ascend/samples/tree/master/cplusplus/level1_single_api/3_ir/2_fuse_matmul_add_pass),获取其中的CMakeLists.txt编辑脚本,并按照Sample中的目录结构,将用户自定义逻辑流分配函数**_AllocateStreamPass.cpp_**文件放在src目录下。104 1. 参见[样例使用指导](https://gitee.com/ascend/samples/tree/master/cplusplus/level1_single_api/3_ir/2_fuse_matmul_add_pass),获取其中的CMakeLists.txt编辑脚本,并按照Sample中的目录结构,将用户自定义逻辑流分配函数**_AllocateStreamPass.cpp_**文件放在src目录下。
@@ -242,7 +242,7 @@ REG_DECOMPOSE_PASS(CustomOne2NPass, {"Conv2D"}).Stage(CustomPassStage::kAfterInf
242 242 
243## 开发示例243## 开发示例
244 244 
245-此处以MatMul+Add结构融合为GEMM自定义Pass为例(对应上述一般场景下的融合Pass开发),详细介绍如何通过自定义融合Pass修改Graph,详细可以参见[样例源码](https://gitcode.com/cann/ge/blob/master/examples/fusion_pass/pattern_base_pass/1_fuse_matmul_add_pass/cpp)。样例仓还提供了更多样例,用户可以单击[融合Pass样例](https://gitcode.com/cann/ge/tree/master/examples/fusion_pass/pattern_base_pass)进行查看。245+此处以MatMul+Add结构融合为GEMM自定义Pass为例(对应上述一般场景下的融合Pass开发),详细介绍如何通过自定义融合Pass修改Graph,详细可以参见[样例源码](../../../../../examples/fusion_pass/pattern_base_pass/1_fuse_matmul_add_pass/cpp/README.md)。样例仓还提供了更多样例,用户可以单击[融合Pass样例](../../../../../examples/fusion_pass/pattern_base_pass/README.md)进行查看。
246 246 
247修改前后的图结构如下,本例识别图中左边的MatMul+Add结构并通过图修改接口替换为右边的单个GEMM节点:247修改前后的图结构如下,本例识别图中左边的MatMul+Add结构并通过图修改接口替换为右边的单个GEMM节点:
248 248 
@@ -311,7 +311,7 @@ REG_DECOMPOSE_PASS(CustomOne2NPass, {"Conv2D"}).Stage(CustomPassStage::kAfterInf
311 311 
312## 如何使用自定义Pass312## 如何使用自定义Pass
313 313 
314-完成上述自定义Pass后,本节简单介绍如何把改图函数编译成动态库插件方式,以便注册的Pass在图编译阶段被框架调用。详细使用说明请参见[样例使用指导](https://gitcode.com/cann/ge/tree/master/examples/fusion_pass/1_fuse_matmul_add_pass)。314+完成上述自定义Pass后,本节简单介绍如何把改图函数编译成动态库插件方式,以便注册的Pass在图编译阶段被框架调用。详细使用说明请参见[样例使用指导](../../../../../examples/fusion_pass/pattern_base_pass/1_fuse_matmul_add_pass/cpp/README.md)。
315 315 
3161. 把[开发示例](#开发示例)中的改图函数编译成仅以".so"结尾的动态库文件。3161. 把[开发示例](#开发示例)中的改图函数编译成仅以".so"结尾的动态库文件。
3172. 编译成功后,执行**make install**命令,将上述".so"动态库文件安装到`${INSTALL_DIR}/opp/vendors/xxx/custom_fusion_passes/`目录下。(支持设置软链接的方式;".so"文件对执行用户,需要有可读权限)3172. 编译成功后,执行**make install**命令,将上述".so"动态库文件安装到`${INSTALL_DIR}/opp/vendors/xxx/custom_fusion_passes/`目录下。(支持设置软链接的方式;".so"文件对执行用户,需要有可读权限)
@@ -332,7 +332,7 @@ REG_DECOMPOSE_PASS(CustomOne2NPass, {"Conv2D"}).Stage(CustomPassStage::kAfterInf
332 332 
333## 结果验证333## 结果验证
334 334 
335-请参见[样例使用指导](https://gitcode.com/cann/ge/blob/master/examples/fusion_pass/1_fuse_matmul_add_pass/cpp)\>程序运行\>查看运行结果。335+请参见[样例使用指导](../../../../../examples/fusion_pass/pattern_base_pass/1_fuse_matmul_add_pass/cpp/README.md)\>程序运行\>查看运行结果。
336 336 
337设置了dump环境变量后,程序执行完毕,会在当前路径生成ge\_onnx\*.pbtxt等图文件,用户可以获取如下两张图(以指定Pass执行阶段在InferShape之前为例),然后使用Netron等可视化软件查看:337设置了dump环境变量后,程序执行完毕,会在当前路径生成ge\_onnx\*.pbtxt等图文件,用户可以获取如下两张图(以指定Pass执行阶段在InferShape之前为例),然后使用Netron等可视化软件查看:
338 338 
@@ -232,12 +232,12 @@
232 232 
233## 开发示例233## 开发示例
234 234 
235-此处以删除Add\(x, 0\)结构为例(使用@pattern装饰器),详细介绍如何通过Python自定义融合Pass修改Graph。完整样例代码可参见[AddZeroPass Python样例](https://gitcode.com/cann/ge/blob/master/examples/fusion_pass/pattern_base_pass/4_add_zero_pass/python/README.md)。源码仓还给出了如下各种场景的样例,供用户参考:235+此处以删除Add\(x, 0\)结构为例(使用@pattern装饰器),详细介绍如何通过Python自定义融合Pass修改Graph。完整样例代码可参见[AddZeroPass Python样例](../../../../../examples/fusion_pass/pattern_base_pass/4_add_zero_pass/python/README.md)。源码仓还给出了如下各种场景的样例,供用户参考:
236 236 
237-- [MatMul+Add Python样例](https://gitcode.com/cann/ge/blob/master/examples/fusion_pass/pattern_base_pass/1_fuse_matmul_add_pass/python/README.md)237+- [MatMul+Add Python样例](../../../../../examples/fusion_pass/pattern_base_pass/1_fuse_matmul_add_pass/python/README.md)
238-- [capture tensor Python样例](https://gitcode.com/cann/ge/blob/master/examples/fusion_pass/pattern_base_pass/2_fuse_matmul_add_pass_with_capture_tensor/python/README.md)238+- [capture tensor Python样例](../../../../../examples/fusion_pass/pattern_base_pass/2_fuse_matmul_add_pass_with_capture_tensor/python/README.md)
239-- [PatternMatcherConfig Python样例](https://gitcode.com/cann/ge/blob/master/examples/fusion_pass/pattern_base_pass/3_fuse_matmul_add_pass_with_pattern_matcher_config/python/README.md)239+- [PatternMatcherConfig Python样例](../../../../../examples/fusion_pass/pattern_base_pass/3_fuse_matmul_add_pass_with_pattern_matcher_config/python/README.md)
240-- [DecomposePass Python样例](https://gitcode.com/cann/ge/blob/master/examples/fusion_pass/pattern_base_pass/6_decompose_grouped_conv_to_splited_pass/python/README.md)240+- [DecomposePass Python样例](../../../../../examples/fusion_pass/pattern_base_pass/6_decompose_grouped_conv_to_splited_pass/python/README.md)
241 241 
242修改前后的图结构如下:242修改前后的图结构如下:
243 243 
@@ -354,7 +354,7 @@ x ----\
354 354 
355 pyatc详细使用方法请参见[Pyatc 接口](../../../api/graph_engine_api/python/ge/pyatc/pyatc_interface.md)。355 pyatc详细使用方法请参见[Pyatc 接口](../../../api/graph_engine_api/python/ge/pyatc/pyatc_interface.md)。
356 356 
357- - 在线编译:参考[样例程序运行](https://gitcode.com/cann/ge/blob/master/examples/fusion_pass/pattern_base_pass/4_add_zero_pass/cpp/README.md)章节,使用torch\_forward.py脚本执行在线推理。357+ - 在线编译:参考[样例程序运行](../../../../../examples/fusion_pass/pattern_base_pass/4_add_zero_pass/cpp/README.md)章节,使用torch\_forward.py脚本执行在线推理。
358 358 
359## 结果验证359## 结果验证
360 360 
@@ -388,4 +388,4 @@ x ----\
388| 类已加载但pass不执行 | 没有使用注册装饰器,或注册阶段不对 | 检查@register_fusion_pass/@register_decompose_pass |388| 类已加载但pass不执行 | 没有使用注册装饰器,或注册阶段不对 | 检查@register_fusion_pass/@register_decompose_pass |
389| pattern不命中 | 算子类型、输入个数或输出边界不一致 | 对比dump图中的真实拓扑 |389| pattern不命中 | 算子类型、输入个数或输出边界不一致 | 对比dump图中的真实拓扑 |
390| 命中了但不替换 | meet_requirements返回False | 打印命中节点属性 |390| 命中了但不替换 | meet_requirements返回False | 打印命中节点属性 |
391-| 替换后图异常 | replacement输出没有覆盖外部消费者需要的Tensor | 回到[机制文档](https://gitcode.com/cann/ge/blob/master/docs/zh/design/features/fusion_pattern_pass.md)检查边界规则 |391+| 替换后图异常 | replacement输出没有覆盖外部消费者需要的Tensor | 回到[机制文档](../../../design/features/fusion_pattern_pass.md)检查边界规则 |
@@ -100,16 +100,16 @@
100 100 
101| 特性 | 获取链接 | 备注 |101| 特性 | 获取链接 | 备注 |
102| --- | --- | --- |102| --- | --- | --- |
103-| 控制边场景的ES构图 | [C++代码示例](https://gitcode.com/cann/ge/tree/master/examples/es/control_edge/cpp)<br>[Python代码示例](https://gitcode.com/cann/ge/tree/master/examples/es/control_edge/python) | 参见README执行相关操作。 |103+| 控制边场景的ES构图 | [C++代码示例](../../../../../examples/es/control_edge/cpp)<br>[Python代码示例](../../../../../examples/es/control_edge/python) | 参见README执行相关操作。 |
104-| 控制算子场景的ES构图 | [C++代码示例](https://gitcode.com/cann/ge/tree/master/examples/es/control_op/cpp)<br>[Python代码示例](https://gitcode.com/cann/ge/tree/master/examples/es/control_op/python) | 参见README执行相关操作。 |104+| 控制算子场景的ES构图 | [C++代码示例](../../../../../examples/es/control_op/cpp)<br>[Python代码示例](../../../../../examples/es/control_op/python) | 参见README执行相关操作。 |
105-| 动态输入场景的ES构图 | [C++代码示例](https://gitcode.com/cann/ge/tree/master/examples/es/dynamic_input/cpp)<br>[Python代码示例](https://gitcode.com/cann/ge/tree/master/examples/es/dynamic_input/python) | 参见README执行相关操作。 |105+| 动态输入场景的ES构图 | [C++代码示例](../../../../../examples/es/dynamic_input/cpp)<br>[Python代码示例](../../../../../examples/es/dynamic_input/python) | 参见README执行相关操作。 |
106-| 动态输出场景的ES构图 | [C++代码示例](https://gitcode.com/cann/ge/tree/master/examples/es/dynamic_output/cpp)<br>[Python代码示例](https://gitcode.com/cann/ge/tree/master/examples/es/dynamic_output/python) | 参见README执行相关操作。 |106+| 动态输出场景的ES构图 | [C++代码示例](../../../../../examples/es/dynamic_output/cpp)<br>[Python代码示例](../../../../../examples/es/dynamic_output/python) | 参见README执行相关操作。 |
107-| 设置普通属性的ES构图 | [C++代码示例](https://gitcode.com/cann/ge/tree/master/examples/es/normal_attributes/cpp)<br>[Python代码示例](https://gitcode.com/cann/ge/tree/master/examples/es/normal_attributes/python) | 参见README执行相关操作。 |107+| 设置普通属性的ES构图 | [C++代码示例](../../../../../examples/es/normal_attributes/cpp)<br>[Python代码示例](../../../../../examples/es/normal_attributes/python) | 参见README执行相关操作。 |
108-| 普通输入的ES构图 | [C++代码示例](https://gitcode.com/cann/ge/tree/master/examples/es/normal_input/cpp)<br>[Python代码示例](https://gitcode.com/cann/ge/tree/master/examples/es/normal_input/python) | 参见README执行相关操作。 |108+| 普通输入的ES构图 | [C++代码示例](../../../../../examples/es/normal_input/cpp)<br>[Python代码示例](../../../../../examples/es/normal_input/python) | 参见README执行相关操作。 |
109-| 操作符重载的ES构图 | [C++代码示例](https://gitcode.com/cann/ge/tree/master/examples/es/operator_overload/cpp)<br>[Python代码示例](https://gitcode.com/cann/ge/tree/master/examples/es/operator_overload/python) | 参见README执行相关操作。 |109+| 操作符重载的ES构图 | [C++代码示例](../../../../../examples/es/operator_overload/cpp)<br>[Python代码示例](../../../../../examples/es/operator_overload/python) | 参见README执行相关操作。 |
110-| 可选输入场景的ES构图 | [C++代码示例](https://gitcode.com/cann/ge/tree/master/examples/es/optional_input/cpp)<br>[Python代码示例](https://gitcode.com/cann/ge/tree/master/examples/es/optional_input/python) | 参见README执行相关操作。 |110+| 可选输入场景的ES构图 | [C++代码示例](../../../../../examples/es/optional_input/cpp)<br>[Python代码示例](../../../../../examples/es/optional_input/python) | 参见README执行相关操作。 |
111-| 私有属性场景的ES构图 | [C++代码示例](https://gitcode.com/cann/ge/tree/master/examples/es/private_attributes/cpp)<br>[Python代码示例](https://gitcode.com/cann/ge/tree/master/examples/es/private_attributes/python) | 参见README执行相关操作。 |111+| 私有属性场景的ES构图 | [C++代码示例](../../../../../examples/es/private_attributes/cpp)<br>[Python代码示例](../../../../../examples/es/private_attributes/python) | 参见README执行相关操作。 |
112-| transformer场景(部分片段)的ES构图 | [C++代码示例](https://gitcode.com/cann/ge/tree/master/examples/es/transformer/cpp)<br>[Python代码示例](https://gitcode.com/cann/ge/tree/master/examples/es/transformer/python) | 参见README执行相关操作。 |112+| transformer场景(部分片段)的ES构图 | [C++代码示例](../../../../../examples/es/transformer/cpp)<br>[Python代码示例](../../../../../examples/es/transformer/python) | 参见README执行相关操作。 |
113-| 集合通信EP场景的ES构图 | [C++代码示例](https://gitcode.com/cann/ge/tree/master/examples/es/hccl_ep/cpp)<br>[Python代码示例](https://gitcode.com/cann/ge/tree/master/examples/es/hccl_ep/python) | 说明:EP(Expert Parallel)图是指通过专家并行方式在多卡上运行的图结构。 |113+| 集合通信EP场景的ES构图 | [C++代码示例](../../../../../examples/es/hccl_ep/cpp)<br>[Python代码示例](../../../../../examples/es/hccl_ep/python) | 说明:EP(Expert Parallel)图是指通过专家并行方式在多卡上运行的图结构。 |
114-| 集合通信TP场景的ES构图 | [C++代码示例](https://gitcode.com/cann/ge/tree/master/examples/es/hccl_tp/cpp)<br>[Python代码示例](https://gitcode.com/cann/ge/tree/master/examples/es/hccl_tp/python) | 说明: TP(Tensor Parallel)图是指通过张量并行方式在多卡上运行的图结构。 |114+| 集合通信TP场景的ES构图 | [C++代码示例](../../../../../examples/es/hccl_tp/cpp)<br>[Python代码示例](../../../../../examples/es/hccl_tp/python) | 说明: TP(Tensor Parallel)图是指通过张量并行方式在多卡上运行的图结构。 |
115-| 自定义ES API并构图 | 单击[custom_es_api](https://gitcode.com/cann/ge/blob/master/examples/custom_es_api)获取样例,参见README执行相关操作。 | - |115+| 自定义ES API并构图 | 单击[custom_es_api](../../../../../examples/custom_es_api)获取样例,参见README执行相关操作。 | - |
@@ -93,7 +93,7 @@
93 93 
94 > [!NOTE]说明94 > [!NOTE]说明
95 >95 >
96- >因为ES构图API是基于算子IR原型生成,部分算子IR无法支撑所有信息表达(比如Conv类算子)或者IR表达有冗余信息(比如IdentityN算子),所以推荐用户自行封装ES API,该场景下用户可以自定义ES API,详细介绍请参见[自定义ES API](https://gitcode.com/cann/ge/blob/master/examples/custom_es_api)。96+ >因为ES构图API是基于算子IR原型生成,部分算子IR无法支撑所有信息表达(比如Conv类算子)或者IR表达有冗余信息(比如IdentityN算子),所以推荐用户自行封装ES API,该场景下用户可以自定义ES API,详细介绍请参见[自定义ES API](../../../../../examples/custom_es_api/README.md)。
97 97 
98如下是一个完整的CMake文件示例,其中的CANN软件包安装路径/usr/local/Ascend/请根据实际情况进行替换,更多CMake示例请参见[CMake常见示例](../appendix/cmake_examples.md)。98如下是一个完整的CMake文件示例,其中的CANN软件包安装路径/usr/local/Ascend/请根据实际情况进行替换,更多CMake示例请参见[CMake常见示例](../appendix/cmake_examples.md)。
99 99 
@@ -75,4 +75,4 @@ aclgrphBuildFinalize();
75 75 
76## 后续步骤76## 后续步骤
77 77 
78-上述权重更新后的图编译生成的离线模型,如果要进行推理业务,则必须通过aclmdlBundleLoadFromFile或aclmdlBundleLoadFromMem接口加载模型,然后使用aclmdlExecute接口执行推理,详细介绍请参见《[应用开发 \(C&C++\)](https://hiascend.com/document/redirect/CannCommunityCppBaseinfer)》中的“模型推理 \> 权重更新”章节。78+上述权重更新后的图编译生成的离线模型,如果要进行推理业务,则必须通过aclmdlBundleLoadFromFile或aclmdlBundleLoadFromMem接口加载模型,然后使用aclmdlExecute接口执行推理,详细介绍请参见《[应用开发](https://gitcode.com/cann/docs/blob/master/docs/zh/app-dev/00_acl_cpp_dev.md)》中的“模型推理 \> 权重更新”章节。
@@ -63,7 +63,7 @@ GE提供了两种构图方式:
63 **图 1** Parser解析计算图63 **图 1** Parser解析计算图
64 ![Parser解析计算图](../figures/parser_parse_compute_graph.png "Parser解析计算图")64 ![Parser解析计算图](../figures/parser_parse_compute_graph.png "Parser解析计算图")
65 65 
66- ATC命令行工具详细说明请参见《[ATC离线模型编译工具](https://hiascend.com/document/redirect/CannCommunityAtc)》。66+ ATC命令行工具详细说明请参见《[ATC离线模型编译工具](../../atc_tools/README.md)》。
67 67 
68 使用Parser接口构建图请参见[使用Parser接口将原始模型解析为Graph](../construct_graph/parse_model_to_graph_using_parser.md)。68 使用Parser接口构建图请参见[使用Parser接口将原始模型解析为Graph](../construct_graph/parse_model_to_graph_using_parser.md)。
69 69 
@@ -4,7 +4,7 @@
4 4 
5## 安装驱动固件与CANN软件包5## 安装驱动固件与CANN软件包
6 6 
7-准备带有AI处理器的硬件环境,参见《[软件安装](https://hiascend.com/document/redirect/CannCommunityInstSoftware)》完成环境搭建,并确保已安装CANN Toolkit开发套件包和ops算子包(**针对8.5.0及之后版本**,编译Graph为离线模型时,必须安装与目标AI处理器相匹配的ops算子包,否则会导致编译失败),安装完成后:7+准备带有AI处理器的硬件环境,参见《[软件安装](https://www.hiascend.com/document/detail/zh/CANNCommunityEdition/latest/softwareinst/instg/instg_0000.html?OS=openEuler&InstallType=netyum)》完成环境搭建,并确保已安装CANN Toolkit开发套件包和ops算子包(**针对8.5.0及之后版本**,编译Graph为离线模型时,必须安装与目标AI处理器相匹配的ops算子包,否则会导致编译失败),安装完成后:
8 8 
9- “$\{INSTALL\_DIR\}/**opp/built-in/op\_graph/inc**”下提供了CANN算子原型定义,用于通过算子原型构建Graph。9- “$\{INSTALL\_DIR\}/**opp/built-in/op\_graph/inc**”下提供了CANN算子原型定义,用于通过算子原型构建Graph。
10- “$\{INSTALL\_DIR\}/**include/graph**”下提供了Graph构建接口。10- “$\{INSTALL\_DIR\}/**include/graph**”下提供了Graph构建接口。
@@ -34,7 +34,7 @@
34 export ASCEND_WORK_PATH=/repo/task001/172.16.1.12_01_0334 export ASCEND_WORK_PATH=/repo/task001/172.16.1.12_01_03
35 ```35 ```
36 36 
37- 关于环境变量ASCEND\_CACHE\_PATH与ASCEND\_WORK\_PATH的使用约束以及落盘文件说明,可参见《[环境变量参考](https://hiascend.com/document/redirect/CannCommunityEnvRef)》。37+ 关于环境变量ASCEND\_CACHE\_PATH与ASCEND\_WORK\_PATH的使用约束以及落盘文件说明,可参见《[环境变量参考](https://gitcode.com/cann/docs/blob/master/docs/zh/env-vars/README.md)》。
38 38 
39>[!NOTE]说明39>[!NOTE]说明
40>40>
@@ -66,7 +66,7 @@
66 66 
674.后续操作。674.后续操作。
68 68 
69- 转换成\*.om离线模型后,可以调用模型加载接口加载转换好的\*.om离线模型,再调用模型执行接口进行推理。如下为从文件加载模型文件并执行推理的简要流程,详细的模型加载与推理的方法可参见《[应用开发 \(C&C++\)](https://hiascend.com/document/redirect/CannCommunityCppBaseinfer)》中的“模型推理”章节。69+ 转换成\*.om离线模型后,可以调用模型加载接口加载转换好的\*.om离线模型,再调用模型执行接口进行推理。如下为从文件加载模型文件并执行推理的简要流程,详细的模型加载与推理的方法可参见《[应用开发](https://gitcode.com/cann/docs/blob/master/docs/zh/app-dev/00_acl_cpp_dev.md)》中的“模型推理”章节。
70 70 
71 ```c++71 ```c++
72 // 1.指定模型路径72 // 1.指定模型路径
@@ -243,7 +243,7 @@ GE的C++图引擎接口提供了两种构图方式:
243 243 
2445. 后续操作。2445. 后续操作。
245 245 
246- 转换成\*.om离线模型后,可以调用模型加载接口加载转换好的\*.om离线模型,再调用模型执行接口进行推理。详细的模型加载与推理的方法可参见《[应用开发 \(C&C++\)](https://hiascend.com/document/redirect/CannCommunityCppBaseinfer)》中的“模型推理”。246+ 转换成\*.om离线模型后,可以调用模型加载接口加载转换好的\*.om离线模型,再调用模型执行接口进行推理。详细的模型加载与推理的方法可参见《[应用开发)](https://gitcode.com/cann/docs/blob/master/docs/zh/app-dev/00_acl_cpp_dev.md)》中的“模型推理”。
247 247 
248### 代码解析248### 代码解析
249 249 
@@ -160,7 +160,7 @@ SuperKernel是一种基于二进制层面的算子融合技术,区别于传统
160 }160 }
161 ```161 ```
162 162 
163- 上述acl接口详细说明请参见《[Runtime运行时 API](https://hiascend.com/document/redirect/CannCommunityRuntimeApi)》。163+ 上述acl接口详细说明请参见《[Runtime运行时 API](https://gitcode.com/cann/runtime/blob/master/docs/zh/api_ref/README.md)》。
164 164 
165- **标定算子不融合到SuperKernel的关键步骤示例**165- **标定算子不融合到SuperKernel的关键步骤示例**
166 166 
@@ -204,4 +204,4 @@ SuperKernel是一种基于二进制层面的算子融合技术,区别于传统
204 }204 }
205 ```205 ```
206 206 
207- 上述acl接口详细说明请参见《[Runtime运行时 API](https://hiascend.com/document/redirect/CannCommunityRuntimeApi)》。207+ 上述acl接口详细说明请参见《[Runtime运行时 API](https://gitcode.com/cann/runtime/blob/master/docs/zh/api_ref/README.md)》。
@@ -33,7 +33,7 @@
33- Atlas A3 训练系列产品/Atlas A3 推理系列产品33- Atlas A3 训练系列产品/Atlas A3 推理系列产品
34<!-- end id2 -->34<!-- end id2 -->
35 35 
36-请参考《[软件安装](https://hiascend.com/document/redirect/CannCommunityInstSoftware)》安装好驱动固件以及CANN软件。36+请参考《[软件安装](https://www.hiascend.com/document/detail/zh/CANNCommunityEdition/latest/softwareinst/instg/instg_0000.html?OS=openEuler&InstallType=netyum)》安装好驱动固件以及CANN软件。
37 37 
38使用hccn\_tool查询Device IP,并且进行卡间网络检测,要求各个集群上的卡间有RDMA链路连接,否则无法使能LLM-DataDist能力。hccn\_tool详细介绍请参考《[HCCN Tool 接口参考](https://support.huawei.com/enterprise/zh/ascend-computing/ascend-hdk-pid-252764743?category=developer-documents&subcategory=interface-reference)》。以下是常用命令参考。38使用hccn\_tool查询Device IP,并且进行卡间网络检测,要求各个集群上的卡间有RDMA链路连接,否则无法使能LLM-DataDist能力。hccn\_tool详细介绍请参考《[HCCN Tool 接口参考](https://support.huawei.com/enterprise/zh/ascend-computing/ascend-hdk-pid-252764743?category=developer-documents&subcategory=interface-reference)》。以下是常用命令参考。
39 39 
@@ -43,7 +43,7 @@
43|hccn_tool [-i %d] -ip -g|获取IP地址和子网掩码。-i指定Device。样例:`hccn_tool -i 0 -ip -g`|43|hccn_tool [-i %d] -ip -g|获取IP地址和子网掩码。-i指定Device。样例:`hccn_tool -i 0 -ip -g`|
44|hccn_tool [-i %d] -ping -g [address %s ]|获取指定设备到目的地址的ping结果。-i指定当前server的某个Device, address指定ping的目的地址。样例:`hccn_tool -i 0 -ping -g address 192.168.2.1`|44|hccn_tool [-i %d] -ping -g [address %s ]|获取指定设备到目的地址的ping结果。-i指定当前server的某个Device, address指定ping的目的地址。样例:`hccn_tool -i 0 -ping -g address 192.168.2.1`|
45 45 
46-使用LLM-DataDist过程中,还涉及到如下环境变量,具体请参见《[环境变量参考](https://hiascend.com/document/redirect/CannCommunityEnvRef)》。46+使用LLM-DataDist过程中,还涉及到如下环境变量,具体请参见《[环境变量参考](https://gitcode.com/cann/docs/blob/master/docs/zh/env-vars/README.md)》。
47 47 
48|名称|使用场景|48|名称|使用场景|
49|--|--|49|--|--|
@@ -34,7 +34,7 @@
34- Atlas A3 训练系列产品/Atlas A3 推理系列产品34- Atlas A3 训练系列产品/Atlas A3 推理系列产品
35<!-- end id2 -->35<!-- end id2 -->
36 36 
37-请参考《[软件安装](https://hiascend.com/document/redirect/CannCommunityInstSoftware)》安装好驱动固件以及CANN软件。37+请参考《[软件安装](https://www.hiascend.com/document/detail/zh/CANNCommunityEdition/latest/softwareinst/instg/instg_0000.html?OS=openEuler&InstallType=netyum)》安装好驱动固件以及CANN软件。
38 38 
39使用hccn\_tool查询Device IP,并且进行卡间网络检测,要求各个集群上的卡间有RDMA链路连接,否则无法使能LLM-DataDist能力。hccn\_tool详细介绍请参考《[HCCN Tool 接口参考](https://support.huawei.com/enterprise/zh/ascend-computing/ascend-hdk-pid-252764743?category=developer-documents&subcategory=interface-reference)》。以下是常用命令参考。39使用hccn\_tool查询Device IP,并且进行卡间网络检测,要求各个集群上的卡间有RDMA链路连接,否则无法使能LLM-DataDist能力。hccn\_tool详细介绍请参考《[HCCN Tool 接口参考](https://support.huawei.com/enterprise/zh/ascend-computing/ascend-hdk-pid-252764743?category=developer-documents&subcategory=interface-reference)》。以下是常用命令参考。
40 40 
@@ -44,7 +44,7 @@
44|hccn_tool [-i %d] -ip -g|获取IP地址和子网掩码。-i指定Device。样例:`hccn_tool -i 0 -ip -g`|44|hccn_tool [-i %d] -ip -g|获取IP地址和子网掩码。-i指定Device。样例:`hccn_tool -i 0 -ip -g`|
45|hccn_tool [-i %d] -ping -g [address %s ]|获取指定设备到目的地址的ping结果。-i指定当前server的某个Device, address指定ping的目的地址。样例:`hccn_tool -i 0 -ping -g address 192.168.2.1`|45|hccn_tool [-i %d] -ping -g [address %s ]|获取指定设备到目的地址的ping结果。-i指定当前server的某个Device, address指定ping的目的地址。样例:`hccn_tool -i 0 -ping -g address 192.168.2.1`|
46 46 
47-使用LLM-DataDist过程中,还涉及到如下环境变量,具体请参见《[环境变量参考](https://hiascend.com/document/redirect/CannCommunityEnvRef)》。47+使用LLM-DataDist过程中,还涉及到如下环境变量,具体请参见《[环境变量参考](https://gitcode.com/cann/docs/blob/master/docs/zh/env-vars/README.md)》。
48 48 
49|名称|使用场景|49|名称|使用场景|
50|--|--|50|--|--|