---
title: DUMP_GRAPH_LEVEL
description: "把整个图编译流程中各个阶段的图描述信息打印到文件中。"
url: https://www.hiascend.com/document/detail/zh/canncommercial/latest/maintenref/envvar/envref_07_0012.html
sourcePath: /source/zh/canncommercial/900/maintenref/envvar/envref_07_0012.html
indexId: 8c1fe0c886da2efb8cbcadfa7e21533cfcffd26b48ca96e5f5a021a77af98d5b67
---
# DUMP_GRAPH_LEVEL

#### 功能描述

把整个图编译流程中各个阶段的图描述信息打印到文件中。

此环境变量支持如下两种配置方式，两种方式均是控制图落盘的个数，用户可以按需使用，注意两种配置方式不支持混合使用：

- 配置数值，取值如下：

  - 1：dump所有阶段的图。
  - 2：dump白名单阶段的图。具体白名单图请参见    表1
中的“是否白名单”列。
  - 3：dump最后的生成图，即经过GE（Graph Engine，图引擎）优化、编译后的图。
  - 4：dump最早的生成图，即经过GE解析映射算子后，给到软件栈的编译入口图，此时图结构尚未经过GE的编译优化。
- 配置按照“|”分隔的字符串，配置如下：
  例如配置为"aa|bb"，则表示dump出名称包含aa和bb的图，aa和bb需要指定为图编译流程中的合法字符串，合法字符串的获取可以从全量的dump图得到。


DUMP_GRAPH_LEVEL环境变量只有在DUMP_GE_GRAPH开启时才生效，默认值为2。


#### 配置示例

- 配置为数值：

```
export DUMP_GRAPH_LEVEL=1
```


- 配置为按照|分隔的字符串：

```
export DUMP_GRAPH_LEVEL="PreRunBegin|AfterInfershape"
```


#### 使用约束

