---
title: 通信算子执行
description: "通信算子的执行对应Profiling数据中的Communication(HCCL)层，如下图所示："
url: https://www.hiascend.com/document/detail/zh/canncommercial/latest/API/hcclug/hcclug_000018.html
sourcePath: /source/zh/canncommercial/900/API/hcclug/hcclug_000018.html
indexId: bd19790e523530ff7acabff2a349867d3dadb840424ab8daecce4871f372492159
---
# 通信算子执行

通信算子的执行对应Profiling数据中的Communication(HCCL)层，如下图所示：


- Group：表示一个通信域。
- Plane0-X：表示不同通信流，每个Plane对应一个通信流，HCCL的通信算子编排会通过多流并发来充分利用HCCS物理链路资源。
- hcom_allReduce_xx：表示通信算子的执行流程，在详细信息中可以看到通信算子的耗时、数据量及数据类型等信息。

由于通信算子由多个notify同步任务及memcpy内存拷贝任务编排而成，若需要在Profiling中显示具体的通信任务编排信息，需至少采集level 1级别的Profiling数据。

#### 同步任务

- Notify Record：同步任务，置notify寄存器为1。
- Notify Wait：同步任务，等待notify寄存器为1，然后将其清0。
- RDMASend：机间RoCE同步任务，置对端notify寄存器为1。

同时对于同步任务可以从任务的详细信息中获取到任务的耗时、notify_id、本端（src rank）及对端（dst rank）等。


#### 数据通信任务

- Memcpy：内存拷贝任务，机内或者片内的内存拷贝。
- Reduce_Inline：内存拷贝任务，数据拷贝的同时完成随路归约计算。
- RDMASend：机间Roce通信任务，对应着机间的内存拷贝任务。

同时对于数据通信任务可以从任务的详细信息中获取到任务的耗时、本端（src rank）及对端（dst rank）、数据量（size）、带宽（bandwidth）等。


- 在Profiling数据中RDMASend任务会对应同步或者数据通信任务，可通过其数据量分析区分是同步任务还是数据通信任务，同步任务的数据量为固定的4字节，而数据通信任务的数据量以实际通信量为准。
- 若RDMASend任务为数据通信任务时，其任务执行的耗时并不等于实际的通信耗时，只是将通信任务的WQE下发到QP队列中的耗时，实际的通信耗时可参考数据量和带宽值计算得到或参考其后续紧跟着的下一个notify wait任务的耗时。
