HcclBatchSendRecv
产品支持情况
产品  | 
是否支持  | 
|---|---|
√  | 
|
√  | 
|
x  | 
|
x  | 
|
x  | 
|
√  | 
|
x  | 
功能说明
集合通信域异步批量点对点通信操作接口。调用一次接口可以完成本rank上的多个收发任务,本rank发送和接收之间是异步的,发送和接收任务之间不会相互阻塞。
函数原型
1 | HcclResult HcclBatchSendRecv(HcclSendRecvItem* sendRecvInfo, uint32_t itemNum, HcclComm comm, aclrtStream stream)  | 
参数说明
参数名  | 
输入/输出  | 
描述  | 
|---|---|---|
sendRecvInfo  | 
输入  | 
本rank需要下发的收发任务列表的首地址。 HcclSendRecvItem类型,详细可参见HcclSendRecvItem。  | 
itemNum  | 
输入  | 
本rank需要接收和发送的任务个数。  | 
comm  | 
输入  | 
集合通信操作所在的通信域。  | 
stream  | 
输入  | 
本rank所使用的stream。  | 
返回值
HcclResult:接口成功返回HCCL_SUCCESS,其他失败。
约束说明
- “异步”是指同一张卡上的接收和发送任务是异步的,不会相互阻塞。但是在卡间,收发任务依旧是同步的,因此,卡间的收发任务也同HcclSend、HcclRecv一样,必须是一一对应的。
 - 任务列表中不能有重复的send/recv任务,重复指向(从)同一rank发送(接收)的两个任务。
 - 当前版本此接口不支持Virtual Pipeline(VPP)开启的场景。
 - 针对Atlas 200T A2 Box16 异构子框,若Server内卡间出现建链失败的情况(错误码:EI0010),需要将环境变量HCCL_INTRA_ROCE_ENABLE配置为1,HCCL_INTRA_PCIE_ENABLE配置为0,让Server内采用RoCE环路进行多卡间的通信(请确保Server上存在RoCE网卡,且具有send/recv收发关系的设备之间RDMA链路互通),环境变量配置示例如下:
export HCCL_INTRA_ROCE_ENABLE=1 export HCCL_INTRA_PCIE_ENABLE=0
 
父主题: 点对点通信