开发者
下载

GetTransferStatus

产品支持情况

产品

是否支持

Atlas 350 加速卡

Atlas A3 训练系列产品 / Atlas A3 推理系列产品

Atlas A2 训练系列产品 / Atlas A2 推理系列产品

Atlas 200I/500 A2 推理产品

x

Atlas 推理系列产品

x

Atlas 训练系列产品

x

说明:针对 Atlas A2 训练系列产品 / Atlas A2 推理系列产品 ,仅支持Atlas 800I A2 推理服务器、A200I A2 Box 异构组件。

函数功能

获取所有异步内存传输的状态。

函数原型

Status GetTransferStatus(const GetTransferStatusArgs &args, std::vector<TransferResult> &results)

参数说明

参数名称

输入/输出

取值说明

args

输入

可选参数。

results

输出

所有传输结果

调用示例

//初始化客户端和服务端engine,并完成链接
Status transfer_status = client_engine.TransferAsync(remote_engine, operation, op_descs, optional_args, req);
//req是TransferAsync()的输出值,使用这个请求句柄进行传输状态查询
GetTransferStatusArgs args = { .max_query_count = 4, .skip_waiting = true };
std::vector<TransferResult> results;
Status query_status = client_engine.GetTransferStatus(args, results);
//对传输状态进行检查,判断传输是否完成
  ...

返回值

  • SUCCESS:成功
  • UNSUPPORTED: HIXL初始化的options未配置LocalCommRes的version为1.3且未配置GlobalResourceConfig的comm_resource_config.protocol_desc包含uboe:device时,不支持通过该接口查询
  • 其他:失败

约束说明

  • 调用该接口之前,需要先调用Connect接口完成与对端的建链。
  • 该接口需要和Initialize运行在同一个线程上,如需切换线程调用该接口,需要在Initialize所在线程调用aclrtGetCurrentContext获取context,并在新线程调用aclrtSetCurrentContext设置context。
  • 在调用TransferAsync接口进行异步传输后,需要使用该接口进行对应请求状态的查询,如果查询状态是COMPLETED或者FAILED,将释放相关资源。该场景下不支持再次查询。
  • 异步传输时,用户自行判断是否超时。如果用户判断任务超时,建议调用Disconnect销毁链路,清理相关资源。