假设有如下伪代码:
//第一步:AIC核分块处理所有数据
for(i = 0; i < 100; ++i) {
mmObj.SetTensorA(inputGlobal[tokenIdx*corIdx]);
mmObj.SetTensorB(input2Global[tokenIdx*corIdx]);
mmObj.template IterateAll<false>(
outGlobal[tokenId*corIdx],0, false, false);
}
//第二步:所有aiv核等待所有aic核完成matmul运算写入outGlobal;
//第三步:aiv搬运outGlobal数据进行vector运算
DataCopy(mmRes,outGlobal[tokenId*corIdx],hiddenCpyNum);
请问上述第二步该用什么接口进行同步?
假设有如下伪代码:
//第一步:AIC核分块处理所有数据
for(i = 0; i < 100; ++i) {
mmObj.SetTensorA(inputGlobal[tokenIdx*corIdx]);
mmObj.SetTensorB(input2Global[tokenIdx*corIdx]);
mmObj.template IterateAll<false>(
outGlobal[tokenId*corIdx],0, false, false);
}
//第二步:所有aiv核等待所有aic核完成matmul运算写入outGlobal;
//第三步:aiv搬运outGlobal数据进行vector运算
DataCopy(mmRes,outGlobal[tokenId*corIdx],hiddenCpyNum);
请问上述第二步该用什么接口进行同步?