昇腾社区首页
中文
注册
开发者
下载

GetTransferStatus

产品支持情况

产品

是否支持

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

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

Atlas 200I/500 A2 推理产品

x

Atlas 推理系列产品

x

Atlas 训练系列产品

x

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

函数功能

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

函数原型

Status GetTransferStatus(const TransferReq &req, TransferStatus &status)

参数说明

参数名称

输入/输出

取值说明

req

输入

请求的句柄,通过调用TransferAsync产生。

status

输出

传输状态。枚举值如下。

  • WAITING
  • COMPLETED
  • TIMEOUT(暂不支持)
  • FAILED

调用示例

//初始化客户端和服务端engine,并完成链接
Status transfer_status = client_engine.TransferAsync(remote_engine, operation, op_descs, optional_args, req);
//req是TransferAsync()的输出值,使用这个请求句柄进行传输状态查询
Status query_status = GetTransferStatus(req, status);
//对传输状态进行检查,判断传输是否完成
...

返回值

  • SUCCESS:成功
  • PARAM_INVALID:参数错误
  • NOT_CONNECTED:没有与对端创建链接
  • 其他:失败

约束说明

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