---
title: ACL Graph简介
description: "在当前主流框架（例如PyTorch）采用的Eager模式下，每个操作或任务都是边下发边执行，无需构建计算图，这种模式带来了即时可见的执行效果和便捷的调试功能，但同时也带来了Host的下发开销。随着性能优化的不断深入，这些Host开销逐渐成为瓶颈，变成不可忽视的问题。"
url: https://www.hiascend.com/document/detail/zh/canncommercial/latest/programug/acldevg/runtime_doc_dev_0045.html
sourcePath: /source/zh/canncommercial/900/programug/acldevg/runtime_doc_dev_0045.html
indexId: be49dc3dacad71fbdfcd51f21f56115678b30577a41c689a9662ed375593e3d773
---
# ACL Graph简介

在当前主流框架（例如PyTorch）采用的Eager模式下，每个操作或任务都是边下发边执行，无需构建计算图，这种模式带来了即时可见的执行效果和便捷的调试功能，但同时也带来了Host的下发开销。随着性能优化的不断深入，这些Host开销逐渐成为瓶颈，变成不可忽视的问题。

在AI处理器上可以将相关任务下沉到Device上并执行，从而减少Host的开销。为了达到此效果，当前提供了“捕获Stream任务到模型中、再执行模型”的acl接口，简称ACL Graph，在aclmdlRICaptureBegin和aclmdlRICaptureEnd接口之间，所有在指定Stream上下发的任务不会立即执行，而是被暂存在模型的运行实例中，只有在调用aclmdlRIExecuteAsync接口执行模型时这些任务才会被真正执行。当Stream上的任务需要被多次执行时，无需再下发任务，只需多次调用aclmdlRIExecuteAsync接口执行模型即可，达到减少Host侧的任务下发开销的效果。任务执行完毕后，若无需再使用模型的运行实例，可调用aclmdlRIDestroy接口及时销毁该资源。

须知：本功能为试验特性，后续版本可能会存在变更，不支持应用于商用产品中。