- 如果此环境变量设置了其他非法值，可能会导致未定义的行为发生。
- 如果开启了采集算子dump数据功能，可以参考《图开发(https://www.hiascend.com/document/detail/zh/canncommercial/900/programug/graphdevg/atlasag_25_0081.html)》>“ge.exec.enableDump(https://www.hiascend.comdocument/detail/zh/canncommercial/900/API/ascendgraphapi/atlasgeapi_07_0150.html)”参数，即使不配置DUMP_GRAPH_LEVEL环境变量，或者配置export DUMP_GRAPH_LEVEL="PreRunBegin|AfterInfershape"但不包括“Build”字符串，最终都会dump子图ge_proto_xxxx_Build.txt。
- 此环境变量需要配合  DUMP_GE_GRAPH
使用，即开启  DUMP_GE_GRAPH
的场景下，可通过DUMP_GRAPH_LEVEL控制生成的dump图信息。全量dump图信息请参见  表1
。
**表1 dump图详细信息说明**

| 序号 | 子图名称 | 所处阶段描述 | 是否白名单 |
| --- | --- | --- | --- |
| 1 | ge\_proto\_xxxx\_GraphPreRunBegin.txt | Graph编译前的图 | \- |
| 2 | ge\_proto\_xxxx\_AfterFlowGraphPartition.txt | Flow切分后的图（flow切分是应用于DataFlow中的切分方式） | \- |
| 3 | ge\_proto\_xxxx\_AfterParallelPartitioner.txt | pipeline并行切分后的图（这里的pipeline指后端推理场景的PP） | \- |
| 4 | ge\_proto\_xxxx\_PreRunBegin.txt | 原始图结构 | 白名单 |
| 5 | ge\_proto\_xxxx\_RunCustomPassBeforeInfershape.txt | 在InferShape之前用户自定义Pass的出口图 | 白名单 |
| 6 | ge\_proto\_xxxx\_PreRunAfterInitPreparation.txt | 经历了图准备阶段所有初始化处理之后的图结构 | \- |
| 7 | ge\_proto\_xxxx\_PreRunAfterHandleSummaryOp.txt | 对Summary节点做处理之后的图结构 | \- |
| 8 | ge\_proto\_xxxx\_PrepareAfterCheckAndUpdateInput.txt | 校验并更新图输入数据处理之后的图结构 | \- |
| 9 | ge\_proto\_xxxx\_PrepareAfterGraphEquivalentTransformation.txt | 将For循环图结构同等替换成While循环图结构处理之后的图结构 | \- |
| 10 | ge\_proto\_xxxx\_PrepareAfterProcessOutput.txt | 对图数据进行相关处理之后的图结构 | \- |
| 11 | ge\_proto\_xxxx\_PrepareAfterOptimizeAfterGraphNormalization.txt | 图标准化后图优化操作出口图 | \- |
| 12 | ge\_proto\_xxxx\_PrepareAfterInsertAipp.txt | 在配置了AIPP参数下，对图进行AIPP相关处理之后的图结构 | \- |
| 13 | ge\_proto\_xxxx\_PrepareAfterProcessAippNodesDataFormat.txt | AIPP节点格式刷新出口图 | \- |
| 14 | ge\_proto\_xxxx\_PreRunAfterNormalizeGraph.txt | 图标准化出口图 | 白名单 |
| 15 | ge\_proto\_xxxx\_PreRunAfterOptimizeGraphInit.txt | 图优化初始化出口图 | \- |
| 16 | ge\_proto\_xxxx\_OptimizeGraph\_TagNoConstFoldingAfter.txt | 量化场景使用，FE会给算子打上不做常量折叠标签，GE在执行常量折叠时会判断此标签，如果存在，则不执行常量折叠 | \- |
| 17 | ge\_proto\_xxxx\_HcclAfterOptimizeGraphPrepare.txt | HCCL图准备阶段优化后的图 | \- |
| 18 | ge\_proto\_xxxx\_PreRunAfterOptimizeGraphPrepare.txt | 经过各算子信息库原图准备处理（OptimizeGraphPrepare接口调用）之后的图结构 | \- |
| 19 | ge\_proto\_xxxx\_PrepareAfterProcessBeforeInfershape.txt | 对条件算子进行死边消除处理之后的图结构 | \- |
| 20 | ge\_proto\_xxxx\_AfterFirstInferformat.txt | 经过全图inferformat处理之后的图结构 | \- |
| 21 | ge\_proto\_xxxx\_AfterInfershape.txt | 经过全图infershape处理之后的图结构，会伴随常量折叠 | 白名单 |
| 22 | ge\_proto\_xxxx\_PrepareAfterInferFormatAndShape.txt | 经历完所有InferFormat与InferShape处理之后的图结构，与上图间经历了第二次全图InferFormat | \- |
| 23 | ge\_proto\_xxxx\_RunCustomPass\_AfterInferShape.txt | 在InferShape之后用户自定义Pass的出口图 | 白名单 |
| 24 | ge\_proto\_xxxx\_AfterSecondInferformat.txt | 第二次格式推导之后的图 | \- |
| 25 | ge\_proto\_xxxx\_PrepareAfterCtrlFlowPreProcess.txt | 对条件算子做预处理之后的图结构 | \- |
| 26 | ge\_proto\_xxxx\_PrepareAfterGetDynamicOutputShape.txt | 动态档位下，对图输出做处理之后的图结构 | \- |
| 27 | ge\_proto\_xxxx\_PrepareAfterProcessAippStage2.txt | 在AIPP模式下，对图输入节点做相关处理之后的图结构 | \- |
| 28 | ge\_proto\_xxxx\_PrepareAfterPrepareOptimize.txt | 在图准备阶段，做相关优化处理之后的图结构 | \- |
| 29 | ge\_proto\_xxxx\_PreRunAfterPrepare.txt | 目前和上张图相同，经历过所有图准备处理之后的图结构 | 白名单 |
| 30 | ge\_proto\_xxxx\_OptimizeQuantGraph\_FeGraphFusionAfter.txt | 图优化阶段的量化流程结束后的图结构 | \- |
| 31 | ge\_proto\_xxxx\_OptimizeOriginalGraph\_FeGraphFusionAfter.txt | 图融合流程结束后的图结构 | \- |
| 32 | ge\_proto\_xxxx\_OptimizeOriginalGraph\_FeTopoSortingAfter.txt | 图融合后进行拓扑排序，排查融合后是否成环的图结构 | \- |
| 33 | ge\_proto\_xxxx\_OptimizeOriginalGraph\_DSAFeOpJudgeAfter.txt | 经过动态shape分析后的格式DataType和Format选择的图 | \- |
| 34 | ge\_proto\_xxxx\_HcclBeforeOptimizeOriginalGraph.txt | HCCL原图优化之前的图 | \- |
| 35 | ge\_proto\_xxxx\_HcclAfterOptimizeOriginalGraph.txt | HCCL原图优化之后的图 | \- |
| 36 | ge\_proto\_xxxx\_RunCustomPassAfterBuiltinFusionPass.txt | 内部Pass之后用户自定义Pass的出口图 | 白名单 |
| 37 | ge\_proto\_xxxx\_PreRunAfterOptimizeOriginalGraph.txt | 经过各算子信息库原图优化处理（OptimizeOriginalGraph接口调用）之后的图结构 | 白名单 |
| 38 | ge\_proto\_xxxx\_PrepareAfterUpdateInputOutputByUserOptions.txt | 根据用户参数，对图输入输出做相关处理之后的图结构 | \- |
| 39 | ge\_proto\_xxxx\_PrepareAfterUpdateVariableFormats.txt | 对变量的Format进行相关处理之后的图结构 | \- |
| 40 | ge\_proto\_xxxx\_PreRunAfterPrepareRunningFormatRefiner.txt | 与上图相同 | \- |
| 41 | ge\_proto\_xxxx\_BeforeOptimizeOriginalGraphJudgeInsert.txt | op\_judge流程的入口图 | \- |
| 42 | ge\_proto\_xxxx\_OptimizeOriginalGraph\_FeOpDtypeJudgeAfter.txt | 精度模式选择后的图 | \- |
| 43 | ge\_proto\_xxxx\_PreRunAfterRefineRunningPrecision.txt | 精度选择之后的图 | \- |
| 44 | ge\_proto\_xxxx\_AutofuseWithExtOptimize.txt | 精度选择之后经过转换算子融合生成的图 | \- |
| 45 | ge\_proto\_xxxx\_PreRunAfterAutofuseWithExtOptimize.txt | 精度选择之后经过转换算子融合，再经过自动融合生成的图 如果未开启自动融合功能，该子图的内容会和 ge\_proto\_xxxx\_AutofuseWithExtOptimize.txt子图内容一致 | \- |
| 46 | ge\_proto\_xxxx\_OptimizeOriginalGraph\_FeOpFormatJudgeAfter.txt | 格式选择后完整op\_judge的图 | \- |
| 47 | ge\_proto\_xxxx\_OptimizeOriginalGraph\_FeDistHeavyFormatAfter.txt | 重型算子扩散后的图结构 | \- |
| 48 | ge\_proto\_xxxx\_OptimizeOriginalGraph\_FeInsertTransNodeAfter.txt | 插入转换算子后的图结构 | \- |
| 49 | ge\_proto\_xxxx\_PreRunAfterRefineRunningFormat.txt | 经过各算子信息库优化处理（OptimizeOriginalGraphJudgeInsert接口调用）之后的图结构 | \- |
| 50 | ge\_proto\_xxxx\_PreRunAfterSubexpressionMigration.txt | 动态分档场景下公共子表达式提取之后的图结构 | \- |
| 51 | ge\_proto\_xxxx\_before\_SameTransdataBreadthFusionPass.txt | SameTransdataBreadthFusionPass入口图 | \- |
| 52 | ge\_proto\_xxxx\_after\_SameTransdataBreadthFusionPass.txt | SameTransdataBreadthFusionPass出口图 | \- |
| 53 | ge\_proto\_xxxx\_OptimizeStage1\_1.txt | 图优化1\_1阶段处理之后的图结构 | \- |
| 54 | ge\_proto\_xxxx\_OptimizeStage1\_2.txt | 图优化1\_2阶段处理之后的图结构 | \- |
| 55 | ge\_proto\_xxxx\_PreRunAfterOptimize1.txt | 所有图优化1阶段处理之后的图结构 | \- |
| 56 | ge\_proto\_xxxx\_PreRunAfterOptimizeAfterStage1.txt | 经过各算子信息库优化处理（OptimizeAfterStage1接口调用）之后的图结构 | 白名单 |
| 57 | ge\_proto\_xxxx\_RunCustomPassAfterOriginGraphOptimize.txt | 在原图优化阶段后执行自定义pass | 白名单 |
| 58 | ge\_proto\_xxxx\_PreRunAfterInferShape2.txt | 第二次InferShape处理之后的图结构 | \- |
| 59 | ge\_proto\_xxxx\_BeforeStagePartition.txt | Stage切分前的图 | \- |
| 60 | ge\_proto\_xxxx\_AfterStagePartition.txt | Stage切分后的图 | \- |
| 61 | ge\_proto\_xxxx\_AfterEnginePlacer.txt | 引擎选择完成后的图 | \- |
| 62 | ge\_proto\_xxxx\_Before\_DSP.txt | 动静模型拆分前的图 | \- |
| 63 | ge\_proto\_xxxx\_After\_DSP.txt | 动静模型拆分后的图 | \- |
| 64 | ge\_proto\_xxxx\_AfterDynamicShapePartition.txt | 动态shape图拆分之后的图结构 | \- |
| 65 | ge\_proto\_xxxx\_MergedComputeGraphAfterCompositeEnginePartition.txt | 经历对立子图拆分与子图优化处理之后的合并图结构 | \- |
| 66 | ge\_proto\_xxxx\_partition0\_rank0\_inputNodeGraph\_AtomicEnginePartitioning.txt | 原子引擎规则图拆分后，输入节点子图的图结构 | \- |
| 67 | ge\_proto\_xxxx\_partition0\_rank1\_new\_sub\_graph1\_AtomicEnginePartitioning.txt | 原子引擎规则图拆分后，子图1的图结构 | \- |
| 68 | ge\_proto\_xxxx\_partition0\_rank2\_new\_sub\_graph110\_AtomicEnginePartitioning.txt | 原子引擎规则图拆分后，子图110的图结构 | \- |
| 69 | ge\_proto\_xxxx\_OptimizeSubgraphPreProc.txt | 子图优化预处理出口图 | \- |
| 70 | ge\_proto\_xxxx\_DNN\_VM\_RTS\_OptimizeSubGraphBefore.txt | \- | \- |
| 71 | ge\_proto\_xxxx\_DNN\_VM\_RTS\_OptimizeSubGraphAfter.txt | \- | \- |
| 72 | ge\_proto\_xxxx\_AIcoreEngine\_OptimizeSubGraphBefore.txt | AI Core子图优化入口图 | \- |
| 73 | ge\_proto\_xxxx\_OptimizeSubGraphBefore.txt | 子图优化操作前的子图结构，每张子图都有一份，同名不同序号，总个数根据子图个数确定 | \- |
| 74 | ge\_proto\_xxxx\_OptimizeSubGraphAfter.txt | 子图优化操作后的子图结构，每张子图都有一份，同名不同序号，总个数根据子图个数确定 | \- |
| 75 | ge\_proto\_xxxx\_partition0\_rank1\_new\_sub\_graph1\_lxfusion\_input.txt | ATC场景和AOE baseline场景的sgat输入图 | \- |
| 76 | ge\_proto\_xxxx\_partition0\_rank1\_new\_sub\_graph1\_after\_rebuild.txt | AOE sgat内部流程UB融合图 | \- |
| 77 | ge\_proto\_xxxx\_AIcoreEngine\_OptimizeSubGraphAfter.txt | AI Core子图优化出口图 | \- |
| 78 | ge\_proto\_xxxx\_OptimizeSubgraphPostProc.txt | 子图优化后处理出口图 | \- |
| 79 | ge\_proto\_xxxx\_mergedComputeGraph.txt | 图合并之后的图结构，与上图相同 | \- |
| 80 | ge\_proto\_xxxx\_MergedComputeGraphAfterAtomicEnginePartition.txt | 经历对立原子引擎拆分与子图优化处理之后的合并图结构 | \- |
| 81 | ge\_proto\_xxxx\_PreRunAfterOptimizeSubgraph.txt | 子图优化处理之后的图结构 | 白名单 |
| 82 | ge\_proto\_xxxx\_OptimizeWholeGraphaicpu\_tf\_optimizer.txt | 调用各引擎的原图优化接口后的图信息，OptimizeWholeGraph后为引擎名称 | \- |
| 83 | ge\_proto\_xxxx\_OptimizeWholeGraphaicpu\_ascend\_optimizer.txt | 调用各引擎的原图优化接口后的图信息，OptimizeWholeGraph后为引擎名称 | \- |
| 84 | ge\_proto\_xxxx\_OptimizeWholeGraphdvpp\_graph\_optimizer.txt | 整图优化DVPP优化后出口图 | \- |
| 85 | ge\_proto\_xxxx\_OptimizeWholeGraphhccl\_alltoallvc\_fusion\_optimizer.txt | HCCL原图优化阶段融合优化后的图 | \- |
| 86 | ge\_proto\_xxxx\_OptimizeWholeGraphAIcoreEngine.txt | 调用各引擎的原图优化接口后的图信息，OptimizeWholeGraph后为引擎名称 | \- |
| 87 | ge\_proto\_xxxx\_OptimizeWholeGraphDSAEngine.txt | 调用各引擎的原图优化接口后的图信息，OptimizeWholeGraph后为引擎名称 | \- |
| 88 | ge\_proto\_xxxx\_OptimizeWholeGraphhccl\_graph\_optimizer.txt | HCCL原图优化阶段优化的图 | \- |
| 89 | ge\_proto\_xxxx\_OptimizeWholeGraphDNN\_VM\_RTS\_GRAPH\_OPTIMIZER\_STORE.txt | 调用各引擎的原图优化接口后的图信息，OptimizeWholeGraph后为引擎名称 | \- |
| 90 | ge\_proto\_xxxx\_OptimizeWholeGraphDNN\_VM\_RTS\_FFTS\_PLUS\_GRAPH\_OPTIMIZER\_STORE.txt | 调用各引擎的原图优化接口后的图信息，OptimizeWholeGraph后为引擎名称 | \- |
| 91 | ge\_proto\_xxxx\_OptimizeWholeGraphDNN\_VM\_HOST\_CPU\_OPTIMIZER.txt | 调用各引擎的原图优化接口后的图信息，OptimizeWholeGraph后为引擎名称 | \- |
| 92 | ge\_proto\_xxxx\_OptimizeWholeGraphge\_local\_graph\_optimizer.txt | 调用各引擎的原图优化接口后的图信息，OptimizeWholeGraph后为引擎名称 | \- |
| 93 | ge\_proto\_xxxx\_OptimizeWholeGraphffts\_plus.txt | 调用各引擎的原图优化接口后的图信息，OptimizeWholeGraph后为引擎名称 | \- |
| 94 | ge\_proto\_xxxx\_PreRunAfterOptimizeWholeGraph.txt | 经过各算子信息库优化处理（OptimizeWholeGraph接口调用）之后的图结构 | \- |
| 95 | ge\_proto\_xxxx\_PreRunAfterOptimize2.txt | 所有图优化2阶段处理之后的图结构 | \- |
| 96 | ge\_proto\_xxxx\_PreRunAfterOptimizeGraphBeforeBuild.txt | 模型编译入口图 | 白名单 |
| 97 | ge\_proto\_xxxx\_PreRunAfterOptimizeTensorMove.txt | 优化冗余TensorMove节点之后的图 | \- |
| 98 | ge\_proto\_xxxx\_BeforeHandleMemConflict.txt | 处理内存冲突之前的图 | \- |
| 99 | ge\_proto\_xxxx\_AfterHandleMemConflict.txt | 处理内存冲突之后的图 | \- |
| 100 | ge\_proto\_xxxx\_BeforeHandleMemoryLayoutConflict.txt | 解决内存排布冲突入口图 | \- |
| 101 | ge\_proto\_xxxx\_PreRunAfterMemConflictProc.txt | 解决内存读写冲突出口图 | \- |
| 102 | ge\_proto\_xxxx\_partition0\_rank0\_inputNodeGraph\_SecondPartitioning.txt | 二拆操作后，输入节点子图的图结构 | \- |
| 103 | ge\_proto\_xxxx\_partition0\_rank1\_new\_sub\_graph1\_SecondPartitioning.txt | 二拆操作后，子图1的图结构 | \- |
| 104 | ge\_proto\_xxxx\_partition0\_rank2\_new\_sub\_graph110\_SecondPartitioning.txt | 二拆操作后，子图110的图结构 | \- |
| 105 | ge\_proto\_xxxx\_BeforeUnfoldSubgraphs.txt | 动态shape图展开之前的图 | \- |
| 106 | ge\_proto\_xxxx\_AfterUnfoldSubgraphs.txt | 动态shape图展开之后的图 | \- |
| 107 | ge\_proto\_xxxx\_RunCustomPass\_BeforeAssignLogicStream{pass\_name}.txt | 用户自定义流分配Pass处理之前的图 | 白名单 |
| 108 | ge\_proto\_xxxx\_RunCustomPass\_AfterAssignLogicStream{pass\_name}.txt | 用户自定义流分配Pass处理之后的图 | 白名单 |
| 109 | ge\_proto\_xxxx\_AfterAssignResource.txt | 流分配、内存分配、GenTask之后的图 | \- |
| 110 | ge\_proto\_xxxx\_Build.txt | 模型编译出口图 | 白名单 |
| 111 | ge\_proto\_xxxx\_PreRunAfterBuild.txt | 与上图相同 | \- |
| 112 | ge\_proto\_xxxx\_BeforeAttrsCompress.txt | 离线模型压缩前的图 | \- |
| 113 | ge\_proto\_xxxx\_AfterAttrsCompress.txt | 离线模型压缩后的图 | \- |
| 114 | ge\_proto\_xxxx\_BeforeAttrsDecompress.txt | 离线模型解压前的图 | \- |
| 115 | ge\_proto\_xxxx\_AfterAttrsDecompress.txt | 离线模型解压后的图 | \- |
| 116 | ge\_proto\_xxxx\_ComputeGraphBeforeLowering.txt | lowering前的计算图 | 白名单 |
| 117 | ge\_proto\_xxxx\_Before\_MultiStream\_LoweringFirstLastEventSync.txt | 多流插入Event之前的执行图 | \- |
| 118 | ge\_proto\_xxxx\_ExeGraphBeforeOptimize.txt | 执行图优化前的执行图 | 白名单 |
| 119 | ge\_proto\_xxxx\_AfterZeroCopy.txt | 零拷贝优化之后的执行图 | \- |
| 120 | ge\_proto\_xxxx\_AfterCEM.txt | CEM优化之后的执行图 | \- |
| 121 | ge\_proto\_xxxx\_AfterCopyFlowLaunch.txt | 随路拷贝优化后的执行图 | \- |
| 122 | ge\_proto\_xxxx\_TrustOutTensorAfter.txt | TrustOutTensor优化之后的执行图 | \- |
| 123 | ge\_proto\_xxxx\_AfterAicpuFuseHostInputs.txt | AicpuFuseHostInputs优化之后的图 | \- |
| 124 | ge\_proto\_xxxx\_ExecuteGraphAfterSplit.txt | 动态shape最终的执行图 | 白名单 |


#### 支持的型号

Atlas 训练系列产品

Atlas 推理系列产品

Atlas A2 训练系列产品 / Atlas A2 推理系列产品

Atlas A3 训练系列产品 / Atlas A3 推理系列产品

Atlas 350 加速卡

Atlas 200I/500 A2 推理产品
