---
title: CompileGraph
description: "| 产品 | 是否支持 |"
url: https://www.hiascend.com/document/detail/zh/canncommercial/latest/API/ascendgraphapi/atlasgeapi_07_0103.html
sourcePath: /source/zh/canncommercial/900/API/ascendgraphapi/atlasgeapi_07_0103.html
indexId: abd3ceae6eb8f84cb87111c0bbf0df3296107077afde7ba9e0bc4049d2200a6c72
---
# CompileGraph

#### 产品支持情况

| 产品 | 是否支持 |
| --- | --- |
| Atlas 350 加速卡 | √ |
| Atlas A3 训练系列产品 / Atlas A3 推理系列产品 | √ |
| Atlas A2 训练系列产品 / Atlas A2 推理系列产品 | √ |
| Atlas 200I/500 A2 推理产品 | x |
| Atlas 推理系列产品 | √ |
| Atlas 训练系列产品 | √ |


#### 头文件/库文件

- 头文件：#include <ge/ge_api.h>
- 库文件：libge_runner.so


#### 功能说明

同步编译指定ID对应的Graph图。与BuildGraph相比，该接口仅包含图编译功能，不生成可用于执行的模型，BuildGraph包含了图编译过程，并在编译完成后进行模型所需内存资源的初始化，生成可用于执行的模型。

- 该接口不包含模型所需内存资源管理功能，而是将这部分管理内存的工作开放给用户。您可以配合编译后Graph资源占用查询接口、内存的基地址刷新接口来使用，达到自行管理模型内存、获得更多灵活性的目的：
  在调用该接口后，调用GetCompiledGraphSummary获取图编译结果的概要信息（比如模型执行所需的内存资源大小及内存是否可刷新、复用等），根据查询到的内存大小，自行申请并管理内存；然后通过SetGraphConstMemoryBase、 UpdateGraphFeatureMemoryBase对内存基址进行设置和刷新。

- 该接口只能与  RunGraphWithStreamAsync
或  ExecuteGraphWithStreamAsync
接口配合使用，不支持与  RunGraph
、  RunGraphAsync
接口配合使用。
- 包含Variable算子的图不支持使用该接口。


#### 函数原型

```
Status CompileGraph(uint32_t graph_id)
```


#### 参数说明

| 参数名 | 输入/输出 | 说明 |
| --- | --- | --- |
| graph\_id | 输入 | 子图对应的ID。 |


#### 返回值说明

| 参数名 | 类型 | 说明 |
| --- | --- | --- |
| \- | Status | SUCCESS：编译子图成功。 FAILED：编译子图失败。 PARAM\_INVALID：编译子图时，输入graph信息异常。 |


#### 约束说明

无
