HcommThreadAlloc
产品支持情况
产品 |
是否支持 |
|---|---|
Atlas 350 加速卡 |
√ |
√ |
|
√ |
|
☓ |
|
☓ |
|
☓ |
功能说明
申请通信线程,当前支持AI CPU+TS、HOST CPU+TS、CCU通信引擎。注意如果通信引擎是AI CPU+TS,需要额外下发一次kernel,AI CPU侧才能使用此通信线程。
函数原型
1 | HcclResult HcommThreadAlloc(CommEngine engine, uint32_t threadNum, uint32_t notifyNumPerThread, ThreadHandle* threads) |
参数说明
参数名 |
输入/输出 |
说明 |
|---|---|---|
engine |
输入 |
通信引擎类型。 CommEngine类型的定义可参见CommEngine。 |
threadNum |
输入 |
通信线程数量,每次调用该接口申请的最大线程数量为1000。 |
notifyNumPerThread |
输入 |
每个通信线程中的同步资源(Notify)数量,每个通信线程调用该接口每次申请的notify数量最大为64。 |
threads |
输出 |
返回的通信线程句柄。需传入threadNum大小的ThreadHandle类型数组。 ThreadHandle类型的定义可参见ThreadHandle。 |
返回值
HcclResult:接口成功返回HCCL_SUCCESS,其他失败。
约束说明
调用此接口申请的thread,后续需要调用HcommThreadFree接口释放,调用HcommThreadAlloc接口申请AICPU_TS或CPU_TS等通信引擎的线程前,必须先在同一线程上调用aclrtSetdevice接口指定deviceId。
调用示例
1 2 3 | ThreadHandle thread[3]; //申请两条流,每条流Notify数量为3 HcclResult ret = HcommThreadAlloc(COMM_ENGINE_AICPU_TS, 2, 3, thread); |
父主题: 基础资源管理