---
title: 函数：execute
description: "| 产品 | 是否支持 |"
url: https://www.hiascend.com/document/detail/zh/canncommercial/latest/API/ascendgraphapi/aclpythondevg_01_0775.html
sourcePath: /source/zh/canncommercial/900/API/ascendgraphapi/aclpythondevg_01_0775.html
indexId: 94f2ee49dc58e9f145f03ac147f80b98d89f6ef5f0fcf4bf362a2c231d5b064d75
---
# 函数：execute

#### 产品支持情况

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


#### 功能说明

执行指定的算子。异步接口。

此接口后续版本会废弃，请使用acl.op.execute_v2接口。


#### 函数原型

- C函数原型
  1 aclError aclopExecute(const char *opType,int numInputs,const aclTensorDesc *const inputDesc[],const aclDataBuffer *const inputs[],int numOutputs,const aclTensorDesc *const outputDesc[],aclDataBuffer *const outputs[],const aclopAttr *attr,aclrtStream stream);

- python函数
  1 ret = acl.op.execute(op_type, input_desc,inputs, output_desc, outputs, attr,stream)


#### 参数说明

| 参数名 | 说明 |
| --- | --- |
| op\_type | str，指定算子类型名称。 |
| input\_desc | list，表示算子输入Tensor的描述, 整形列表，包含多个acl的Tensor描述地址对象。 |
| inputs | list，表示算子输入Tensor，整形列表，包含多个aclDataBuffer数据地址对象。 |
| output\_desc | list，表示算子输出Tensor的描述，整形列表，包含多个acl的Tensor描述地址对象。 |
| outputs | list，表示算子输出Tensor，整形列表，包含多个aclDataBuffer数据地址对象。 |
| attr | int， 算子的属性地址对象。 |
| stream | int， 该算子需要加载的Stream对象。 |


#### 返回值说明

| 返回值 | 说明 |
| --- | --- |
| ret | int，错误码，返回0表示成功，返回其它值表示失败。 |


#### 约束说明

- 该接口是异步接口，调用接口成功仅表示任务下发成功，不表示任务执行成功。调用该接口后，需调用同步等待接口（例如，  acl.rt.synchronize_stream(https://www.hiascend.comdocument/detail/zh/canncommercial/900/API/runtimeapi/aclpythondevg_01_0087.html)
）确保任务已执行完成。
- 多线程场景下，不支持调用本接口时指定同一个Stream或使用默认Stream，否则可能任务执行异常。
- 每个算子的输入、输出、属性不同，需要应用在调用时严格按照算子输入、输出、属性来组织算子。用户在调用acl.op.execute接口时，根据op_type、输入Tensor的描述、输出Tensor的描述、attr等信息查找对应的任务，并下发执行。
