中转传输
使用场景
中转传输是指使用中转buffer进行传输,在如下场景中需要使用。
- 不支持使用HCCS协议进行Host To Host等直传传输时。
- 使用RDMA进行Host To Host等直传传输注册内存大小有限制时。
功能示例
本示例使用中转传输功能进行Host To Host传输。
- Client侧和Server侧根据建链章节的示例完成AdxlEngine的初始化和建链。区别在于初始化阶段需要额外配置一个中转内存池的配置选项"adxl.BufferPool"。
1 2 3 4 5 6 7 8 9
AdxlEngine engine; std::map<AscendString, AscendString> options; options["adxl.BufferPool"] = "4:8"; AscendString local_engine = "ip:port"; // 替换成真实IP端口;是AdxlEngine的唯一标识,端口为有效值 auto ret = engine.Initialize(local_engine, options); if (ret != SUCCESS) { printf("[ERROR] Initialize failed, ret = %u\n", ret); return -1; }
- 和内存管理章节一样进行内存传输,区别在于不需要调用RegisterMem接口注册Host内存,注册了则会走直传模式,不注册会走中转传输模式。
异常处理
- 错误码TIMEOUT表示传输超时,说明链路出现问题,需要重新断链建链再尝试。
- 错误码NOT_CONNECTED表示与远端没有建链。
父主题: 功能介绍