---
title: SetOpType
description: "设置通信任务类型。"
url: https://www.hiascend.com/document/detail/zh/canncommercial/latest/API/ascendcopapi/atlasascendc_api_07_10038.html
sourcePath: /source/zh/canncommercial/900/API/ascendcopapi/atlasascendc_api_07_10038.html
indexId: c7c171a0eb73ee969c5ad3ed10b90e8816cf00b64027868a8063e1a22a58deb477
---
# SetOpType

#### 功能说明

设置通信任务类型。


#### 函数原型

```
uint32_t SetOpType(uint32_t opType)
```


#### 参数说明


**表1 参数说明**

| 参数名 | 输入/输出 | 描述 |
| --- | --- | --- |
| opType | 输入 | 表示通信任务类型。uint32\_t类型。HCCL API提供HcclCMDType枚举定义作为该参数的取值。 针对Atlas 350 加速卡，当前支持的通信任务类型为HCCL\_CMD\_ALLREDUCE、HCCL\_CMD\_ALLGATHER、HCCL\_CMD\_REDUCE\_SCATTER、HCCL\_CMD\_ALLTOALL、HCCL\_CMD\_ALLTOALLV、HCCL\_CMD\_HALF\_ALLTOALLV。 针对 Atlas A3 训练系列产品 / Atlas A3 推理系列产品 ，当前支持的通信任务类型为HCCL\_CMD\_ALLREDUCE、HCCL\_CMD\_ALLGATHER、HCCL\_CMD\_REDUCE\_SCATTER、HCCL\_CMD\_ALLTOALL、HCCL\_CMD\_ALLTOALLV、HCCL\_CMD\_BATCH\_WRITE。 针对 Atlas A2 训练系列产品 / Atlas A2 推理系列产品 ，当前支持的通信任务类型为HCCL\_CMD\_ALLREDUCE、HCCL\_CMD\_ALLGATHER、HCCL\_CMD\_REDUCE\_SCATTER、HCCL\_CMD\_ALLTOALL、HCCL\_CMD\_BATCH\_WRITE。 |


#### 返回值说明

- 0表示设置成功。
- 非0表示设置失败。


#### 约束说明

无


#### 调用示例

```
const char *groupName = "testGroup";
uint32_t opType = HCCL_CMD_REDUCE_SCATTER;
std::string algConfig = "ReduceScatter=level0:doublering";
AscendC::Mc2CcTilingConfig mc2CcTilingConfig(groupName, opType, algConfig, HCCL_REDUCE_RESERVED);
mc2CcTilingConfig.SetReduceType(HCCL_REDUCE_SUM);
mc2CcTilingConfig.GetTiling(tiling->mc2InitTiling);
mc2CcTilingConfig.GetTiling(tiling->reduceScatterTiling);

algConfig = "AllGather=level0:doublering";
mc2CcTilingConfig.SetGroupName(groupName);
mc2CcTilingConfig.SetOpType(HCCL_CMD_ALLGATHER); // 设置通信任务类型
mc2CcTilingConfig.SetAlgConfig(algConfig);
mc2CcTilingConfig.SetSkipLocalRankCopy(0);
mc2CcTilingConfig.SetSkipBufferWindowCopy(1);
mc2CcTilingConfig.GetTiling(tiling->allGatherTiling);
```
