---
title: TransferSync
description: "| 产品 | 是否支持 |"
url: https://www.hiascend.com/document/detail/zh/canncommercial/latest/API/hixlug/llmcrv2_42_47.html
sourcePath: /source/zh/canncommercial/900/API/hixlug/llmcrv2_42_47.html
indexId: d91d688b4826b7575bcec7c6384f3abaee4535186f2b630e999e1f97543b0e1359
---
# TransferSync

#### 产品支持情况

| 产品 | 是否支持 |
| --- | --- |
| Atlas 350 加速卡 | x |
| 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 异构组件。


#### 函数功能

与远端AdxlEngine进行内存传输。


#### 函数原型

```
Status TransferSync(const AscendString &remote_engine,
                    TransferOp operation,
                    const std::vector<TransferOpDesc> &op_descs,
                    int32_t timeout_in_millis = 1000)
```


#### 参数说明

| 参数名称 | 输入/输出 | 取值说明 |
| --- | --- | --- |
| remote\_engine | 输入 | 远端AdxlEngine的唯一标识。 |
| operation | 输入 | 将远端内存读到本地或者将本地内存写到远端。 |
| op\_descs | 输入 | 批量操作的本地以及远端地址。 |
| timeout\_in\_millis | 输入 | 断链的超时时间，单位：ms，默认值：1000。 |


#### 调用示例

单击Gitee(https://gitee.com/ascend/samples/tags)，根据“标签名”下载配套版本的sample包，从“cplusplus/level1_single_api/12_adxl”目录中获取样例。


#### 返回值

- SUCCESS：成功
- PARAM_INVALID：参数错误
- NOT_CONNECTED：没有与对端创建链接
- TIMEOUT：传输超时
- 其他：失败


#### 约束说明

- 调用该接口之前，需要先调用  Connect
接口完成与对端的建链。
- 该接口需要和  Initialize
运行在同一个线程上，如需切换线程调用该接口，需要在  Initialize
所在线程调用“aclrtGetCurrentContext(https://www.hiascend.comdocument/detail/zh/canncommercial/900/API/runtimeapi/aclcppdevg_03_0062.html)”获取context，并在新线程调用“aclrtSetCurrentContext(https://www.hiascend.comdocument/detail/zh/canncommercial/900/API/runtimeapi/aclcppdevg_03_0061.html)”设置context。
- 系统默认开启中转内存池，如果op_descs中存在<256K的数据，则默认使用中转传输模式来提升性能，否则会通过判断是否有未注册的内存来决定走中转还是直传。
- 在开启中转内存池情况下，op_descs中本地内存和远端内存如有一个未注册就会判断为需要采用中转传输模式，且没有注册过的内存判断为Host内存，用户需保证地址合法。
- 在中转传输模式下，所有op_descs的传输类型需要相同，举例：所有的op_descs都是本地Host内存往远端Host内存写。
