---
title: 算法选择
description: "通信引擎为AIV时，通信算子在Vector Core展开，下发与展开阶段的路径较短、时延开销比较低，适用于通信数据量较小、对时延要求较高的推理场景。"
url: https://www.hiascend.com/document/detail/zh/canncommercial/latest/programug/commopdev/hcclopdev_000024.html
sourcePath: /source/zh/canncommercial/900/programug/commopdev/hcclopdev_000024.html
indexId: fc011f824ca3941e79d742c05fbfa856e77b415fbe0a5e1837621479a318921a71
---
# 算法选择

#### 选择策略

通信引擎为AIV时，通信算子在Vector Core展开，下发与展开阶段的路径较短、时延开销比较低，适用于通信数据量较小、对时延要求较高的推理场景。

一个通信算子往往具有多种算法实现，但针对AIV通信算子，建议采用Mesh算法，因为Mesh算法具有极少的通信步数，可进一步降低通信时延。

图1 AIV引擎通信算法选择示意图

1. 如果通信算子只支持一种通信引擎和算法实现，那么可以跳过本节的算法选择步骤。
2. 本章所述的算法是开发者自行实现的算法，HCCL_ALGO环境变量配置的算法是HCCL内置算法。HCCL内置算法可参考《HCCL集合通信库(https://www.hiascend.com/document/detail/zh/canncommercial/900/API/hcclug/hcclug_000001.html)》的集合通信算法介绍(https://www.hiascend.comdocument/detail/zh/canncommercial/900/API/hcclug/hcclug_000114.html)。


#### 代码示例

以选择策略介绍的算法选择策略为例，对应的算法选择代码片段如下：

```
CommEngine engine;
if (engine == CommEngine::COMM_ENGINE_AIV) {
    algName = "AivMesh";  // 选择使用AIV展开的Mesh算法
} else {
    return HCCL_E_NOT_SUPPORT;
}
```
